// auto_import.js rhq.login('rhqadmin', 'rhqadmin'); var resources = findUncommittedResources(); var resourceIds = getIds(resources); DiscoveryBoss.importResources(resourceIds); rhq.logout(); // returns a java.util.List of Resource objects // that have not yet been committed into inventory function findUncommittedResources() { var criteria = ResourceCriteria(); criteria.addFilterInventoryStatus(InventoryStatus.NEW); return ResourceManager.findResourcesByCriteria(criteria); } // returns an array of ids for a given list // of Resource objects. Note the resources argument // can actually be any Collection that contains // elements having an id property. function getIds(resources) { var ids = []; for (i = 0; i < resources.size(); i++) { ids[i] = resources.get(i).id; } return ids; }
In the function findUncommittedResources() we query for Resources objects having an inventory status of NEW. This results in a query that retrieves discovered resources that have been "registered" with the RHQ server (i.e., stored in the database) but not yet committed into inventory.
DiscoveryBoss is one of the remote EJBs exposed by the RHQ server to the CLI. It provides a handful of inventory-related operations. On line six we call DiscoveryBoss.importResources() which takes an array of resource ids.
In a follow-up post we will use some additional CLI features to parametrize this script so that we have more control of what gets auto-imported.
No comments:
Post a Comment