[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rhq-commits
Subject:    [rhq] modules/enterprise
From:       Jiri Kremser <jkremser () fedoraproject ! org>
Date:       2013-11-27 16:03:17
Message-ID: 20131127160317.725E260D84 () fedorahosted ! org
[Download RAW message or body]

 modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java \
|    7 +++++  modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java \
|   14 +++++++++-  modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ResourceHandlerBean.java \
|    4 ++  3 files changed, 23 insertions(+), 2 deletions(-)

New commits:
commit 94e2c04316352993550b4837bd27aadacfffdbb2
Author: Jirka Kremser <jkremser@redhat.com>
Date:   Wed Nov 27 17:02:56 2013 +0100

    [BZ 1035280] - Cannot load metrics for platform resource created using rest api - \
adding a check whether the agent is the dummy one for \
MeasurementDataManagerBean.findLiveData() and \
ResourceManagerBean.getLiveAvailability().

diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java \
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java
 index 4a5fc73..9612405 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java
                
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/measurement/MeasurementDataManagerBean.java
 @@ -100,6 +100,7 @@ import org.rhq.enterprise.server.core.AgentManagerLocal;
 import org.rhq.enterprise.server.measurement.instrumentation.MeasurementMonitor;
 import org.rhq.enterprise.server.measurement.util.MeasurementDataManagerUtility;
 import org.rhq.enterprise.server.resource.group.ResourceGroupManagerLocal;
+import org.rhq.enterprise.server.rest.ResourceHandlerBean;
 import org.rhq.enterprise.server.storage.StorageClientManagerBean;
 import org.rhq.enterprise.server.util.CriteriaQueryGenerator;
 import org.rhq.enterprise.server.util.CriteriaQueryRunner;
@@ -884,6 +885,12 @@ public class MeasurementDataManagerBean implements \
                MeasurementDataManagerLocal,
         Query query = \
entityManager.createNamedQuery(Agent.QUERY_FIND_BY_RESOURCE_ID);  \
query.setParameter("resourceId", resourceId);  Agent agent = (Agent) \
query.getSingleResult(); +        
+        // return empty data if the agent is the dummy one
+        if (agent.getName().startsWith(ResourceHandlerBean.DUMMY_AGENT_NAME_PREFIX)
+            && agent.getAgentToken().startsWith(ResourceHandlerBean.DUMMY_AGENT_TOKEN_PREFIX)) \
{ +            return Collections.<MeasurementData> emptySet();
+        }
 
         query = entityManager.createNamedQuery(MeasurementSchedule.FIND_BY_RESOURCE_IDS_AND_DEFINITION_IDS);
                
         query.setParameter("definitionIds", ArrayUtils.wrapInList(definitionIds));
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java \
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
 index a58bd3c..8a78995 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
                
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/resource/ResourceManagerBean.java
 @@ -81,6 +81,7 @@ import org.rhq.core.domain.event.EventSource;
 import org.rhq.core.domain.measurement.Availability;
 import org.rhq.core.domain.measurement.AvailabilityType;
 import org.rhq.core.domain.measurement.MeasurementBaseline;
+import org.rhq.core.domain.measurement.MeasurementData;
 import org.rhq.core.domain.measurement.MeasurementDataTrait;
 import org.rhq.core.domain.measurement.MeasurementOOB;
 import org.rhq.core.domain.measurement.MeasurementSchedule;
@@ -2451,7 +2452,18 @@ public class ResourceManagerBean implements \
ResourceManagerLocal, ResourceManage  
         try {
             // first, quickly see if we can even ping the agent, if not, don't \
                bother trying to get the resource avail
-            AgentClient client = \
agentManager.getAgentClient(subjectManager.getOverlord(), resourceId); +            \
Agent agent = agentManager.getAgentByResourceId(subject, resourceId); +            if \
(agent == null) { +                if (log.isDebugEnabled()) {
+                    log.debug("Resource [" + resourceId + "] does not exist or has \
no agent assigned"); +                }
+                new IllegalStateException("No agent is associated with the resource \
with id [" + resourceId + "]"); +            } else if \
(agent.getName().startsWith(ResourceHandlerBean.DUMMY_AGENT_NAME_PREFIX) +            \
&& agent.getAgentToken().startsWith(ResourceHandlerBean.DUMMY_AGENT_TOKEN_PREFIX)) { \
+                // dummy agent created from REST +                return \
getResourceById(subject, resourceId).getCurrentAvailability(); +            }
+            AgentClient client = agentManager.getAgentClient(agent);
             if (client == null) {
                 throw new IllegalStateException("No agent is associated with the \
resource with id [" + resourceId + "]");  }
diff --git a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ResourceHandlerBean.java \
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ResourceHandlerBean.java
 index 3480f3b..9cdcddd 100644
--- a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ResourceHandlerBean.java
                
+++ b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/rest/ResourceHandlerBean.java
 @@ -127,6 +127,7 @@ public class ResourceHandlerBean extends AbstractRestBean {
 
     // Name prefix for synthetic/dummy agents created with the rest api. See \
                #createPlatformInternal
     public static final String DUMMY_AGENT_NAME_PREFIX = "dummy-agent:name";
+    public static final String DUMMY_AGENT_TOKEN_PREFIX = "abc-";
 
     @EJB
     AvailabilityManagerLocal availMgr;
@@ -670,7 +671,8 @@ public class ResourceHandlerBean extends AbstractRestBean {
         // Create a dummy agent per platform - otherwise we can't delete the \
                platform later
         // See also \
https://docs.jboss.org/author/display/RHQ/Virtual+platforms+and+synthetic+agents  \
                Agent agent ;
-        agent = new Agent(DUMMY_AGENT_NAME_PREFIX \
+name,"-dummy-p:"+name,12345,"http://foo.com/p:name/"+name,"abc-"+name); +        \
agent = new Agent(DUMMY_AGENT_NAME_PREFIX + name, "-dummy-p:" + name, 12345, \
"http://foo.com/p:name/" + name, +            DUMMY_AGENT_TOKEN_PREFIX + name);
         agentMgr.createAgent(agent);
 
         Resource platform = new Resource(resourceKey,name,type);


_______________________________________________
rhq-commits mailing list
rhq-commits@lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/rhq-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic