Red Hat Training
A Red Hat training course is available for Red Hat JBoss Operations Network
18.5. Adding Resources to a Group: addMember.js
Set up the script. This identifies three required arguments for the script:
- groupName for the group to add the resources to
- resourceName for the name of the resource to add; this is one of the search criteria
- resourceTypeName for the type of resource to add; this is one of the search criteria
This also includes a search to find the group specified in the argument.
function usage() { println("Usage: addMember groupName resourceName resourceTypeName"); throw "Illegal arguments"; } if( args.length < 3 ) usage(); var groupName = args[0]; var resourceName = args[1]; var resourceTypeName = args[2]; groupcriteria = new ResourceGroupCriteria(); groupcriteria.addFilterName(groupName); var groups = ResourceGroupManager.findResourceGroupsByCriteria(groupcriteria); if( groups != null ) { if( groups.size() > 1 ) { println("Found more than one group."); } else if( groups.size() == 1 ) { group = groups.get(0); } }
Search for the resources to add to the group. The script is designed to add only a single resource to the group, so the given search criteria, resourceName and resourceTypeName, must be specific enough to match only a single resource.
criteria = new ResourceCriteria(); criteria.addFilterName(resourceName); criteria.addFilterResourceTypeName(resourceTypeName); var resources = ResourceManager.findResourcesByCriteria(criteria); if( resources != null ) { if( resources.size() > 1 ) { println("Found more than one JBossAS Server instance. Try to specialize."); for( i =0; i < resources.size(); ++i) { var resource = resources.get(i); println(" found " + resource.name ); } } else if( resources.size() == 1 ) { resource = resources.get(0); println("Found one JBossAS Server instance. Trying to add it."); println(" " + resource.name ); ResourceGroupManager.addResourcesToGroup(group.id, [resource.id]); println(" Added to " + group.name + "!"); } else { println("Did not find any JBossAS Server instance matching your pattern. Try again."); } }
When this script is run, it prints the name of the found JBoss instance and that it was added to the group.
[jsmith@server cli]$ ./wrapper.sh addMember myGroup "JBossAS App 1" "JBossAS Server" Remote server version is: 3.0.1.GA (b2cb23b:859b914) Login successful Found one JBossAS Server instance. Trying to add it. AS server.example.com JBossAS App 1 Added to myGroup!