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;
   }

Reply via email to