/*
* RHQ Management Platform
* Copyright (C) 2005-2008 Red Hat, Inc.
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation version 2 of the License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
package org.rhq.plugin.nss;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
import org.rhq.core.pluginapi.inventory.ProcessScanResult;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
/**
*
*Discovers if the Linux platform is using NSSWitch
* @author Adam Young
*/
public class NameServiceSwitchDiscoveryComponent implements ResourceDiscoveryComponent<NameServiceSwitchComponent> {
private final Log log = LogFactory.getLog(NameServiceSwitchDiscoveryComponent.class);
/**
* Review the javadoc for both {@link ResourceDiscoveryComponent} and {@link ResourceDiscoveryContext} to learn what
* you need to do in this method.
*
* @see ResourceDiscoveryComponent#discoverResources(ResourceDiscoveryContext)
*/
public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext context) {
log.info("Calling discoverResources for NSS");
// if your plugin descriptor defined one or more <process-scan>s, then see if the plugin container
// auto-discovered processes using those process scan definitions. Process all those that were found.
List<ProcessScanResult> autoDiscoveryResults = context.getAutoDiscoveredProcesses();
for (ProcessScanResult autoDiscoveryResult : autoDiscoveryResults) {
// determine if you want to include the result in this method's returned set of discovered resources
}
List<Configuration> pluginConfigs = context.getPluginConfigurations();
for (Configuration pluginConfig : pluginConfigs) {
// pluginConfig contains information on a resource that was manually discovered/entered by the user
// take it and build a details object that represents that resource
}
// now perform your own discovery mechanism, if you have one. For each resource discovered, you need to
// create a details object that describe the resource that you discovered.
HashSet<DiscoveredResourceDetails> set = new HashSet<DiscoveredResourceDetails>();
// key = this must be a unique string across all of your resources - see docs for uniqueness rules
// name = this is the name you give the new resource; it does not necessarily have to be unique
// version = this is any string that corresponds to the resource's version
// description = this is any string that you want to assign as the default description for your resource
String key = "NSSwitch";
String name = "NSSwitch";
String version = "0.0.2";
String description = "Name Service Switch Infrastructure";
DiscoveredResourceDetails resource = new DiscoveredResourceDetails(context.getResourceType(), key, name,
version, description, null, null);
set.add(resource);
return set;
}
}