You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jl...@apache.org on 2017/09/26 05:20:29 UTC
[38/50] [abbrv] ambari git commit: AMBARI-21996 Provide maintenance
mode off count for components (dsen)
AMBARI-21996 Provide maintenance mode off count for components (dsen)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/986a65db
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/986a65db
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/986a65db
Branch: refs/heads/branch-feature-AMBARI-14714
Commit: 986a65dbf4fbf36dac7073418ef368c2c207b123
Parents: 311c7bb
Author: Dmytro Sen <ds...@apache.org>
Authored: Mon Sep 25 16:32:46 2017 +0300
Committer: Dmytro Sen <ds...@apache.org>
Committed: Mon Sep 25 16:32:46 2017 +0300
----------------------------------------------------------------------
.../internal/ComponentResourceProvider.java | 4 ++++
.../server/state/ServiceComponentImpl.java | 25 ++++++++++++++++++++
.../internal/ComponentResourceProviderTest.java | 6 +++++
.../server/state/ServiceComponentTest.java | 21 +++++++++++++---
4 files changed, 53 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/986a65db/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 ebbf169..2e86b2d 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
@@ -85,6 +85,8 @@ public class ComponentResourceProvider extends AbstractControllerResourceProvide
protected static final String COMPONENT_TOTAL_COUNT_PROPERTY_ID = "ServiceComponentInfo/total_count";
protected static final String COMPONENT_STARTED_COUNT_PROPERTY_ID = "ServiceComponentInfo/started_count";
protected static final String COMPONENT_INSTALLED_COUNT_PROPERTY_ID = "ServiceComponentInfo/installed_count";
+ protected static final String COMPONENT_INSTALLED_AND_MAINTENANCE_OFF_COUNT_PROPERTY_ID
+ = "ServiceComponentInfo/installed_and_maintenance_off_count";
protected static final String COMPONENT_INIT_COUNT_PROPERTY_ID = "ServiceComponentInfo/init_count";
protected static final String COMPONENT_UNKNOWN_COUNT_PROPERTY_ID = "ServiceComponentInfo/unknown_count";
protected static final String COMPONENT_INSTALL_FAILED_COUNT_PROPERTY_ID = "ServiceComponentInfo/install_failed_count";
@@ -124,6 +126,7 @@ public class ComponentResourceProvider extends AbstractControllerResourceProvide
PROPERTY_IDS.add(COMPONENT_TOTAL_COUNT_PROPERTY_ID);
PROPERTY_IDS.add(COMPONENT_STARTED_COUNT_PROPERTY_ID);
PROPERTY_IDS.add(COMPONENT_INSTALLED_COUNT_PROPERTY_ID);
+ PROPERTY_IDS.add(COMPONENT_INSTALLED_AND_MAINTENANCE_OFF_COUNT_PROPERTY_ID);
PROPERTY_IDS.add(COMPONENT_INIT_COUNT_PROPERTY_ID);
PROPERTY_IDS.add(COMPONENT_UNKNOWN_COUNT_PROPERTY_ID);
@@ -220,6 +223,7 @@ public class ComponentResourceProvider extends AbstractControllerResourceProvide
setResourceProperty(resource, COMPONENT_TOTAL_COUNT_PROPERTY_ID, response.getServiceComponentStateCount().get("totalCount"), requestedIds);
setResourceProperty(resource, COMPONENT_STARTED_COUNT_PROPERTY_ID, response.getServiceComponentStateCount().get("startedCount"), requestedIds);
setResourceProperty(resource, COMPONENT_INSTALLED_COUNT_PROPERTY_ID, response.getServiceComponentStateCount().get("installedCount"), requestedIds);
+ setResourceProperty(resource, COMPONENT_INSTALLED_AND_MAINTENANCE_OFF_COUNT_PROPERTY_ID, response.getServiceComponentStateCount().get("installedAndMaintenanceOffCount"), requestedIds);
setResourceProperty(resource, COMPONENT_INSTALL_FAILED_COUNT_PROPERTY_ID, response.getServiceComponentStateCount().get("installFailedCount"), requestedIds);
setResourceProperty(resource, COMPONENT_INIT_COUNT_PROPERTY_ID, response.getServiceComponentStateCount().get("initCount"), requestedIds);
setResourceProperty(resource, COMPONENT_UNKNOWN_COUNT_PROPERTY_ID, response.getServiceComponentStateCount().get("unknownCount"), requestedIds);
http://git-wip-us.apache.org/repos/asf/ambari/blob/986a65db/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
index 5f85e38..22c97ed 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
@@ -31,6 +31,7 @@ import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.ObjectNotFoundException;
import org.apache.ambari.server.ServiceComponentHostNotFoundException;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
+import org.apache.ambari.server.controller.MaintenanceStateHelper;
import org.apache.ambari.server.controller.ServiceComponentResponse;
import org.apache.ambari.server.events.ServiceComponentRecoveryChangedEvent;
import org.apache.ambari.server.events.listeners.upgrade.StackVersionListener;
@@ -97,6 +98,9 @@ public class ServiceComponentImpl implements ServiceComponent {
@Inject
private HostComponentStateDAO hostComponentDAO;
+ @Inject
+ private MaintenanceStateHelper maintenanceStateHelper;
+
@AssistedInject
public ServiceComponentImpl(@Assisted Service service, @Assisted String componentName,
AmbariMetaInfo ambariMetaInfo,
@@ -724,10 +728,31 @@ public class ServiceComponentImpl implements ServiceComponent {
return count;
}
+ /**
+ * Count the ServiceComponentHosts that have given state and are effectively not in maintenanceMode
+ * @param state
+ * @return
+ */
+ private int getMaintenanceOffSCHCountByState(State state) {
+ int count = 0;
+ for (ServiceComponentHost sch : hostComponents.values()) {
+ try {
+ MaintenanceState effectiveMaintenanceState = maintenanceStateHelper.getEffectiveState(sch, sch.getHost());
+ if (sch.getState() == state && effectiveMaintenanceState == MaintenanceState.OFF) {
+ count++;
+ }
+ } catch (AmbariException e) {
+ e.printStackTrace();
+ }
+ }
+ return count;
+ }
+
private Map <String, Integer> getServiceComponentStateCount() {
Map <String, Integer> serviceComponentStateCountMap = new HashMap<>();
serviceComponentStateCountMap.put("startedCount", getSCHCountByState(State.STARTED));
serviceComponentStateCountMap.put("installedCount", getSCHCountByState(State.INSTALLED));
+ serviceComponentStateCountMap.put("installedAndMaintenanceOffCount", getMaintenanceOffSCHCountByState(State.INSTALLED));
serviceComponentStateCountMap.put("installFailedCount", getSCHCountByState(State.INSTALL_FAILED));
serviceComponentStateCountMap.put("initCount", getSCHCountByState(State.INIT));
serviceComponentStateCountMap.put("unknownCount", getSCHCountByState(State.UNKNOWN));
http://git-wip-us.apache.org/repos/asf/ambari/blob/986a65db/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 80cd1da..110e359 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
@@ -217,6 +217,7 @@ public class ComponentResourceProviderTest {
Map <String, Integer> serviceComponentStateCountMap = new HashMap<>();
serviceComponentStateCountMap.put("startedCount", 1);
serviceComponentStateCountMap.put("installedCount", 0);
+ serviceComponentStateCountMap.put("installedAndMaintenanceOffCount", 0);
serviceComponentStateCountMap.put("installFailedCount", 0);
serviceComponentStateCountMap.put("initCount", 0);
serviceComponentStateCountMap.put("unknownCount", 1);
@@ -280,6 +281,7 @@ public class ComponentResourceProviderTest {
propertyIds.add(ComponentResourceProvider.COMPONENT_TOTAL_COUNT_PROPERTY_ID);
propertyIds.add(ComponentResourceProvider.COMPONENT_STARTED_COUNT_PROPERTY_ID);
propertyIds.add(ComponentResourceProvider.COMPONENT_INSTALLED_COUNT_PROPERTY_ID);
+ propertyIds.add(ComponentResourceProvider.COMPONENT_INSTALLED_AND_MAINTENANCE_OFF_COUNT_PROPERTY_ID);
propertyIds.add(ComponentResourceProvider.COMPONENT_INSTALL_FAILED_COUNT_PROPERTY_ID);
propertyIds.add(ComponentResourceProvider.COMPONENT_INIT_COUNT_PROPERTY_ID);
propertyIds.add(ComponentResourceProvider.COMPONENT_UNKNOWN_COUNT_PROPERTY_ID);
@@ -311,6 +313,8 @@ public class ComponentResourceProviderTest {
Assert.assertEquals(0, resource.getPropertyValue(
ComponentResourceProvider.COMPONENT_INSTALLED_COUNT_PROPERTY_ID));
Assert.assertEquals(0, resource.getPropertyValue(
+ ComponentResourceProvider.COMPONENT_INSTALLED_AND_MAINTENANCE_OFF_COUNT_PROPERTY_ID));
+ Assert.assertEquals(0, resource.getPropertyValue(
ComponentResourceProvider.COMPONENT_INSTALL_FAILED_COUNT_PROPERTY_ID));
Assert.assertEquals(0, resource.getPropertyValue(
ComponentResourceProvider.COMPONENT_INIT_COUNT_PROPERTY_ID));
@@ -379,6 +383,7 @@ public class ComponentResourceProviderTest {
Map <String, Integer> serviceComponentStateCountMap = new HashMap<>();
serviceComponentStateCountMap.put("startedCount", 0);
serviceComponentStateCountMap.put("installedCount", 1);
+ serviceComponentStateCountMap.put("installedAndMaintenanceOffCount", 0);
serviceComponentStateCountMap.put("installFailedCount", 0);
serviceComponentStateCountMap.put("initCount", 0);
serviceComponentStateCountMap.put("unknownCount", 0);
@@ -691,6 +696,7 @@ public class ComponentResourceProviderTest {
Map <String, Integer> serviceComponentStateCountMap = new HashMap<>();
serviceComponentStateCountMap.put("startedCount", 0);
serviceComponentStateCountMap.put("installedCount", 1);
+ serviceComponentStateCountMap.put("installedAndMaintenanceOffCount", 0);
serviceComponentStateCountMap.put("installFailedCount", 0);
serviceComponentStateCountMap.put("initCount", 0);
serviceComponentStateCountMap.put("unknownCount", 0);
http://git-wip-us.apache.org/repos/asf/ambari/blob/986a65db/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
index 6320f35..c753f49 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceComponentTest.java
@@ -273,15 +273,28 @@ public class ServiceComponentTest {
service.addServiceComponent(component);
addHostToCluster("h1", service.getCluster().getClusterName());
+ addHostToCluster("h2", service.getCluster().getClusterName());
+ addHostToCluster("h3", service.getCluster().getClusterName());
ServiceComponentHost sch =
serviceComponentHostFactory.createNew(component, "h1");
+ ServiceComponentHost sch2 =
+ serviceComponentHostFactory.createNew(component, "h2");
+ ServiceComponentHost sch3 =
+ serviceComponentHostFactory.createNew(component, "h3");
sch.setState(State.INSTALLED);
+ sch2.setState(State.INSTALLED);
+ sch3.setState(State.INSTALLED);
Map<String, ServiceComponentHost> compHosts =
new HashMap<>();
compHosts.put("h1", sch);
+ compHosts.put("h2", sch2);
+ compHosts.put("h3", sch3);
component.addServiceComponentHosts(compHosts);
- Assert.assertEquals(1, component.getServiceComponentHosts().size());
+ Assert.assertEquals(3, component.getServiceComponentHosts().size());
+
+ component.getServiceComponentHost("h2").setMaintenanceState(MaintenanceState.ON);
+ sch3.setMaintenanceState(MaintenanceState.ON);
ServiceComponent sc = service.getServiceComponent(componentName);
Assert.assertNotNull(sc);
@@ -298,9 +311,11 @@ public class ServiceComponentTest {
int totalCount = r.getServiceComponentStateCount().get("totalCount");
int startedCount = r.getServiceComponentStateCount().get("startedCount");
int installedCount = r.getServiceComponentStateCount().get("installedCount");
- Assert.assertEquals(1, totalCount);
+ int installedAndMaintenanceOffCount = r.getServiceComponentStateCount().get("installedAndMaintenanceOffCount");
+ Assert.assertEquals(3, totalCount);
Assert.assertEquals(0, startedCount);
- Assert.assertEquals(1, installedCount);
+ Assert.assertEquals(3, installedCount);
+ Assert.assertEquals(1, installedAndMaintenanceOffCount);
// TODO check configs
// r.getConfigVersions()