modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
| 14 ++-
modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
| 38 ++++++----
2 files changed, 34 insertions(+), 18 deletions(-)
New commits:
commit 1b7f2f374291fd0c9a7346339ade032428376868
Author: John Mazzitelli <mazz(a)redhat.com>
Date: Fri Oct 25 16:00:30 2013 -0400
BZ 1023332 be tolerant when the agent client cannot be started
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
index 8313ca2..1c23836 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/core/AgentManagerBean.java
@@ -166,12 +166,18 @@ public class AgentManagerBean implements AgentManagerLocal {
ServerCommunicationsServiceMBean bootstrap =
ServerCommunicationsServiceUtil.getService();
client = bootstrap.getKnownAgentClient(agent);
- // We assume the caller is asking for a client so it can send the agent
messages,
- // so let's start the sender automatically for the caller so it
doesn't need to remember to do it
- client.startSending();
+ if (client != null) {
+ // We assume the caller is asking for a client so it can send the agent
messages,
+ // so let's start the sender automatically for the caller so it
doesn't need to remember to do it
+ client.startSending();
+ } else {
+ if (LOG.isDebugEnabled()) {
+ LOG.debug("There is no agent client for agent: " + agent);
+ }
+ }
} catch (Throwable t) {
if (LOG.isDebugEnabled()) {
- LOG.debug("Could not get agent client for " + agent, t);
+ LOG.debug("Could not get agent client for agent: " + agent,
t);
}
}
diff --git
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
index ef33810..d7e57bd 100644
---
a/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
+++
b/modules/enterprise/server/jar/src/main/java/org/rhq/enterprise/server/discovery/DiscoveryBossBean.java
@@ -427,24 +427,34 @@ public class DiscoveryBossBean implements DiscoveryBossLocal,
DiscoveryBossRemot
for (Resource platform : platforms) {
AgentClient agentClient = agentManager.getAgentClient(platform.getAgent());
- try {
- syncInfo = entityManager.find(ResourceSyncInfo.class, platform.getId());
- agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
- } catch (Exception e) {
- LOG.warn("Could not perform commit synchronization with agent for
platform [" + platform.getName()
- + "]", e);
+ if (agentClient != null) {
+ try {
+ syncInfo = entityManager.find(ResourceSyncInfo.class,
platform.getId());
+
agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
+ } catch (Exception e) {
+ LOG.warn("Could not perform commit synchronization with agent
for platform [" + platform.getName()
+ + "]", e);
+ }
+ } else {
+ LOG.warn("Could not perform commit sync with agent for platform
[" + platform.getName()
+ + "]; will expect agent to do it later");
}
}
for (Resource server : servers) {
// Only update servers if they haven't already been updated at the
platform level
if (!platforms.contains(server.getParentResource())) {
AgentClient agentClient =
agentManager.getAgentClient(server.getAgent());
- try {
- syncInfo = entityManager.find(ResourceSyncInfo.class,
server.getId());
-
agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
- } catch (Exception e) {
- LOG.warn("Could not perform commit synchronization with agent
for server [" + server.getName()
- + "]", e);
+ if (agentClient != null) {
+ try {
+ syncInfo = entityManager.find(ResourceSyncInfo.class,
server.getId());
+
agentClient.getDiscoveryAgentService().synchronizeInventory(syncInfo);
+ } catch (Exception e) {
+ LOG.warn("Could not perform commit synchronization with
agent for server [" + server.getName()
+ + "]", e);
+ }
+ } else {
+ LOG.warn("Could not perform commit sync with agent for server
[" + server.getName()
+ + "]; will expect agent to do it later");
}
}
}
@@ -709,10 +719,10 @@ public class DiscoveryBossBean implements DiscoveryBossLocal,
DiscoveryBossRemot
}
// If provided, assume the new plugin config should replace the old plugin
config in its entirety.
- // Use a deep copy without ids as the updgardeRequest config may contain
entity config props.
+ // Use a deep copy without ids as the updgardeRequest config may contain
entity config props.
// Note: we explicitly do not call
configurationManager.updatePluginConfiguration() because the
// agent is already updated to the new configuration. Instead we call the
dedicated local method
- // supporting this use case.
+ // supporting this use case.
Configuration pluginConfig = upgradeRequest.getNewPluginConfiguration();
if (null != pluginConfig) {
pluginConfig = pluginConfig.deepCopy(false);
Show replies by date