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 2015/04/28 21:56:09 UTC
ambari git commit: AMBARI-10804. Add upgrade_state to the response
for a host_component (ncole)
Repository: ambari
Updated Branches:
refs/heads/trunk 821b34308 -> a8536dda6
AMBARI-10804. Add upgrade_state to the response for a host_component (ncole)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/a8536dda
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/a8536dda
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/a8536dda
Branch: refs/heads/trunk
Commit: a8536dda6d1352f3fbd01fb23786ccd5b5628ae6
Parents: 821b343
Author: Nate Cole <nc...@hortonworks.com>
Authored: Tue Apr 28 14:05:32 2015 -0400
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Tue Apr 28 15:24:47 2015 -0400
----------------------------------------------------------------------
.../ServiceComponentHostResponse.java | 22 ++++++-
.../internal/HostComponentResourceProvider.java | 46 +++++++------
.../svccomphost/ServiceComponentHostImpl.java | 1 +
.../src/main/resources/properties.json | 1 +
.../HostComponentResourceProviderTest.java | 68 +++++++++++---------
5 files changed, 85 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/a8536dda/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java
index 434274f..c25c970 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java
@@ -18,10 +18,11 @@
package org.apache.ambari.server.controller;
+import java.util.Map;
+
import org.apache.ambari.server.state.HostComponentAdminState;
import org.apache.ambari.server.state.HostConfig;
-
-import java.util.Map;
+import org.apache.ambari.server.state.UpgradeState;
public class ServiceComponentHostResponse {
@@ -38,6 +39,7 @@ public class ServiceComponentHostResponse {
private boolean staleConfig = false;
private String adminState = null;
private String maintenanceState = null;
+ private UpgradeState upgradeState = UpgradeState.NONE;
public ServiceComponentHostResponse(String clusterName, String serviceName,
@@ -259,7 +261,7 @@ public class ServiceComponentHostResponse {
public String getMaintenanceState() {
return maintenanceState;
}
-
+
/**
* @param state the maintenance state
*/
@@ -267,4 +269,18 @@ public class ServiceComponentHostResponse {
maintenanceState = state;
}
+ /**
+ * @param state the upgrade state
+ */
+ public void setUpgradeState(UpgradeState state) {
+ upgradeState = state;
+ }
+
+ /**
+ * @return the upgrade state
+ */
+ public UpgradeState getUpgradeState() {
+ return upgradeState;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/a8536dda/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java
index 44ebe31..30627eb 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java
@@ -17,12 +17,18 @@
*/
package org.apache.ambari.server.controller.internal;
-import com.google.inject.Inject;
-import com.google.inject.Injector;
-import com.google.inject.assistedinject.Assisted;
-import com.google.inject.assistedinject.AssistedInject;
-import org.apache.ambari.server.orm.dao.HostVersionDAO;
-import org.apache.ambari.server.orm.entities.HostVersionEntity;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.EnumMap;
+import java.util.EnumSet;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.configuration.ComponentSSLConfiguration;
import org.apache.ambari.server.controller.AmbariManagementController;
@@ -44,6 +50,8 @@ import org.apache.ambari.server.controller.spi.ResourceAlreadyExistsException;
import org.apache.ambari.server.controller.spi.SystemException;
import org.apache.ambari.server.controller.spi.UnsupportedPropertyException;
import org.apache.ambari.server.controller.utilities.PropertyHelper;
+import org.apache.ambari.server.orm.dao.HostVersionDAO;
+import org.apache.ambari.server.orm.entities.HostVersionEntity;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.MaintenanceState;
@@ -56,17 +64,10 @@ import org.apache.ambari.server.state.svccomphost.ServiceComponentHostDisableEve
import org.apache.ambari.server.state.svccomphost.ServiceComponentHostRestoreEvent;
import org.apache.commons.lang.StringUtils;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.EnumMap;
-import java.util.EnumSet;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
+import com.google.inject.Inject;
+import com.google.inject.Injector;
+import com.google.inject.assistedinject.Assisted;
+import com.google.inject.assistedinject.AssistedInject;
/**
* Resource provider for host component resources.
@@ -102,6 +103,7 @@ public class HostComponentResourceProvider extends AbstractControllerResourcePro
= "HostRoles/maintenance_state";
protected static final String HOST_COMPONENT_HDP_VERSION
= PropertyHelper.getPropertyId("HostRoles", "hdp_version");
+ protected static final String HOST_COMPONENT_UPGRADE_STATE = "HostRoles/upgrade_state";
//Component name mappings
private final Map<String, PropertyProvider> HOST_COMPONENT_PROPERTIES_PROVIDER = new HashMap<String, PropertyProvider>();
@@ -247,6 +249,8 @@ public class HostComponentResourceProvider extends AbstractControllerResourcePro
response.getActualConfigs(), requestedIds);
setResourceProperty(resource, HOST_COMPONENT_STALE_CONFIGS_PROPERTY_ID,
response.isStaleConfig(), requestedIds);
+ setResourceProperty(resource, HOST_COMPONENT_UPGRADE_STATE,
+ response.getUpgradeState(), requestedIds);
HostVersionEntity versionEntity = hostVersionDAO.
findByHostAndStateCurrent(response.getClusterName(), response.getHostname());
@@ -473,8 +477,8 @@ public class HostComponentResourceProvider extends AbstractControllerResourcePro
logRequestInfo("Received a updateHostComponent request", request);
- if((clusterName == null || clusterName.isEmpty())
- && (request.getClusterName() != null
+ if((clusterName == null || clusterName.isEmpty())
+ && (request.getClusterName() != null
&& !request.getClusterName().isEmpty())) {
clusterNames.add(request.getClusterName());
}
@@ -633,12 +637,12 @@ public class HostComponentResourceProvider extends AbstractControllerResourcePro
serviceComponentHostRequest.setStaleConfig(
properties.get(HOST_COMPONENT_STALE_CONFIGS_PROPERTY_ID).toString().toLowerCase());
}
-
+
if (properties.get(HOST_COMPONENT_DESIRED_ADMIN_STATE_PROPERTY_ID) != null) {
serviceComponentHostRequest.setAdminState(
properties.get(HOST_COMPONENT_DESIRED_ADMIN_STATE_PROPERTY_ID).toString());
}
-
+
Object o = properties.get(HOST_COMPONENT_MAINTENANCE_STATE_PROPERTY_ID);
if (null != o) {
serviceComponentHostRequest.setMaintenanceState (o.toString());
http://git-wip-us.apache.org/repos/asf/ambari/blob/a8536dda/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
index 4c9c499..dd06eb5 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java
@@ -1138,6 +1138,7 @@ public class ServiceComponentHostImpl implements ServiceComponentHost {
getDesiredStackVersion().getStackId(), getComponentAdminState());
r.setActualConfigs(actualConfigs);
+ r.setUpgradeState(getStateEntity().getUpgradeState());
try {
r.setStaleConfig(helper.isStaleConfigs(this));
http://git-wip-us.apache.org/repos/asf/ambari/blob/a8536dda/ambari-server/src/main/resources/properties.json
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/properties.json b/ambari-server/src/main/resources/properties.json
index ee798dd..38fbb65 100644
--- a/ambari-server/src/main/resources/properties.json
+++ b/ambari-server/src/main/resources/properties.json
@@ -81,6 +81,7 @@
"HostRoles/maintenance_state",
"HostRoles/hdp_version",
"HostRoles/service_name",
+ "HostRoles/upgrade_state",
"_"
],
"ConfigGroup": [
http://git-wip-us.apache.org/repos/asf/ambari/blob/a8536dda/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
index 03ed000..f6898e9 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostComponentResourceProviderTest.java
@@ -18,7 +18,27 @@
package org.apache.ambari.server.controller.internal;
-import com.google.inject.Injector;
+import static org.easymock.EasyMock.anyObject;
+import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.createNiceMock;
+import static org.easymock.EasyMock.eq;
+import static org.easymock.EasyMock.expect;
+import static org.easymock.EasyMock.replay;
+import static org.easymock.EasyMock.verify;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertTrue;
+
+import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
import org.apache.ambari.server.controller.AmbariManagementController;
import org.apache.ambari.server.controller.MaintenanceStateHelper;
import org.apache.ambari.server.controller.RequestStatusResponse;
@@ -40,32 +60,12 @@ import org.apache.ambari.server.state.ServiceComponent;
import org.apache.ambari.server.state.ServiceComponentHost;
import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.State;
+import org.apache.ambari.server.state.UpgradeState;
import org.easymock.EasyMock;
import org.junit.Assert;
import org.junit.Test;
-import java.lang.reflect.Field;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.LinkedHashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static org.easymock.EasyMock.anyObject;
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.createNiceMock;
-import static org.easymock.EasyMock.eq;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertTrue;
+import com.google.inject.Injector;
/**
* HostComponentResourceProvider tests.
@@ -94,7 +94,7 @@ public class HostComponentResourceProviderTest {
anyObject(Map.class),
eq(managementController))).
andReturn(hostComponentResourceProvider).anyTimes();
-
+
// replay
replay(managementController, response, resourceProviderFactory);
@@ -135,7 +135,7 @@ public class HostComponentResourceProviderTest {
AmbariManagementController managementController = createMock(AmbariManagementController.class);
ResourceProviderFactory resourceProviderFactory = createNiceMock(ResourceProviderFactory.class);
ResourceProvider hostComponentResourceProvider = createNiceMock(HostComponentResourceProvider.class);
-
+
AbstractControllerResourceProvider.init(resourceProviderFactory);
Set<ServiceComponentHostResponse> allResponse = new HashSet<ServiceComponentHostResponse>();
@@ -147,6 +147,7 @@ public class HostComponentResourceProviderTest {
allResponse.add(new ServiceComponentHostResponse(
"Cluster100", "Service100", "Component101", "Host100", State.INSTALLED.toString(), stackId.getStackId(), State.STARTED.toString(),
stackId2.getStackId(), null));
+
allResponse.add(new ServiceComponentHostResponse(
"Cluster100", "Service100", "Component102", "Host100", State.INSTALLED.toString(), stackId.getStackId(), State.STARTED.toString(),
stackId2.getStackId(), null));
@@ -161,13 +162,16 @@ public class HostComponentResourceProviderTest {
HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID, State.STARTED.toString());
expectedNameValues.put(
HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID, stackId2.getStackId());
+ expectedNameValues.put(
+ HostComponentResourceProvider.HOST_COMPONENT_UPGRADE_STATE, UpgradeState.NONE.name());
+
// set expectations
expect(resourceProviderFactory.getHostComponentResourceProvider(anyObject(Set.class),
anyObject(Map.class),
eq(managementController))).
andReturn(hostComponentResourceProvider).anyTimes();
-
+
Set<String> propertyIds = new HashSet<String>();
propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID);
@@ -180,9 +184,9 @@ public class HostComponentResourceProviderTest {
Predicate predicate = new PredicateBuilder().property(
HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID).equals("Cluster100").toPredicate();
Request request = PropertyHelper.getReadRequest(propertyIds);
-
+
Set<Resource> hostsComponentResources = new HashSet<Resource>();
-
+
Resource hostsComponentResource1 = new ResourceImpl(Resource.Type.HostComponent);
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID, "Cluster100");
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_HOST_NAME_PROPERTY_ID, "Host100");
@@ -192,6 +196,8 @@ public class HostComponentResourceProviderTest {
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID, State.STARTED.name());
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_STACK_ID_PROPERTY_ID, stackId.getStackId());
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID, stackId2.getStackId());
+ hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_UPGRADE_STATE, UpgradeState.NONE.name());
+
Resource hostsComponentResource2 = new ResourceImpl(Resource.Type.HostComponent);
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID, "Cluster100");
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_HOST_NAME_PROPERTY_ID, "Host100");
@@ -201,6 +207,8 @@ public class HostComponentResourceProviderTest {
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID, State.STARTED.name());
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_STACK_ID_PROPERTY_ID, stackId.getStackId());
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID, stackId2.getStackId());
+ hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_UPGRADE_STATE, UpgradeState.NONE.name());
+
Resource hostsComponentResource3 = new ResourceImpl(Resource.Type.HostComponent);
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID, "Cluster100");
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_HOST_NAME_PROPERTY_ID, "Host100");
@@ -210,10 +218,12 @@ public class HostComponentResourceProviderTest {
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID, State.STARTED.name());
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_STACK_ID_PROPERTY_ID, stackId.getStackId());
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID, stackId2.getStackId());
+ hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_UPGRADE_STATE, UpgradeState.NONE.name());
+
hostsComponentResources.add(hostsComponentResource1);
hostsComponentResources.add(hostsComponentResource2);
hostsComponentResources.add(hostsComponentResource3);
-
+
expect(hostComponentResourceProvider.getResources(eq(request), eq(predicate))).andReturn(hostsComponentResources).anyTimes();
// replay