[jboss-as7-dev] add operation in CLI GUI

Alexey Loubyansky alexey.loubyansky at redhat.com
Thu Jan 12 11:39:01 EST 2012


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).

 > I see the autocomplete for /subsystem=jmx/connector=j does not give 
/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 at 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 at 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 at redhat.com wrote:
>>>>>>>
>>>>>>>> Kabir (or someone with OS X),
>>>>>>>>
>>>>>>>> Can you give this a try?
>>>>>>>>
>>>>>>>> https://github.com/ssilvert/jboss-as/commit/9f90081c86c54278ec3be444f9fb1906051653e8
>>>>>>>>
>>>>>>>>
>>>>>>>> On 1/10/2012 8:28 AM, ssilvert at 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/999beb90268d94e4e6547986b7277f166b1c2f69 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 at 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 at lists.jboss.org
>>>>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> jboss-as7-dev mailing list
>>>>>>>>>>>> jboss-as7-dev at lists.jboss.org
>>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> jboss-as7-dev mailing list
>>>>>>>>>>> jboss-as7-dev at lists.jboss.org
>>>>>>>>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>>> _______________________________________________
>>>>>>>>> jboss-as7-dev mailing list
>>>>>>>>> jboss-as7-dev at lists.jboss.org
>>>>>>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>>> _______________________________________________
>>>>>>>> jboss-as7-dev mailing list
>>>>>>>> jboss-as7-dev at lists.jboss.org
>>>>>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>>>> _______________________________________________
>>>>>>> jboss-as7-dev mailing list
>>>>>>> jboss-as7-dev at lists.jboss.org
>>>>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>>>> _______________________________________________
>>>>> jboss-as7-dev mailing list
>>>>> jboss-as7-dev at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>>
>> _______________________________________________
>> jboss-as7-dev mailing list
>> jboss-as7-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/jboss-as7-dev
>


More information about the jboss-as7-dev mailing list