[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