You both make good points, IMO.
This is where I agree with Stan:
In the cli, nodes that appear, their attributes, operations and their
props are based on the model description. And I'd like to keep it that
way and not expose any of those that aren't actually defined by the
model (like add-systemproperty, add-extension, etc).
/subsystem=jmx/connector=jmx, so maybe this is something that should be
taken into account in the CLI itself somehow.
Not sure, it's not the structure of the model. There could tricks,
though. Have a look at how Brian implemented
/management-client-content=rollout-plans.
This is where I agree with Kabir:
Initially you have system-property=undefined. There is an add on that
node, I add the property prop1=one and see system-property=prop1 in the
tree. I can add more system properties by selecting
system-property=prop1 and choosing the add operation. However, it feels
a bit strange to have the add operation adding a sibling.
I could suggest two ways to workaround this:
- node type as a 'folder', currently the unit is node-type=node-name,
instead node-type could be a folder that contained node-names and you
could click on the node-type to add new nodes.
- add node-type=? and use it for add and non-instance specific
operations. 'add' will still be listed if you right-click on a specific
instance, though (the same true about the command line actually). We
could filter those, although that would be covering the weirdness of the
management model.
Alexey
On 01/12/2012 04:33 PM, Kabir Khan wrote:
Alexey,
Can you provide a bit more input on the discussion on
https://github.com/jbossas/jboss-as/pull/1081 but on this thread?
On 11 Jan 2012, at 18:08, ssilvert(a)redhat.com wrote:
> I believe that add operations are now done correctly as far as the tool
> is concerned.
>
https://github.com/jbossas/jboss-as/pull/1081
>
> We needed to prompt for a resource name that gets filled into the
> address path. So for:
> /subsystem=logging/logger=foo/:add
>
> The gui asks the user to fill in the resource name "foo". The add
> operation should not have "name" as one of its declared parameters
> because that would be redundant. (The logging subsystem is doing this
> correctly, btw)
>
> Stan
>
> On 1/10/2012 3:56 PM, Kabir Khan wrote:
>> On 10 Jan 2012, at 20:51, Kabir Khan wrote:
>>
>>> On 10 Jan 2012, at 18:29, ssilvert(a)redhat.com wrote:
>>>
>>>> On 1/10/2012 11:30 AM, Kabir Khan wrote:
>>>>> That worked for me so I pushed that change. It looks great!
>>>>>
>>>>> The one thing which is a bit strange is the ability to add a child
resource. e.g. the add operation should really by on the parent of the resource being
targeted. For example, the ee extension has the add operation in its list, which gives the
op: "/extension=org.jboss.as.ee/:add(module=sasasa)". Which is a bit pointless
since it already exists, and there is no way to add a new extension. I had similar issues
when writing the management jmx facade, see ChildAddOperationFinder and its callers.
>>>> Yea, I agree that it's a bit strange. But I'm not sure if this
is a
>>>> problem that can be solved by the tool. What I have seen is that often
>>>> you need to give an address that doesn't exist yet, and append :add
to
>>>> it. For instance, to add a new logger you say
>>>>
>>>> /subsystem=logging/logger=foo/:add
>>>>
>>>> But if you look at subsystem=logging you see that there are many kinds
>>>> of entities that might need to be created (loggers, handlers, etc.).
>>>> That makes it hard for the tool to guess what you are trying to add.
>>> I got around this in the jmx facade. Connect to the running process with
jconsole, and go to the jboss.as:management=server mbean (appears as simply
'server' in the list. This corresponds to the root resource. In the operations it
has an addXXX operation for each child type. e.g.
>>>
>>> addExtension -> /extension=*:add
>>> addSubsystemEjb3 -> /subsystem=ejb3:add
>>> addSystemProperty -> /system-property=*:add
>>> addSubsystemJaxrs -> /subsystem=jaxrs:add
>> Or to use your logging subsystem example, go to jboss.as:subsystem=logging
(appears as just 'logging' in jconsole), and you will see
addSizeRotatingFileHandler, addPeriodicRotatingFieldHandler, addLogger etc.
>>
>>>
>>>> Beyond that, there is no way for the tool to know what params are
>>>> required for a new entity. :read-operation-description(name=add)
>>>> doesn't usually help in this case.
>>>>
>>>> IMO, each management handler should fully implement the add operation,
>>>> specify the expected params, and never rely on default behavior. But
>>>> that would be a lot of work to go back and fix them all.
>>> I'm not 100% sure what you mean here so I might be misunderstanding what
you're saying. The add handlers are different for different places e.g.:
>>>
>>> /system-property=*:read-operation-description(name=add)
>>> /interface=*:read-operation-description(name=add)
>>> /subsystem=jmx:read-operation-description(name=add)
>>> /subsystem=ee:read-operation-description(name=add)
>>>
>>> all return different descriptions. (Some have an add operation for
'*' meaning all children take the same parameters, others one for each child like
the subsystems)
>>>
>>>>
>>>> Anyone else have comments/suggestions?
>>>>
>>>>> On 10 Jan 2012, at 16:16, Kabir Khan wrote:
>>>>>
>>>>>> I've been out so I didn't see this until my previous
reply, I'll try it now
>>>>>>
>>>>>> On 10 Jan 2012, at 14:11, ssilvert(a)redhat.com wrote:
>>>>>>
>>>>>>> Kabir (or someone with OS X),
>>>>>>>
>>>>>>> Can you give this a try?
>>>>>>>
>>>>>>>
https://github.com/ssilvert/jboss-as/commit/9f90081c86c54278ec3be444f9fb1...
>>>>>>>
>>>>>>>
>>>>>>> On 1/10/2012 8:28 AM, ssilvert(a)redhat.com wrote:
>>>>>>>> On 1/10/2012 8:06 AM, Kabir Khan wrote:
>>>>>>>>> This has been merged. However, I've not been able
to play with it. I added
https://github.com/jbossas/jboss-as/commit/999beb90268d94e4e6547986b7277f... to get
around this problem
>>>>>>>> Thanks. I don't have an OS X box, so I don't
have any way to test.
>>>>>>>>> The next thing is that right-clicking does not seem
to work on OS X so I don't see the menu
>>>>>>>> Looks like this is a well known issue with OS X and the
Swing
>>>>>>>> isPopupTrigger() method. What I'm reading says that
you need to hold
>>>>>>>> down the control key while pressing button one.
>>>>>>>>
http://stackoverflow.com/questions/5736872/java-popup-trigger-in-linux
>>>>>>>>
>>>>>>>> I'll see if there is a workaround. I'll probably
also add a regular
>>>>>>>> menu at the top so we don't have to rely on
right-click.
>>>>>>>>> On 10 Jan 2012, at 12:20, ssilvert(a)redhat.com wrote:
>>>>>>>>>
>>>>>>>>>> On 1/10/2012 4:47 AM, Darran Lofthouse wrote:
>>>>>>>>>>> Do we want to verify the various security
features already in the CLI
>>>>>>>>>>> are supported before it is pulled or follow
up once it is in?
>>>>>>>>>>>
>>>>>>>>>>> Regards,
>>>>>>>>>>> Darran Lofthouse.
>>>>>>>>>> The GUI is built on top of the CLI. So it's
running the same
>>>>>>>>>> authentication/authorization. The only
difference is that it brings up
>>>>>>>>>> a GUI instead of a command line.
>>>>>>>>>>
>>>>>>>>>> BTW, I have to give props to Alexey on this. His
CLI code is extremely
>>>>>>>>>> well organized and easy to extend.
>>>>>>>>>>> On 01/09/2012 09:42 PM, Jason T. Greene
wrote:
>>>>>>>>>>>> You have to merge his pull to get it
>>>>>>>>>>>>
>>>>>>>>>>>> On 1/9/12 3:41 PM, Kabir Khan wrote:
>>>>>>>>>>>>> Does it need to be enabled somehow?
>>>>>>>>>>>>>
>>>>>>>>>>>>>
[~/sourcecontrol/jboss-as7/git/jboss-as]
>>>>>>>>>>>>>
$./build/target/jboss-as-7.1.0.Final-SNAPSHOT/bin/jboss-admin.sh --gui --connect
>>>>>>>>>>>>> '--gui' is not a valid
operation name.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
[~/sourcecontrol/jboss-as7/git/jboss-as]
>>>>>>>>>>>>>
$./build/target/jboss-as-7.1.0.Final-SNAPSHOT/bin/jboss-admin.sh --connect --gui
>>>>>>>>>>>>> '--gui' is not a valid
operation name.
>>>>>>>>>>>>>
>>>>>>>>>>>>> On 9 Jan 2012, at 19:33, Jason T.
Greene wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Just saw Stan did this:
>>>>>>>>>>>>>>
http://community.jboss.org/docs/DOC-17457
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I haven't played with it yet,
but it looks awesome!
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> IMO this is exactly what we need
for an "advanced" mode in the console
>>>>>>>>>>>>>> (post 7.1 obviously)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> --
>>>>>>>>>>>>>> Jason T. Greene
>>>>>>>>>>>>>> JBoss AS Lead / EAP Platform
Architect
>>>>>>>>>>>>>> JBoss, a division of Red Hat
>>>>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>>>>> jboss-as7-dev mailing list
>>>>>>>>>>>>>> jboss-as7-dev(a)lists.jboss.org
>>>>>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>> jboss-as7-dev mailing list
>>>>>>>>>>> jboss-as7-dev(a)lists.jboss.org
>>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>>>> _______________________________________________
>>>>>>>>>> jboss-as7-dev mailing list
>>>>>>>>>> jboss-as7-dev(a)lists.jboss.org
>>>>>>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>> _______________________________________________
>>>>>>>> jboss-as7-dev mailing list
>>>>>>>> jboss-as7-dev(a)lists.jboss.org
>>>>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>> _______________________________________________
>>>>>>> jboss-as7-dev mailing list
>>>>>>> jboss-as7-dev(a)lists.jboss.org
>>>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>> _______________________________________________
>>>>>> jboss-as7-dev mailing list
>>>>>> jboss-as7-dev(a)lists.jboss.org
>>>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>> _______________________________________________
>>>> jboss-as7-dev mailing list
>>>> jboss-as7-dev(a)lists.jboss.org
>>>>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>
> _______________________________________________
> jboss-as7-dev mailing list
> jboss-as7-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/jboss-as7-dev