You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2014/02/10 19:11:38 UTC
git commit: AMBARI-4569. Health status should ignore host components
that are PASSIVE. (ncole)
Updated Branches:
refs/heads/trunk 84fba7b22 -> 0a79a472e
AMBARI-4569. Health status should ignore host components that are PASSIVE. (ncole)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/0a79a472
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/0a79a472
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/0a79a472
Branch: refs/heads/trunk
Commit: 0a79a472ebcaccda560816e4f744b68cc5a801fa
Parents: 84fba7b
Author: Nate Cole <nc...@hortonworks.com>
Authored: Mon Feb 10 10:55:36 2014 -0500
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Mon Feb 10 12:57:31 2014 -0500
----------------------------------------------------------------------
.../ambari/server/agent/HeartBeatHandler.java | 24 ++++---
.../controller/AmbariManagementController.java | 3 +-
.../AmbariManagementControllerImpl.java | 31 +++-----
.../server/controller/PassiveStateHelper.java | 75 ++++++++++++++++++++
.../internal/ComponentResourceProvider.java | 2 +-
.../internal/ServiceResourceProvider.java | 2 +-
.../server/agent/TestHeartbeatHandler.java | 39 ++++++++--
.../AmbariManagementControllerImplTest.java | 68 ++++++++++++++----
.../AmbariManagementControllerTest.java | 20 +++---
.../internal/ComponentResourceProviderTest.java | 1 -
10 files changed, 199 insertions(+), 66 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
index ac284b3..4dfa1cf 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/agent/HeartBeatHandler.java
@@ -31,6 +31,7 @@ import org.apache.ambari.server.ServiceNotFoundException;
import org.apache.ambari.server.actionmanager.ActionManager;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
import org.apache.ambari.server.configuration.Configuration;
+import org.apache.ambari.server.controller.PassiveStateHelper;
import org.apache.ambari.server.metadata.ActionMetadata;
import org.apache.ambari.server.state.AgentVersion;
import org.apache.ambari.server.state.Cluster;
@@ -40,6 +41,7 @@ import org.apache.ambari.server.state.Host;
import org.apache.ambari.server.state.HostHealthStatus;
import org.apache.ambari.server.state.HostHealthStatus.HealthStatus;
import org.apache.ambari.server.state.HostState;
+import org.apache.ambari.server.state.PassiveState;
import org.apache.ambari.server.state.Service;
import org.apache.ambari.server.state.ServiceComponent;
import org.apache.ambari.server.state.ServiceComponentHost;
@@ -242,6 +244,8 @@ public class HeartBeatHandler {
StackId stackId;
Cluster cluster = clusterFsm.getCluster(clusterName);
stackId = cluster.getDesiredStackVersion();
+
+ PassiveStateHelper psh = injector.getInstance(PassiveStateHelper.class);
List<ServiceComponentHost> scHosts = cluster.getServiceComponentHosts(heartbeat.getHostname());
for (ServiceComponentHost scHost : scHosts) {
@@ -254,15 +258,17 @@ public class HeartBeatHandler {
String category = componentInfo.getCategory();
- if (category.equals("MASTER")) {
- ++masterCount;
- if (status.equals("STARTED")) {
- ++mastersRunning;
- }
- } else if (category.equals("SLAVE")) {
- ++slaveCount;
- if (status.equals("STARTED")) {
- ++slavesRunning;
+ if (PassiveState.ACTIVE == psh.getEffectiveState(scHost)) {
+ if (category.equals("MASTER")) {
+ ++masterCount;
+ if (status.equals("STARTED")) {
+ ++mastersRunning;
+ }
+ } else if (category.equals("SLAVE")) {
+ ++slaveCount;
+ if (status.equals("STARTED")) {
+ ++slavesRunning;
+ }
}
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
index cab12e9..a6e52b0 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java
@@ -528,7 +528,6 @@ public interface AmbariManagementController {
* @return the passive state
* @throws AmbariException
*/
- public PassiveState getEffectivePassiveState(Cluster cluster, Service service,
- ServiceComponentHost sch) throws AmbariException;
+ public PassiveState getEffectivePassiveState(ServiceComponentHost sch) throws AmbariException;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index 0efc935..af7663b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -707,7 +707,7 @@ public class AmbariManagementControllerImpl implements
if (filterBasedConfigStaleness && r.isStaleConfig() != staleConfig) {
continue;
}
- r.setPassiveState(getEffectivePassiveState(cluster, s, sch).name());
+ r.setPassiveState(getEffectivePassiveState(sch).name());
response.add(r);
} catch (ServiceComponentHostNotFoundException e) {
if (request.getServiceName() != null && request.getComponentName() != null) {
@@ -740,7 +740,7 @@ public class AmbariManagementControllerImpl implements
continue;
}
- r.setPassiveState(getEffectivePassiveState(cluster, s, sch).name());
+ r.setPassiveState(getEffectivePassiveState(sch).name());
response.add(r);
}
}
@@ -750,26 +750,11 @@ public class AmbariManagementControllerImpl implements
}
@Override
- public PassiveState getEffectivePassiveState(Cluster cluster, Service service,
- ServiceComponentHost sch) throws AmbariException
- {
-
- Map<String, Host> map = clusters.getHostsForCluster(cluster.getClusterName());
- if (null == map)
- return PassiveState.ACTIVE;
-
- Host host = clusters.getHostsForCluster(cluster.getClusterName()).get(sch.getHostName());
- if (null == host) // better not
- throw new HostNotFoundException(cluster.getClusterName(), sch.getHostName());
-
- if (PassiveState.PASSIVE == sch.getPassiveState())
- return PassiveState.PASSIVE;
-
- if (PassiveState.ACTIVE != service.getPassiveState() ||
- PassiveState.ACTIVE != host.getPassiveState(cluster.getClusterId()))
- return PassiveState.IMPLIED;
+ public PassiveState getEffectivePassiveState(ServiceComponentHost sch)
+ throws AmbariException {
+ PassiveStateHelper psh = injector.getInstance(PassiveStateHelper.class);
- return sch.getPassiveState();
+ return psh.getEffectiveState(sch);
}
@@ -1502,8 +1487,10 @@ public class AmbariManagementControllerImpl implements
}
if (null != request.getPassiveState()) {
+ PassiveStateHelper psh = injector.getInstance(PassiveStateHelper.class);
+
PassiveState newPassive = PassiveState.valueOf(request.getPassiveState());
- PassiveState oldPassive = getEffectivePassiveState(cluster, s, sch);
+ PassiveState oldPassive = psh.getEffectiveState(sch);
if (newPassive != oldPassive) {
if (sc.isClientComponent()) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/main/java/org/apache/ambari/server/controller/PassiveStateHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/PassiveStateHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/PassiveStateHelper.java
new file mode 100644
index 0000000..a6b56cc
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/PassiveStateHelper.java
@@ -0,0 +1,75 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.ambari.server.controller;
+
+import java.util.Map;
+
+import org.apache.ambari.server.AmbariException;
+import org.apache.ambari.server.HostNotFoundException;
+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.PassiveState;
+import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.ServiceComponentHost;
+
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+
+/**
+ * Used to help manage passive state checks.
+ */
+public class PassiveStateHelper {
+
+ @Inject
+ private Clusters clusters;
+
+ @Inject
+ public PassiveStateHelper(Injector injector) {
+ injector.injectMembers(this);
+ }
+
+ /**
+ * Gets the effective state for a HostComponents
+ * @param sch the host component
+ * @return the passive state
+ * @throws AmbariException
+ */
+ public PassiveState getEffectiveState(ServiceComponentHost sch) throws AmbariException {
+ Cluster cluster = clusters.getCluster(sch.getClusterName());
+ Service service = cluster.getService(sch.getServiceName());
+
+ Map<String, Host> map = clusters.getHostsForCluster(cluster.getClusterName());
+ if (null == map)
+ return PassiveState.ACTIVE;
+
+ Host host = clusters.getHostsForCluster(cluster.getClusterName()).get(sch.getHostName());
+ if (null == host) // better not
+ throw new HostNotFoundException(cluster.getClusterName(), sch.getHostName());
+
+ if (PassiveState.PASSIVE == sch.getPassiveState())
+ return PassiveState.PASSIVE;
+
+ if (PassiveState.ACTIVE != service.getPassiveState() ||
+ PassiveState.ACTIVE != host.getPassiveState(cluster.getClusterId()))
+ return PassiveState.IMPLIED;
+
+ return sch.getPassiveState();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java
index feb0469..600691d 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java
@@ -736,7 +736,7 @@ public class ComponentResourceProvider extends AbstractControllerResourceProvide
}
// do not update or alter any HC that is not active
- PassiveState schPassive = controller.getEffectivePassiveState(cluster, s, sch);
+ PassiveState schPassive = controller.getEffectivePassiveState(sch);
if (PassiveState.ACTIVE != schPassive) {
if (LOG.isDebugEnabled()) {
LOG.debug("Ignoring ServiceComponentHost"
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
index bfc74b1..cc94baa 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java
@@ -662,7 +662,7 @@ public class ServiceResourceProvider extends AbstractControllerResourceProvider
continue;
}
- PassiveState schPassive = controller.getEffectivePassiveState(cluster, s, sch);
+ PassiveState schPassive = controller.getEffectivePassiveState(sch);
if (PassiveState.PASSIVE == schPassive ||
(requests.size() > 1 && PassiveState.ACTIVE != schPassive)) {
ignoredScHosts.add(sch);
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
index afec756..12aab4f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
@@ -53,6 +53,7 @@ import java.util.Set;
import javax.xml.bind.JAXBException;
import com.google.inject.persist.UnitOfWork;
+
import junit.framework.Assert;
import org.apache.ambari.server.AmbariException;
@@ -70,6 +71,7 @@ import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.Host;
import org.apache.ambari.server.state.HostHealthStatus;
import org.apache.ambari.server.state.HostState;
+import org.apache.ambari.server.state.PassiveState;
import org.apache.ambari.server.state.Service;
import org.apache.ambari.server.state.ServiceComponentHost;
import org.apache.ambari.server.state.StackId;
@@ -1387,9 +1389,36 @@ public class TestHeartbeatHandler {
handler.handleHeartBeat(hb2);
assertEquals(HostHealthStatus.HealthStatus.ALERT.name(), hostObject.getStatus());
+ // mark the installed DN as passive
+ hdfs.getServiceComponent(DATANODE).getServiceComponentHost(
+ DummyHostname1).setPassiveState(PassiveState.PASSIVE);
+ HeartBeat hb2a = new HeartBeat();
+ hb2a.setResponseId(2);
+ hb2a.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus));
+ hb2a.setHostname(DummyHostname1);
+ componentStatus = new ArrayList<ComponentStatus>();
+ dataNodeStatus = new ComponentStatus();
+ dataNodeStatus.setClusterName(cluster.getClusterName());
+ dataNodeStatus.setServiceName(HDFS);
+ dataNodeStatus.setComponentName(DATANODE);
+ dataNodeStatus.setStatus("INSTALLED");
+ componentStatus.add(dataNodeStatus);
+ nameNodeStatus = new ComponentStatus();
+ nameNodeStatus.setClusterName(cluster.getClusterName());
+ nameNodeStatus.setServiceName(HDFS);
+ nameNodeStatus.setComponentName(NAMENODE);
+ nameNodeStatus.setStatus("STARTED");
+ componentStatus.add(nameNodeStatus);
+ hb2a.setComponentStatus(componentStatus);
+ handler.handleHeartBeat(hb2a);
+ assertEquals(HostHealthStatus.HealthStatus.HEALTHY.name(), hostObject.getStatus());
+
+ hdfs.getServiceComponent(DATANODE).getServiceComponentHost(
+ DummyHostname1).setPassiveState(PassiveState.ACTIVE);
+
//Some masters are down
HeartBeat hb3 = new HeartBeat();
- hb3.setResponseId(2);
+ hb3.setResponseId(3);
hb3.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus));
hb3.setHostname(DummyHostname1);
componentStatus = new ArrayList<ComponentStatus>();
@@ -1410,14 +1439,14 @@ public class TestHeartbeatHandler {
assertEquals(HostHealthStatus.HealthStatus.UNHEALTHY.name(), hostObject.getStatus());
//All are up
- hb1.setResponseId(3);
+ hb1.setResponseId(4);
handler.handleHeartBeat(hb1);
assertEquals(HostHealthStatus.HealthStatus.HEALTHY.name(), hostObject.getStatus());
//Only one component reported status
hdfs.getServiceComponent(NAMENODE).getServiceComponentHost(DummyHostname1).setState(State.INSTALLED);
HeartBeat hb4 = new HeartBeat();
- hb4.setResponseId(4);
+ hb4.setResponseId(5);
hb4.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus));
hb4.setHostname(DummyHostname1);
componentStatus = new ArrayList<ComponentStatus>();
@@ -1431,13 +1460,13 @@ public class TestHeartbeatHandler {
handler.handleHeartBeat(hb4);
assertEquals(HostHealthStatus.HealthStatus.UNHEALTHY.name(), hostObject.getStatus());
- hb1.setResponseId(5);
+ hb1.setResponseId(6);
handler.handleHeartBeat(hb1);
assertEquals(HostHealthStatus.HealthStatus.HEALTHY.name(), hostObject.getStatus());
//Some command reports
HeartBeat hb5 = new HeartBeat();
- hb5.setResponseId(6);
+ hb5.setResponseId(7);
hb5.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus));
hb5.setHostname(DummyHostname1);
CommandReport cr1 = new CommandReport();
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
index ff461f7..272b510 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerImplTest.java
@@ -48,6 +48,7 @@ import org.apache.ambari.server.api.services.AmbariMetaInfo;
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.PassiveState;
import org.apache.ambari.server.state.Service;
import org.apache.ambari.server.state.ServiceComponent;
import org.apache.ambari.server.state.ServiceComponentHost;
@@ -280,18 +281,22 @@ public class AmbariManagementControllerImplTest {
ServiceComponentHost componentHost = createNiceMock(ServiceComponentHost.class);
ServiceComponentHostResponse response = createNiceMock(ServiceComponentHostResponse.class);
+ PassiveStateHelper passiveHelper = createNiceMock(PassiveStateHelper.class);
+ expect(passiveHelper.getEffectiveState(componentHost)).andReturn(PassiveState.ACTIVE).anyTimes();
+
// requests
ServiceComponentHostRequest request1 = new ServiceComponentHostRequest(
"cluster1", null, "component1", "host1", null);
-
Set<ServiceComponentHostRequest> setRequests = new HashSet<ServiceComponentHostRequest>();
setRequests.add(request1);
// expectations
// constructor init
injector.injectMembers(capture(controllerCapture));
+
expect(injector.getInstance(Gson.class)).andReturn(null);
+ expect(injector.getInstance(PassiveStateHelper.class)).andReturn(passiveHelper);
// getHostComponent
expect(clusters.getCluster("cluster1")).andReturn(cluster);
@@ -309,7 +314,8 @@ public class AmbariManagementControllerImplTest {
expect(componentHost.convertToResponse()).andReturn(response);
// replay mocks
- replay(injector, clusters, cluster, host, response, stack, metaInfo, service, component, componentHost);
+ replay(passiveHelper, injector, clusters, cluster, host, response, stack,
+ metaInfo, service, component, componentHost);
//test
AmbariManagementController controller = new AmbariManagementControllerImpl(null, clusters, injector);
@@ -414,7 +420,10 @@ public class AmbariManagementControllerImplTest {
ServiceComponentHost componentHost2 = createNiceMock(ServiceComponentHost.class);
ServiceComponentHostResponse response1 = createNiceMock(ServiceComponentHostResponse.class);
ServiceComponentHostResponse response2 = createNiceMock(ServiceComponentHostResponse.class);
-
+ PassiveStateHelper passiveStateHelper = createNiceMock(PassiveStateHelper.class);
+ expect(passiveStateHelper.getEffectiveState(capture(new Capture<ServiceComponentHost>())
+ )).andReturn(PassiveState.ACTIVE).anyTimes();
+
// requests
ServiceComponentHostRequest request1 = new ServiceComponentHostRequest(
"cluster1", null, "component1", "host1", null);
@@ -435,6 +444,8 @@ public class AmbariManagementControllerImplTest {
// constructor init
injector.injectMembers(capture(controllerCapture));
expect(injector.getInstance(Gson.class)).andReturn(null);
+ expect(injector.getInstance(PassiveStateHelper.class)).andReturn(passiveStateHelper).anyTimes();
+
// getHostComponent
expect(clusters.getCluster("cluster1")).andReturn(cluster).times(3);
@@ -466,8 +477,9 @@ public class AmbariManagementControllerImplTest {
expect(componentHost2.convertToResponse()).andReturn(response2);
// replay mocks
- replay(injector, clusters, cluster, host, stack, metaInfo, service, component, component2, component3,
- componentHost1, componentHost2, response1, response2);
+ replay(passiveStateHelper, injector, clusters, cluster, host, stack,
+ metaInfo, service, component, component2, component3, componentHost1,
+ componentHost2, response1, response2);
//test
AmbariManagementController controller = new AmbariManagementControllerImpl(null, clusters, injector);
@@ -509,6 +521,9 @@ public class AmbariManagementControllerImplTest {
ServiceComponentHost componentHost2 = createNiceMock(ServiceComponentHost.class);
ServiceComponentHostResponse response1 = createNiceMock(ServiceComponentHostResponse.class);
ServiceComponentHostResponse response2 = createNiceMock(ServiceComponentHostResponse.class);
+ PassiveStateHelper passiveHelper = createNiceMock(PassiveStateHelper.class);
+ expect(passiveHelper.getEffectiveState(capture(
+ new Capture<ServiceComponentHost>()))).andReturn(PassiveState.ACTIVE).anyTimes();
// requests
ServiceComponentHostRequest request1 = new ServiceComponentHostRequest(
@@ -530,7 +545,8 @@ public class AmbariManagementControllerImplTest {
// constructor init
injector.injectMembers(capture(controllerCapture));
expect(injector.getInstance(Gson.class)).andReturn(null);
-
+ expect(injector.getInstance(PassiveStateHelper.class)).andReturn(passiveHelper).anyTimes();
+
// getHostComponent
expect(clusters.getCluster("cluster1")).andReturn(cluster).times(3);
expect(clusters.getClustersForHost("host1")).andReturn(Collections.singleton(cluster)).anyTimes();
@@ -559,8 +575,9 @@ public class AmbariManagementControllerImplTest {
expect(componentHost2.convertToResponse()).andReturn(response2);
// replay mocks
- replay(injector, clusters, cluster, host, stack, metaInfo, service, component, component2, component3,
- componentHost1, componentHost2, response1, response2);
+ replay(passiveHelper, injector, clusters, cluster, host, stack, metaInfo,
+ service, component, component2, component3, componentHost1,
+ componentHost2, response1, response2);
//test
AmbariManagementController controller = new AmbariManagementControllerImpl(null, clusters, injector);
@@ -603,6 +620,10 @@ public class AmbariManagementControllerImplTest {
ServiceComponentHost componentHost2 = createNiceMock(ServiceComponentHost.class);
ServiceComponentHostResponse response1 = createNiceMock(ServiceComponentHostResponse.class);
ServiceComponentHostResponse response2 = createNiceMock(ServiceComponentHostResponse.class);
+
+ PassiveStateHelper passiveHelper = createNiceMock(PassiveStateHelper.class);
+ expect(passiveHelper.getEffectiveState(capture(
+ new Capture<ServiceComponentHost>()))).andReturn(PassiveState.ACTIVE).anyTimes();
// requests
ServiceComponentHostRequest request1 = new ServiceComponentHostRequest(
@@ -624,6 +645,7 @@ public class AmbariManagementControllerImplTest {
// constructor init
injector.injectMembers(capture(controllerCapture));
expect(injector.getInstance(Gson.class)).andReturn(null);
+ expect(injector.getInstance(PassiveStateHelper.class)).andReturn(passiveHelper).anyTimes();
// getHostComponent
expect(clusters.getCluster("cluster1")).andReturn(cluster).times(3);
@@ -654,8 +676,9 @@ public class AmbariManagementControllerImplTest {
expect(componentHost2.convertToResponse()).andReturn(response2);
// replay mocks
- replay(injector, clusters, cluster, host, stack, metaInfo, service, service2, component, component2, component3,
- componentHost1, componentHost2, response1, response2);
+ replay(passiveHelper, injector, clusters, cluster, host, stack, metaInfo,
+ service, service2, component, component2, component3, componentHost1,
+ componentHost2, response1, response2);
//test
AmbariManagementController controller = new AmbariManagementControllerImpl(null, clusters, injector);
@@ -698,6 +721,9 @@ public class AmbariManagementControllerImplTest {
ServiceComponentHost componentHost2 = createNiceMock(ServiceComponentHost.class);
ServiceComponentHostResponse response1 = createNiceMock(ServiceComponentHostResponse.class);
ServiceComponentHostResponse response2 = createNiceMock(ServiceComponentHostResponse.class);
+ PassiveStateHelper passiveHelper = createNiceMock(PassiveStateHelper.class);
+ expect(passiveHelper.getEffectiveState(
+ capture(new Capture<ServiceComponentHost>()))).andReturn(PassiveState.ACTIVE).anyTimes();
// requests
ServiceComponentHostRequest request1 = new ServiceComponentHostRequest(
@@ -719,6 +745,7 @@ public class AmbariManagementControllerImplTest {
// constructor init
injector.injectMembers(capture(controllerCapture));
expect(injector.getInstance(Gson.class)).andReturn(null);
+ expect(injector.getInstance(PassiveStateHelper.class)).andReturn(passiveHelper).anyTimes();
// getHostComponent
expect(clusters.getCluster("cluster1")).andReturn(cluster).times(3);
@@ -745,8 +772,9 @@ public class AmbariManagementControllerImplTest {
expect(componentHost2.convertToResponse()).andReturn(response2);
// replay mocks
- replay(injector, clusters, cluster, host, stack, metaInfo, service, service2, component, component2, component3,
- componentHost1, componentHost2, response1, response2);
+ replay(passiveHelper, injector, clusters, cluster, host, stack, metaInfo,
+ service, service2, component, component2, component3, componentHost1,
+ componentHost2, response1, response2);
//test
AmbariManagementController controller = new AmbariManagementControllerImpl(null, clusters, injector);
@@ -901,6 +929,9 @@ public class AmbariManagementControllerImplTest {
ServiceComponentHost componentHost2 = createNiceMock(ServiceComponentHost.class);
ServiceComponentHostResponse response1 = createNiceMock(ServiceComponentHostResponse.class);
ServiceComponentHostResponse response2 = createNiceMock(ServiceComponentHostResponse.class);
+ PassiveStateHelper passiveHelper = createNiceMock(PassiveStateHelper.class);
+ expect(passiveHelper.getEffectiveState(
+ capture(new Capture<ServiceComponentHost>()))).andReturn(PassiveState.ACTIVE).anyTimes();
// requests
ServiceComponentHostRequest request1 = new ServiceComponentHostRequest(
@@ -919,6 +950,7 @@ public class AmbariManagementControllerImplTest {
// constructor init
injector.injectMembers(capture(controllerCapture));
expect(injector.getInstance(Gson.class)).andReturn(null);
+ expect(injector.getInstance(PassiveStateHelper.class)).andReturn(passiveHelper).anyTimes();
// getHostComponent
expect(clusters.getCluster("cluster1")).andReturn(cluster);
@@ -937,7 +969,8 @@ public class AmbariManagementControllerImplTest {
expect(componentHost2.convertToResponse()).andReturn(response2);
// replay mocks
- replay(injector, clusters, cluster, response1, response2, stack, metaInfo, service, component, componentHost1, componentHost2);
+ replay(passiveHelper, injector, clusters, cluster, response1, response2,
+ stack, metaInfo, service, component, componentHost1, componentHost2);
//test
AmbariManagementController controller = new AmbariManagementControllerImpl(null, clusters, injector);
@@ -978,6 +1011,9 @@ public class AmbariManagementControllerImplTest {
ServiceComponentHostResponse response1 = createNiceMock(ServiceComponentHostResponse.class);
ServiceComponentHostResponse response2 = createNiceMock(ServiceComponentHostResponse.class);
ServiceComponentHostResponse response3 = createNiceMock(ServiceComponentHostResponse.class);
+ PassiveStateHelper passiveHelper = createNiceMock(PassiveStateHelper.class);
+ expect(passiveHelper.getEffectiveState(
+ capture(new Capture<ServiceComponentHost>()))).andReturn(PassiveState.ACTIVE).anyTimes();
// requests
ServiceComponentHostRequest request1 = new ServiceComponentHostRequest(
@@ -1000,6 +1036,7 @@ public class AmbariManagementControllerImplTest {
// constructor init
injector.injectMembers(capture(controllerCapture));
expect(injector.getInstance(Gson.class)).andReturn(null);
+ expect(injector.getInstance(PassiveStateHelper.class)).andReturn(passiveHelper).anyTimes();
// getHostComponent
expect(clusters.getCluster("cluster1")).andReturn(cluster);
@@ -1019,8 +1056,9 @@ public class AmbariManagementControllerImplTest {
expect(componentHost3.convertToResponse()).andReturn(response3);
// replay mocks
- replay(injector, clusters, cluster, response1, response2, response3, stack, metaInfo, service1, service2,
- component1, component2, componentHost1, componentHost2, componentHost3);
+ replay(passiveHelper, injector, clusters, cluster, response1, response2,
+ response3, stack, metaInfo, service1, service2, component1, component2,
+ componentHost1, componentHost2, componentHost3);
//test
AmbariManagementController controller = new AmbariManagementControllerImpl(null, clusters, injector);
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
index 7106c01..fad4356 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
@@ -9041,7 +9041,7 @@ public class AmbariManagementControllerTest {
for (ServiceComponent sc : service.getServiceComponents().values()) {
for (ServiceComponentHost sch : sc.getServiceComponentHosts().values()) {
Assert.assertEquals(PassiveState.IMPLIED,
- controller.getEffectivePassiveState(cluster, service, sch));
+ controller.getEffectivePassiveState(sch));
Assert.assertEquals(PassiveState.ACTIVE, sch.getPassiveState());
}
}
@@ -9056,7 +9056,7 @@ public class AmbariManagementControllerTest {
for (ServiceComponent sc : service.getServiceComponents().values()) {
for (ServiceComponentHost sch : sc.getServiceComponentHosts().values()) {
Assert.assertEquals(PassiveState.ACTIVE,
- controller.getEffectivePassiveState(cluster, service, sch));
+ controller.getEffectivePassiveState(sch));
Assert.assertEquals(PassiveState.ACTIVE, sch.getPassiveState());
}
}
@@ -9072,7 +9072,7 @@ public class AmbariManagementControllerTest {
// check the host components implied state vs desired state, only for affected hosts
for (ServiceComponent sc : service.getServiceComponents().values()) {
for (ServiceComponentHost sch : sc.getServiceComponentHosts().values()) {
- PassiveState implied = controller.getEffectivePassiveState(cluster, service, sch);
+ PassiveState implied = controller.getEffectivePassiveState(sch);
if (sch.getHostName().equals(host1)) {
Assert.assertEquals(PassiveState.IMPLIED, implied);
} else {
@@ -9093,7 +9093,7 @@ public class AmbariManagementControllerTest {
for (ServiceComponent sc : service.getServiceComponents().values()) {
for (ServiceComponentHost sch : sc.getServiceComponentHosts().values()) {
Assert.assertEquals(PassiveState.ACTIVE,
- controller.getEffectivePassiveState(cluster, service, sch));
+ controller.getEffectivePassiveState(sch));
Assert.assertEquals(PassiveState.ACTIVE, sch.getPassiveState());
}
}
@@ -9105,27 +9105,27 @@ public class AmbariManagementControllerTest {
targetSch.setPassiveState(PassiveState.PASSIVE);
// check the host components active state vs desired state
- Assert.assertEquals(PassiveState.PASSIVE, controller.getEffectivePassiveState(cluster, service, targetSch));
+ Assert.assertEquals(PassiveState.PASSIVE, controller.getEffectivePassiveState(targetSch));
// update the service
service.setPassiveState(PassiveState.PASSIVE);
- Assert.assertEquals(PassiveState.PASSIVE, controller.getEffectivePassiveState(cluster, service, targetSch));
+ Assert.assertEquals(PassiveState.PASSIVE, controller.getEffectivePassiveState(targetSch));
// make SCH active
targetSch.setPassiveState(PassiveState.ACTIVE);
- Assert.assertEquals(PassiveState.IMPLIED, controller.getEffectivePassiveState(cluster, service, targetSch));
+ Assert.assertEquals(PassiveState.IMPLIED, controller.getEffectivePassiveState(targetSch));
// update the service
service.setPassiveState(PassiveState.ACTIVE);
- Assert.assertEquals(PassiveState.ACTIVE, controller.getEffectivePassiveState(cluster, service, targetSch));
+ Assert.assertEquals(PassiveState.ACTIVE, controller.getEffectivePassiveState(targetSch));
host = hosts.get(host2);
// update host
host.setPassiveState(cluster.getClusterId(), PassiveState.PASSIVE);
- Assert.assertEquals(PassiveState.IMPLIED, controller.getEffectivePassiveState(cluster, service, targetSch));
+ Assert.assertEquals(PassiveState.IMPLIED, controller.getEffectivePassiveState(targetSch));
targetSch.setPassiveState(PassiveState.PASSIVE);
- Assert.assertEquals(PassiveState.PASSIVE, controller.getEffectivePassiveState(cluster, service, targetSch));
+ Assert.assertEquals(PassiveState.PASSIVE, controller.getEffectivePassiveState(targetSch));
// check the host components active state vs desired state
for (ServiceComponent sc : service.getServiceComponents().values()) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/0a79a472/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ComponentResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ComponentResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ComponentResourceProviderTest.java
index 81c1daf..be5d4cb 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ComponentResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ComponentResourceProviderTest.java
@@ -240,7 +240,6 @@ public class ComponentResourceProviderTest {
expect(managementController.getClusters()).andReturn(clusters).anyTimes();
expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
expect(managementController.getEffectivePassiveState(
- capture(new Capture<Cluster>()), capture(new Capture<Service>()),
capture(new Capture<ServiceComponentHost>()))).andReturn(PassiveState.ACTIVE).anyTimes();
expect(clusters.getCluster("Cluster100")).andReturn(cluster).anyTimes();