package org.rhq.plugins.services;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.rhq.core.domain.configuration.Configuration;
import org.rhq.core.domain.configuration.PropertySimple;
import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
public class ServiceDiscoveryComponent implements ResourceDiscoveryComponent<ServicesComponent> {
public static final String SYS_V_SERVICE = "SysV";
public static final String XINETD_SERVICE = "Xinetd";
@Override
public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<ServicesComponent> context)
throws InvalidPluginConfigurationException, Exception {
Set<DiscoveredResourceDetails> details = new HashSet<DiscoveredResourceDetails>();
ServicesComponent servicesComponent = context.getParentResourceComponent();
List<String> services = servicesComponent.getSysVServices();
for (String name : services) {
Configuration pluginConfig = context.getDefaultPluginConfiguration();
pluginConfig.put(new PropertySimple("name", name));
pluginConfig.put(new PropertySimple("type", SYS_V_SERVICE));
DiscoveredResourceDetails detail = new DiscoveredResourceDetails(context.getResourceType(), name, name
+ " (Sys V)", null, "Service - [" + name + "]", pluginConfig, null);
details.add(detail);
}
services = servicesComponent.getXinetDServices();
for (String name : services) {
Configuration pluginConfig = context.getDefaultPluginConfiguration();
pluginConfig.put(new PropertySimple("name", name));
pluginConfig.put(new PropertySimple("type", XINETD_SERVICE));
DiscoveredResourceDetails detail = new DiscoveredResourceDetails(context.getResourceType(), name, name
+ " (XinetD)", null, "Service - [" + name + "]", pluginConfig, null);
details.add(detail);
}
return details;
}
}