Repository: ambari Updated Branches: refs/heads/branch-3.0-perf 6ff8a5376 -> ada8f83b7
AMBARI-22289. Alert definition update event creation was failed with AmbariException on alert definition registration. (mpapirkovskyy) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/ada8f83b Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/ada8f83b Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/ada8f83b Branch: refs/heads/branch-3.0-perf Commit: ada8f83b7efe874e5354111458715c8a14a94e7b Parents: 6ff8a53 Author: Myroslav Papirkovskyi <[email protected]> Authored: Thu Oct 26 19:13:56 2017 +0300 Committer: Myroslav Papirkovskyi <[email protected]> Committed: Thu Oct 26 19:13:56 2017 +0300 ---------------------------------------------------------------------- .../server/agent/stomp/AlertDefinitionsHolder.java | 14 ++++++++++++++ .../server/events/AlertDefinitionsUpdateEvent.java | 4 ++-- 2 files changed, 16 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/ada8f83b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java index 9c3f9b5..c31f9d8 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/AlertDefinitionsHolder.java @@ -22,6 +22,7 @@ import static org.apache.ambari.server.events.AlertDefinitionsUpdateEvent.EventT import static org.apache.ambari.server.events.AlertDefinitionsUpdateEvent.EventType.UPDATE; import java.util.Collections; +import java.util.HashMap; import java.util.Map; import java.util.Set; import java.util.TreeMap; @@ -36,6 +37,7 @@ import org.apache.ambari.server.events.AlertDefinitionChangedEvent; import org.apache.ambari.server.events.AlertDefinitionDeleteEvent; import org.apache.ambari.server.events.AlertDefinitionRegistrationEvent; import org.apache.ambari.server.events.AlertDefinitionsUpdateEvent; +import org.apache.ambari.server.events.HostsAddedEvent; import org.apache.ambari.server.events.HostsRemovedEvent; import org.apache.ambari.server.events.ServiceComponentInstalledEvent; import org.apache.ambari.server.events.ServiceComponentUninstalledEvent; @@ -143,6 +145,18 @@ public class AlertDefinitionsHolder extends AgentHostDataHolder<AlertDefinitions } @Subscribe + public void onHostToClusterAssign(HostsAddedEvent hostsAddedEvent) throws AmbariException { + Long clusterId = hostsAddedEvent.getClusterId(); + for (String hostName : hostsAddedEvent.getHostNames()) { + Long hostId = clusters.get().getHost(hostName).getHostId(); + Map<Long, AlertCluster> existingClusters = getData(hostId).getClusters(); + if (!existingClusters.containsKey(clusterId)) { + existingClusters.put(clusterId, new AlertCluster(new HashMap<>(), hostName)); + } + } + } + + @Subscribe public void onServiceComponentInstalled(ServiceComponentInstalledEvent event) throws AmbariException { String hostName = event.getHostName(); String serviceName = event.getServiceName(); http://git-wip-us.apache.org/repos/asf/ambari/blob/ada8f83b/ambari-server/src/main/java/org/apache/ambari/server/events/AlertDefinitionsUpdateEvent.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/events/AlertDefinitionsUpdateEvent.java b/ambari-server/src/main/java/org/apache/ambari/server/events/AlertDefinitionsUpdateEvent.java index 0bae130..72adcc2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/events/AlertDefinitionsUpdateEvent.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/events/AlertDefinitionsUpdateEvent.java @@ -18,7 +18,7 @@ package org.apache.ambari.server.events; -import java.util.Collections; +import java.util.HashMap; import java.util.Map; import java.util.Objects; @@ -47,7 +47,7 @@ public class AlertDefinitionsUpdateEvent extends AmbariHostUpdateEvent implement public AlertDefinitionsUpdateEvent(EventType eventType, Map<Long, AlertCluster> clusters, String hostName, Long hostId) { super(Type.ALERT_DEFINITIONS); this.eventType = eventType; - this.clusters = clusters != null ? Collections.unmodifiableMap(clusters) : null; + this.clusters = clusters != null ? new HashMap<>(clusters) : null; this.hostName = hostName; this.hostId = hostId; }
