Projects tigase _server server-core Issues #354
Additional metadata for commands to allow grouping (#354)
Closed
Artur Hefczyc opened 1 decade ago
Due Date
2014-08-07

We need additional information about commands to allow for automatic grouping them in user interface, like:

  1. user management commands

  2. vhost management commands

  3. ACL commands

  4. configuration

  5. etc....

Andrzej Wójcik (Tigase) commented 1 decade ago

I suppose that this data might be embedded in commands headers (ie. in script commands) so it might in script look like:

/*
 Activate on the server user tracking mechanisms to aid in problem resolution.
 AS:Description: Activate log tracker for a user
 AS:CommandId: http://jabber.org/protocol/admin#add-user-tracker
 AS:Component: sess-man
 AS:Group: Logging
 */

This additional information could be retrieved:

  1. using additional command (ie. retrieve-admin-commands)

  2. adding additional group attribute to <item/> element of disco#items discovery data returned by server

First solution would allow us to simple add this feature and easily add support on client side, while secondary solution would be more generic, but we would need to adjust our client library to be able to retrieve this group data.

Artur Hefczyc commented 1 decade ago

Andrzej Wójcik wrote:

I suppose that this data might be embedded in commands headers (ie. in script commands) so it might in script look like:

[...]

This OK, that's what I was thinking about.

This additional information could be retrieved:

using additional command (ie. retrieve-admin-commands)

adding additional group attribute to <item/> element of disco#items discovery data returned by server

First solution would allow us to simple add this feature and easily add support on client side, while secondary solution would be more generic, but we would need to adjust our client library to be able to retrieve this group data.

I prefer the second approach from the performance point of view. The first, however, gives us more flexibility. I think we should just experiment which works better for us.

I am assigning this task to you Andrzej, as you will most likely be implementing this on the client side, so it is best to make modifications on the server side as well.

Andrzej Wójcik (Tigase) commented 1 decade ago

Added support for passing grouping information in adhoc commands metadata and ability to retrieve it using disco#info and custom adhoc command.

We still need to add grouping information to commands.

Andrzej Wójcik (Tigase) commented 1 decade ago

I tried to create names of particular groups and add them to adhoc command scripts but I've found an issue with this grouping idea, as we create a name for a group for a command and it is ok if command is for single component, but what if command is for more than one component? Example:

CompRepoItemAdd.groovy is Add new item named command which works for VHostManager and ExtComponent so it should appear in two separate groups: VHost management and External components, right? But how to define it as we have only single field and single instance of file(to aviod multiple copies of same script) in source code?

We might try to get all commands from sess-man and display them in groups as specified in scripts (AS:Group:) and display commands for any other component grouped by component name so we would get something like in example below:

Users

Add user

Delete user

Configuration

Manage active server plugins

Manage active server components

VHost Manager

Add new item

Delete item

External component

Add new item

Delete item

Statistics

Get active users

Artur Hefczyc commented 1 decade ago

I think grouping by component makes sense in most cases. Alternatively we can have a command assigned to multiple groups:

AS:Group: host-management,ext-comp
Andrzej Wójcik (Tigase) commented 1 decade ago

Yes, but then UI would not know which group is assigned for which component jid which would make it impossible to use this solution.

I also thinked about using this group with some kind of template, ie.

${componentName} could be resolved to VHost Manager in case of VHostManager and to Ext component in case of ExtComponent

and this way we could create groups even more complex ie.

Components/${componentName} would be resolved to Components/VHost Manager in case of VHostManager

Artur Hefczyc commented 1 decade ago

Ok, let's do as you suggest.

Andrzej Wójcik (Tigase) commented 1 decade ago

Added support for replacing ${componentName} in group with name of component presented in service discovery.

I left adhoc commands scripts unchanged for now (will not include ${componentName} in groups. Will update them when during work on service management console as them we would establish correct group names.

issue 1 of 1
Type
Task
Priority
Normal
Assignee
RedmineID
2106
Version
tigase-server-7.0.0
Spent time
48h
Issue Votes (0)
Watchers (0)
Reference
tigase/_server/server-core#354
Please wait...
Page is in error, reload to recover