modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/discovery/DiscoveryServerService.java
| 3
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ChildResourceTypeDiscoveryRunner.java
| 9
modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
| 4
modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
| 116 +++++-----
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryServerServiceImpl.java
| 7
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
| 24 +-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java
| 9
modules/plugins/nagios/TODO.txt
| 6
modules/plugins/nagios/src/main/java/org/rhq/plugins/nagios/NagiosMonitorComponent.java
| 12 -
9 files changed, 112 insertions(+), 78 deletions(-)
New commits:
commit efa1ed96e23381208f8a5d6ccf4f2abe3caa884f
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Fri Jul 30 10:50:12 2010 +0200
Did some changes in NagiosMonitorComponent.discoverChildResourceTypes() and modified
TODO text file
diff --git a/modules/plugins/nagios/TODO.txt b/modules/plugins/nagios/TODO.txt
index 4361bc3..b096161 100644
--- a/modules/plugins/nagios/TODO.txt
+++ b/modules/plugins/nagios/TODO.txt
@@ -2,11 +2,13 @@ Important things that will have to be done in the future:
-Enlarge the plugin to make it possible to get all the metrics of Nagios
-At the moment it is limited to only a few metrics because there is a bug in the parser
that has to be fixed first
--Refactoring of the data model to find out if there are possibilities to improve the
whole thing
-Update wiki documentation to include the latest changes
-More logging output for debug purpose in all the classes
-Add hosts to the type hierachy (at the moment hard coded "localhost")
- have on discovery the host of a service put into a property within the connection
properties
of the service, so that it is possible to create groups that contain all services of
a host
-- get logfiles via mk_livestatus and feed them into the events subsystem
+- get logfiles via mk_livestatus and feed them into the events subsystem
+-Check if ChildResourceTypes allready have been detected and if so, do not snychronize
agent and server to avoid useless capture of system resources
+- Create new Discovery and Component classes to handle new ChildResourceTypes
+-Let the plugin work with the MK_Livestatus information and disable hard-coded creation
of new ResourceTypes
diff --git
a/modules/plugins/nagios/src/main/java/org/rhq/plugins/nagios/NagiosMonitorComponent.java
b/modules/plugins/nagios/src/main/java/org/rhq/plugins/nagios/NagiosMonitorComponent.java
index 07214f3..18df876 100644
---
a/modules/plugins/nagios/src/main/java/org/rhq/plugins/nagios/NagiosMonitorComponent.java
+++
b/modules/plugins/nagios/src/main/java/org/rhq/plugins/nagios/NagiosMonitorComponent.java
@@ -32,6 +32,7 @@ import org.rhq.core.domain.measurement.AvailabilityType;
import org.rhq.core.domain.measurement.DataType;
import org.rhq.core.domain.measurement.MeasurementDataNumeric;
import org.rhq.core.domain.measurement.MeasurementDataTrait;
+import org.rhq.core.domain.measurement.MeasurementDefinition;
import org.rhq.core.domain.measurement.MeasurementReport;
import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
import org.rhq.core.domain.resource.ResourceCategory;
@@ -188,8 +189,15 @@ public class NagiosMonitorComponent implements ResourceComponent,
MeasurementFac
log.info("<nagiosMonitorComponent>discoverChildResourceTypes
called");
ResourceType parentType = this.context.getResourceType();
- ResourceType resourceType = new ResourceType("NewChild",
parentType.getPlugin(), ResourceCategory.SERVICE,
- parentType);
+ ResourceType resourceType = new ResourceType("NewNagiosChild",
parentType.getPlugin(),
+ ResourceCategory.SERVICE, parentType);
+
+ //Create measurement definition for new created ResourceType
+ MeasurementDefinition measurementDef = new MeasurementDefinition(resourceType,
resourceType.getName()
+ + "Metric");
+
+ //Add new MeasurementDefinition to the resourceType
+ resourceType.addMetricDefinition(measurementDef);
Set<ResourceType> resourceTypes = new HashSet<ResourceType>();
resourceTypes.add(resourceType);
commit 90cc89a8bea536cf615529607617069dd831d4c3
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Fri Jul 30 10:41:48 2010 +0200
Changed method call according to the changes in ResourceTypeMetadataManagerBean
diff --git
a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
index 24f96fe..5770361 100644
---
a/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
+++
b/modules/enterprise/gui/portal-war/src/main/webapp/admin/test/ResourceTypeCreator.jsp
@@ -1,61 +1,61 @@
-<%@ page language="java" contentType="text/html;
charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
-<%@page import="javax.naming.*"%>
-<%@page import="javax.ejb.*"%>
-<%@page import="java.rmi.*"%>
-<%@page import="java.util.*"%>
-<%@page import="org.rhq.enterprise.server.resource.metadata.*"%>
-<%@page import="org.rhq.core.domain.plugin.*"%>
-
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
-
-<%@page import="org.rhq.core.domain.resource.ResourceType"%>
-<%@page import="org.rhq.core.domain.resource.ResourceCategory"%>
-<%@page import="javax.persistence.NoResultException"%>
-<%@page
import="org.rhq.enterprise.server.resource.ResourceTypeManagerLocal"%>
-<%@page
import="org.rhq.enterprise.server.resource.ResourceTypeManagerBean"%>
-<%@page import="org.apache.commons.logging.*"%>
-
-<%@page import="org.rhq.enterprise.server.util.LookupUtil"%>
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
-<title>ResourceTypeCreator</title>
-</head>
-<body>
- <h1>ResourceTypeCreator JSP Page</h1>
-
- <form action="ResourceTypeCreator.jsp" method="post">
-
- Enter the name of the new RessourceType:
- <input type="text" name="resourceTypeName"
width="150px" height="35px"><br>
- Enter the name of first metric:
- <input type="text" name="resourceTypeMetric1Input"
width="150px" height="35px"><br>
- <!--
- Enter the name of second metric:
- <input type="text" name="resourceTypeMetric2Input"
width="150px" height="35px"><br>
- Enter the name third metric:
- <input type="text" name="resourceTypeMetric3Input"
width="150px" height="35px"><br>
- -->
-
- <input type="submit" value="Create new ResourceType">
-
- </form>
-
- <%
- /** Creation of parameters for the new ResourceType */
- String resourceTypeName = request.getParameter("resourceTypeName");
- String metricName = request.getParameter("resourceTypeMetric1Input");
-
- if( resourceTypeName != null )
- {
- //After name of new resourceType has been given
- LookupUtil.getResourceMetadataManager().addNewResourceType(resourceTypeName,
metricName);
- }
- else
- {
- out.println("Please insert the name of the new ResourceType");
- }
- %>
+<%@ page language="java" contentType="text/html;
charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
+<%@page import="javax.naming.*"%>
+<%@page import="javax.ejb.*"%>
+<%@page import="java.rmi.*"%>
+<%@page import="java.util.*"%>
+<%@page import="org.rhq.enterprise.server.resource.metadata.*"%>
+<%@page import="org.rhq.core.domain.plugin.*"%>
+
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
+
+<%@page import="org.rhq.core.domain.resource.ResourceType"%>
+<%@page import="org.rhq.core.domain.resource.ResourceCategory"%>
+<%@page import="javax.persistence.NoResultException"%>
+<%@page
import="org.rhq.enterprise.server.resource.ResourceTypeManagerLocal"%>
+<%@page
import="org.rhq.enterprise.server.resource.ResourceTypeManagerBean"%>
+<%@page import="org.apache.commons.logging.*"%>
+
+<%@page import="org.rhq.enterprise.server.util.LookupUtil"%>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
+<title>ResourceTypeCreator</title>
+</head>
+<body>
+ <h1>ResourceTypeCreator JSP Page</h1>
+
+ <form action="ResourceTypeCreator.jsp" method="post">
+
+ Enter the name of the new RessourceType:
+ <input type="text" name="resourceTypeName"
width="150px" height="35px"><br>
+ Enter the name of first metric:
+ <input type="text" name="resourceTypeMetric1Input"
width="150px" height="35px"><br>
+ <!--
+ Enter the name of second metric:
+ <input type="text" name="resourceTypeMetric2Input"
width="150px" height="35px"><br>
+ Enter the name third metric:
+ <input type="text" name="resourceTypeMetric3Input"
width="150px" height="35px"><br>
+ -->
+
+ <input type="submit" value="Create new ResourceType">
+
+ </form>
+
+ <%
+ /** Creation of parameters for the new ResourceType */
+ String resourceTypeName = request.getParameter("resourceTypeName");
+ String metricName = request.getParameter("resourceTypeMetric1Input");
+
+ if( resourceTypeName != null )
+ {
+ //After name of new resourceType has been given
+ LookupUtil.getResourceMetadataManager().addNewResourceTypeByNames(resourceTypeName,
metricName);
+ }
+ else
+ {
+ out.println("Please insert the name of the new ResourceType");
+ }
+ %>
</body>
</html>
commit 544748e4cf549dd23ec8314f1e6c600080b19ea1
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Fri Jul 30 10:38:55 2010 +0200
Added new method both in interface and class to work with ResourceType objects and
changed other method to keep working with Strings possible
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
index ff15f25..b4a681f 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerBean.java
@@ -1524,8 +1524,8 @@ public class ResourceMetadataManagerBean implements
ResourceMetadataManagerLocal
return result;
}
- /** Method to add a runtime-created resourceType to an existing plugin */
- public void addNewResourceType(String newResourceTypeName, String metricName) {
+ /** Method to create a resourceType by given String parameters and persist it in
server DB */
+ public void addNewResourceTypeByNames(String newResourceTypeName, String metricName)
{
Plugin plugin = null;
@@ -1578,4 +1578,24 @@ public class ResourceMetadataManagerBean implements
ResourceMetadataManagerLocal
updateType(newResourceType);
}
+
+ /** Method to add new ResourceType objects to server DB */
+ public void addNewResourceType(Set<ResourceType> resourceTypes) {
+
+ //Add each element of the set of ResourceTypes to the DB
+ for (ResourceType newType : resourceTypes) {
+ //Finally do the persistence steps for the new type
+
+ if (log.isDebugEnabled()) {
+ log.debug("Updating of new ResourceType " +
newType.getName());
+ }
+ try {
+ updateType(newType);
+ } catch (IllegalStateException e) {
+ log.info("IllegalStateException caught" + e);
+ } catch (RuntimeException e) {
+ log.info("RuntimeException caught" + e);
+ }
+ }
+ }
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java
index 6135dcd..fc5d639 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/metadata/ResourceMetadataManagerLocal.java
@@ -20,6 +20,7 @@ package org.rhq.enterprise.server.resource.metadata;
import java.io.File;
import java.util.List;
+import java.util.Set;
import javax.ejb.Local;
import javax.persistence.NoResultException;
@@ -28,6 +29,7 @@ import org.rhq.core.clientapi.descriptor.plugin.PluginDescriptor;
import org.rhq.core.domain.auth.Subject;
import org.rhq.core.domain.plugin.Plugin;
import org.rhq.core.domain.resource.ResourceCategory;
+import org.rhq.core.domain.resource.ResourceType;
/**
* Provides functionality surrounding agent plugins and their resource metadata.
@@ -89,6 +91,9 @@ public interface ResourceMetadataManagerLocal {
/** Exists only to have code execute within its own transaction. Not for general
consumption. */
void removeObsoleteTypesInNewTransaction(String pluginName);
- /** Method to add a runtime-created resourceType and one/more metric(s) to an
existing plugin */
- void addNewResourceType(String newResourceTypeName, String metricName);
+ /** Method to create a resourceType by given String parameters and persist it in
server DB */
+ void addNewResourceTypeByNames(String newResourceTypeName, String metricName);
+
+ /** Method to add new ResourceType objects to server DB */
+ void addNewResourceType(Set<ResourceType> resourceTypes);
}
commit 6797227f4d1a3fe165d57209a84485cda7993588
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Fri Jul 30 10:36:40 2010 +0200
Changed method signature of addNewResourceType() according to changes in the interface
implemented by this class
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryServerServiceImpl.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryServerServiceImpl.java
index d21c073..4109319 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryServerServiceImpl.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryServerServiceImpl.java
@@ -37,6 +37,7 @@ import org.rhq.core.domain.resource.Agent;
import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceError;
+import org.rhq.core.domain.resource.ResourceType;
import org.rhq.core.util.collection.ArrayUtils;
import org.rhq.core.util.exception.ThrowableUtil;
import org.rhq.enterprise.server.alert.AlertDefinitionCreationException;
@@ -271,10 +272,10 @@ public class DiscoveryServerServiceImpl implements
DiscoveryServerService {
/**
* Method implementation for prototyping of dynamically adding new ResourceTypes
*/
- public void addNewResourceType(String resourceTypeName, String metricName) {
-
+ @Override
+ public void addNewResourceType(Set<ResourceType> resourceTypes) {
//Method call to add a new resourceType
- LookupUtil.getResourceMetadataManager().addNewResourceType(resourceTypeName,
metricName);
+ LookupUtil.getResourceMetadataManager().addNewResourceType(resourceTypes);
}
}
\ No newline at end of file
commit c149ed503bae8c1e568440d1bea854eafc00ff2c
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Fri Jul 30 10:31:59 2010 +0200
Changed signature of method addNewResourceType() in Interface DiscoveryServerService
diff --git
a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/discovery/DiscoveryServerService.java
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/discovery/DiscoveryServerService.java
index d5207e7..491db49 100644
---
a/modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/discovery/DiscoveryServerService.java
+++
b/modules/core/client-api/src/main/java/org/rhq/core/clientapi/server/discovery/DiscoveryServerService.java
@@ -36,6 +36,7 @@ import org.rhq.core.domain.resource.InventoryStatus;
import org.rhq.core.domain.resource.Resource;
import org.rhq.core.domain.resource.ResourceError;
import org.rhq.core.domain.resource.ResourceErrorType;
+import org.rhq.core.domain.resource.ResourceType;
/**
* The interface to a JON server's resource discovery subsystem.
@@ -151,5 +152,5 @@ public interface DiscoveryServerService {
/**
* Method stub for prototyping of dynamically adding new ResourceTypes
*/
- void addNewResourceType(String resourceTypeName, String metricName);
+ void addNewResourceType(Set<ResourceType> resourceTypes);
}
\ No newline at end of file
commit f6c363c3cfc4e5357717bc3fe87dd7f4cd8ccd52
Author: alexander.kiefer79(a)googlemail.com <di34475@.dh-com.continental.steel>
Date: Fri Jul 30 10:25:38 2010 +0200
Changed Method signature of InventoryManager.createNewResourceType() to make handling
of ResourceType objects possible and adapted calling of method
diff --git
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ChildResourceTypeDiscoveryRunner.java
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ChildResourceTypeDiscoveryRunner.java
index e090b51..59e9615 100644
---
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ChildResourceTypeDiscoveryRunner.java
+++
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/ChildResourceTypeDiscoveryRunner.java
@@ -111,15 +111,12 @@ public class ChildResourceTypeDiscoveryRunner implements
Callable<Set<ResourceTy
//get Set<ResourceType> --> all the Services which
are running under the specific server
resourceTypes =
discoverChildResourceTypes(discoveryComponent);
- //Iterate over all the ResourceTypes contained in the Set
- for (ResourceType type : resourceTypes) {
+ //Create a new ResourceType in the DB for the selected type
+ im.createNewResourceType(resourceTypes);
- //Create a new ResourceType in the DB for the selected
type
- im.createNewResourceType(type.getName(), type.getName() +
"Metric");
- }
} catch (PluginContainerException pce) {
// This is expected when the ResourceComponent does not
implement the ChildResourceTypeDiscoveryFacet
- log.warn("Error submitting service scan: " +
pce.getMessage());
+ log.warn("Error submitting service scan: " +
pce.getMessage());
} catch (Exception e) {
throw new RuntimeException("Error submitting service
scan", e);
}
diff --git
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
index 68ea9ab..87eea06 100644
---
a/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
+++
b/modules/core/plugin-container/src/main/java/org/rhq/core/pc/inventory/InventoryManager.java
@@ -2426,14 +2426,14 @@ public class InventoryManager extends AgentService implements
ContainerService,
/**
* Method to create new ResourceTypes within the agent
*/
- public void createNewResourceType(String resourceTypeName, String metricName) {
+ public void createNewResourceType(Set<ResourceType> resourceTypes) {
//Get DiscoveryServerService object to enable communication to the remote server
DiscoveryServerService serverService =
configuration.getServerServices().getDiscoveryServerService();
if (serverService != null) {
//Call method to add a new ResourceType in the server DB
- serverService.addNewResourceType(resourceTypeName, metricName);
+ serverService.addNewResourceType(resourceTypes);
}
}