This is an automated email from the ASF dual-hosted git repository.
swagle pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push:
new cc7fb90 [AMBARI-24035] - Autostart is not obeying Maintenance Mode
(#1465)
cc7fb90 is described below
commit cc7fb90dfc8485afdf71fa95df453247979698b9
Author: kasakrisz <[email protected]>
AuthorDate: Tue Jun 5 20:24:18 2018 +0200
[AMBARI-24035] - Autostart is not obeying Maintenance Mode (#1465)
* AMBARI-24035 - Autostart is not obeying Maintenance Mode
* AMBARI-24035 - Autostart is not obeying Maintenance Mode
- fix method name
---
.../server/agent/stomp/HostLevelParamsHolder.java | 41 ++++++++++++++++------
1 file changed, 31 insertions(+), 10 deletions(-)
diff --git
a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/HostLevelParamsHolder.java
b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/HostLevelParamsHolder.java
index 8190130..3c44f57 100644
---
a/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/HostLevelParamsHolder.java
+++
b/ambari-server/src/main/java/org/apache/ambari/server/agent/stomp/HostLevelParamsHolder.java
@@ -26,11 +26,13 @@ import
org.apache.ambari.server.agent.stomp.dto.HostLevelParamsCluster;
import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.events.ClusterComponentsRepoChangedEvent;
import org.apache.ambari.server.events.HostLevelParamsUpdateEvent;
+import org.apache.ambari.server.events.MaintenanceModeEvent;
import org.apache.ambari.server.events.ServiceComponentRecoveryChangedEvent;
import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.Host;
+import org.apache.ambari.server.state.ServiceComponentHost;
import org.apache.commons.collections.MapUtils;
import com.google.common.eventbus.Subscribe;
@@ -119,23 +121,42 @@ public class HostLevelParamsHolder extends
AgentHostDataHolder<HostLevelParamsUp
@Subscribe
public void onClusterComponentsRepoUpdate(ClusterComponentsRepoChangedEvent
clusterComponentsRepoChangedEvent) throws AmbariException {
- updateDataOfCluster(clusterComponentsRepoChangedEvent.getClusterId());
+ Cluster cluster =
clusters.getCluster(clusterComponentsRepoChangedEvent.getClusterId());
+ for (Host host : cluster.getHosts()) {
+ updateDataOfHost(clusterComponentsRepoChangedEvent.getClusterId(),
cluster, host);
+ }
}
@Subscribe
public void
onServiceComponentRecoveryChanged(ServiceComponentRecoveryChangedEvent event)
throws AmbariException {
- updateDataOfCluster(event.getClusterId());
+ long clusterId = event.getClusterId();
+ Cluster cluster = clusters.getCluster(clusterId);
+ for (ServiceComponentHost host :
cluster.getServiceComponentHosts(event.getServiceName(),
event.getComponentName())) {
+ updateDataOfHost(clusterId, cluster, host.getHost());
+ }
+ }
+
+ private void updateDataOfHost(long clusterId, Cluster cluster, Host host)
throws AmbariException {
+ HostLevelParamsUpdateEvent hostLevelParamsUpdateEvent = new
HostLevelParamsUpdateEvent(Long.toString(clusterId),
+ new HostLevelParamsCluster(
+
m_ambariManagementController.get().retrieveHostRepositories(cluster, host),
+
recoveryConfigHelper.getRecoveryConfig(cluster.getClusterName(),
host.getHostName())));
+ hostLevelParamsUpdateEvent.setHostId(host.getHostId());
+ updateData(hostLevelParamsUpdateEvent);
}
- private void updateDataOfCluster(long clusterId) throws AmbariException {
+ @Subscribe
+ public void onMaintenanceModeChanged(MaintenanceModeEvent event) throws
AmbariException {
+ long clusterId = event.getClusterId();
Cluster cluster = clusters.getCluster(clusterId);
- for (Host host : cluster.getHosts()) {
- HostLevelParamsUpdateEvent hostLevelParamsUpdateEvent = new
HostLevelParamsUpdateEvent(Long.toString(clusterId),
- new HostLevelParamsCluster(
-
m_ambariManagementController.get().retrieveHostRepositories(cluster, host),
-
recoveryConfigHelper.getRecoveryConfig(cluster.getClusterName(),
host.getHostName())));
- hostLevelParamsUpdateEvent.setHostId(host.getHostId());
- updateData(hostLevelParamsUpdateEvent);
+ if (event.getHost() != null || event.getServiceComponentHost() != null) {
+ Host host = event.getHost() != null ? event.getHost() :
event.getServiceComponentHost().getHost();
+ updateDataOfHost(clusterId, cluster, host);
+ }
+ else if (event.getService() != null) {
+ for (String hostName : event.getService().getServiceHosts()) {
+ updateDataOfHost(clusterId, cluster, cluster.getHost(hostName));
+ }
}
}
}
--
To stop receiving notification emails like this one, please contact
[email protected].