You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by jo...@apache.org on 2017/05/03 15:13:51 UTC
[4/9] ambari git commit: AMBARI-20894 - Setting Desired Stack Ids to
Correct Values During Service and Patch Upgrades (jonathanhurley)
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java
index 9d499c0..86a11e3 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/BackgroundCustomCommandExecutionTest.java
@@ -41,12 +41,16 @@ import org.apache.ambari.server.controller.internal.RequestResourceFilter;
import org.apache.ambari.server.controller.internal.ServiceResourceProviderTest;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.orm.OrmTestHelper;
+import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationException;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.Host;
import org.apache.ambari.server.state.HostState;
import org.apache.ambari.server.state.SecurityType;
+import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.State;
import org.apache.ambari.server.topology.TopologyManager;
import org.apache.ambari.server.utils.StageUtils;
@@ -77,6 +81,11 @@ public class BackgroundCustomCommandExecutionTest {
@Captor ArgumentCaptor<Request> requestCapture;
@Mock ActionManager am;
+ private final String STACK_VERSION = "2.0.6";
+ private final String REPO_VERSION = "2.0.6-1234";
+ private final StackId STACK_ID = new StackId("HDP", STACK_VERSION);
+ private RepositoryVersionEntity m_repositoryVersion;
+
@Before
public void setup() throws Exception {
Configuration configuration;
@@ -100,6 +109,7 @@ public class BackgroundCustomCommandExecutionTest {
clusters = injector.getInstance(Clusters.class);
configuration = injector.getInstance(Configuration.class);
topologyManager = injector.getInstance(TopologyManager.class);
+ OrmTestHelper ormTestHelper = injector.getInstance(OrmTestHelper.class);
Assert.assertEquals("src/main/resources/custom_action_definitions", configuration.getCustomActionDefinitionPath());
@@ -111,6 +121,9 @@ public class BackgroundCustomCommandExecutionTest {
// Set the authenticated user
// TODO: remove this or replace the authenticated user to test authorization rules
SecurityContextHolder.getContext().setAuthentication(TestAuthenticationFactory.createAdministrator());
+
+ m_repositoryVersion = ormTestHelper.getOrCreateRepositoryVersion(STACK_ID, REPO_VERSION);
+ Assert.assertNotNull(m_repositoryVersion);
}
@After
public void teardown() throws AmbariException, SQLException {
@@ -192,7 +205,9 @@ public class BackgroundCustomCommandExecutionTest {
}
private void createCluster(String clusterName) throws AmbariException, AuthorizationException {
- ClusterRequest r = new ClusterRequest(null, clusterName, State.INSTALLED.name(), SecurityType.NONE, "HDP-2.0.6", null);
+ ClusterRequest r = new ClusterRequest(null, clusterName, State.INSTALLED.name(),
+ SecurityType.NONE, STACK_ID.getStackId(), null);
+
controller.createCluster(r);
}
@@ -202,11 +217,14 @@ public class BackgroundCustomCommandExecutionTest {
if (desiredState != null) {
dStateStr = desiredState.toString();
}
- ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, dStateStr);
+ ServiceRequest r1 = new ServiceRequest(clusterName, serviceName,
+ m_repositoryVersion.getStackId().getStackId(), m_repositoryVersion.getVersion(), dStateStr);
+
Set<ServiceRequest> requests = new HashSet<>();
requests.add(r1);
- ServiceResourceProviderTest.createServices(controller, requests);
+ ServiceResourceProviderTest.createServices(controller,
+ injector.getInstance(RepositoryVersionDAO.class), requests);
}
private void createServiceComponent(String clusterName,
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
index 5275580..8cfe258 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/KerberosHelperTest.java
@@ -965,14 +965,11 @@ public class KerberosHelperTest extends EasyMockSupport {
KerberosHelper kerberosHelper = injector.getInstance(KerberosHelper.class);
boolean identitiesManaged = (manageIdentities == null) || !"false".equalsIgnoreCase(manageIdentities);
- final StackId stackVersion = createMock(StackId.class);
-
final ServiceComponentHost schKerberosClient = createMock(ServiceComponentHost.class);
expect(schKerberosClient.getServiceName()).andReturn(Service.Type.KERBEROS.name()).anyTimes();
expect(schKerberosClient.getServiceComponentName()).andReturn(Role.KERBEROS_CLIENT.name()).anyTimes();
expect(schKerberosClient.getSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
expect(schKerberosClient.getDesiredSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
- expect(schKerberosClient.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(schKerberosClient.getHostName()).andReturn("host1").anyTimes();
expect(schKerberosClient.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -981,7 +978,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch1.getServiceComponentName()).andReturn("COMPONENT1").anyTimes();
expect(sch1.getSecurityState()).andReturn(SecurityState.SECURED_KERBEROS).anyTimes();
expect(sch1.getDesiredSecurityState()).andReturn(SecurityState.SECURED_KERBEROS).anyTimes();
- expect(sch1.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch1.getHostName()).andReturn("host1").anyTimes();
expect(sch1.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -995,7 +991,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch2.getServiceComponentName()).andReturn("COMPONENT2").anyTimes();
expect(sch2.getSecurityState()).andReturn(SecurityState.SECURED_KERBEROS).anyTimes();
expect(sch2.getDesiredSecurityState()).andReturn(SecurityState.SECURED_KERBEROS).anyTimes();
- expect(sch2.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch2.getHostName()).andReturn("host1").anyTimes();
expect(sch2.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -1156,14 +1151,11 @@ public class KerberosHelperTest extends EasyMockSupport {
KerberosHelper kerberosHelper = injector.getInstance(KerberosHelper.class);
boolean identitiesManaged = (manageIdentities == null) || !"false".equalsIgnoreCase(manageIdentities);
- final StackId stackVersion = createMock(StackId.class);
-
final ServiceComponentHost schKerberosClient = createMock(ServiceComponentHost.class);
expect(schKerberosClient.getServiceName()).andReturn(Service.Type.KERBEROS.name()).anyTimes();
expect(schKerberosClient.getServiceComponentName()).andReturn(Role.KERBEROS_CLIENT.name()).anyTimes();
expect(schKerberosClient.getSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
expect(schKerberosClient.getDesiredSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
- expect(schKerberosClient.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(schKerberosClient.getHostName()).andReturn("host1").anyTimes();
expect(schKerberosClient.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -1172,7 +1164,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch1.getServiceComponentName()).andReturn("COMPONENT1").anyTimes();
expect(sch1.getSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
expect(sch1.getDesiredSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
- expect(sch1.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch1.getHostName()).andReturn("host1").anyTimes();
expect(sch1.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -1186,7 +1177,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch2.getServiceComponentName()).andReturn("COMPONENT2").anyTimes();
expect(sch2.getSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
expect(sch2.getDesiredSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
- expect(sch2.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch2.getHostName()).andReturn("host1").anyTimes();
expect(sch2.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -1344,14 +1334,11 @@ public class KerberosHelperTest extends EasyMockSupport {
KerberosHelper kerberosHelper = injector.getInstance(KerberosHelper.class);
- final StackId stackVersion = createMock(StackId.class);
-
final ServiceComponentHost schKerberosClient = createMock(ServiceComponentHost.class);
expect(schKerberosClient.getServiceName()).andReturn(Service.Type.KERBEROS.name()).anyTimes();
expect(schKerberosClient.getServiceComponentName()).andReturn(Role.KERBEROS_CLIENT.name()).anyTimes();
expect(schKerberosClient.getSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
expect(schKerberosClient.getDesiredSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
- expect(schKerberosClient.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(schKerberosClient.getHostName()).andReturn("host1").anyTimes();
expect(schKerberosClient.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -1360,7 +1347,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch1.getServiceComponentName()).andReturn("COMPONENT1").once();
expect(sch1.getSecurityState()).andReturn(SecurityState.SECURED_KERBEROS).anyTimes();
expect(sch1.getDesiredSecurityState()).andReturn(SecurityState.SECURED_KERBEROS).anyTimes();
- expect(sch1.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch1.getHostName()).andReturn("host1").anyTimes();
expect(sch1.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -1374,7 +1360,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch2.getServiceComponentName()).andReturn("COMPONENT2").anyTimes();
expect(sch2.getSecurityState()).andReturn(SecurityState.SECURED_KERBEROS).anyTimes();
expect(sch2.getDesiredSecurityState()).andReturn(SecurityState.SECURED_KERBEROS).anyTimes();
- expect(sch2.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch2.getHostName()).andReturn("host1").anyTimes();
expect(sch2.getState()).andReturn(State.INSTALLED).anyTimes();
@@ -1536,8 +1521,6 @@ public class KerberosHelperTest extends EasyMockSupport {
KerberosHelper kerberosHelper = injector.getInstance(KerberosHelper.class);
- final StackId stackVersion = createMock(StackId.class);
-
final ServiceComponentHost schKerberosClient = createMock(ServiceComponentHost.class);
expect(schKerberosClient.getServiceName()).andReturn(Service.Type.KERBEROS.name()).anyTimes();
expect(schKerberosClient.getServiceComponentName()).andReturn(Role.KERBEROS_CLIENT.name()).anyTimes();
@@ -1549,7 +1532,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch1.getServiceComponentName()).andReturn("COMPONENT1").anyTimes();
expect(sch1.getSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
expect(sch1.getDesiredSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
- expect(sch1.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch1.getHostName()).andReturn("host1").anyTimes();
final ServiceComponentHost sch2 = createMock(ServiceComponentHost.class);
@@ -1557,7 +1539,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch2.getServiceComponentName()).andReturn("COMPONENT2").anyTimes();
expect(sch2.getSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
expect(sch2.getDesiredSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
- expect(sch2.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch2.getHostName()).andReturn("host1").anyTimes();
final Host host = createMockHost("host1");
@@ -1577,7 +1558,6 @@ public class KerberosHelperTest extends EasyMockSupport {
expect(sch1a.getServiceComponentName()).andReturn("COMPONENT1").anyTimes();
expect(sch1a.getSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
expect(sch1a.getDesiredSecurityState()).andReturn(SecurityState.UNSECURED).anyTimes();
- expect(sch1a.getStackVersion()).andReturn(stackVersion).anyTimes();
expect(sch1a.getHostName()).andReturn("host2").anyTimes();
hostInvalid = createMockHost("host1");
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java
index 34e2e06..575f5e4 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/RefreshYarnCapacitySchedulerReleaseConfigTest.java
@@ -31,6 +31,9 @@ import org.apache.ambari.server.controller.internal.ComponentResourceProviderTes
import org.apache.ambari.server.controller.internal.ServiceResourceProviderTest;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.orm.OrmTestHelper;
+import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationException;
import org.apache.ambari.server.state.Cluster;
@@ -42,6 +45,7 @@ import org.apache.ambari.server.state.SecurityType;
import org.apache.ambari.server.state.Service;
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.junit.After;
import org.junit.Before;
@@ -60,16 +64,18 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest {
private AmbariManagementController controller;
private Clusters clusters;
private ConfigHelper configHelper;
+ private OrmTestHelper ormTestHelper;
@Before
public void setup() throws Exception {
injector = Guice.createInjector(new InMemoryDefaultTestModule());
-
+
injector.getInstance(GuiceJpaInitializer.class);
controller = injector.getInstance(AmbariManagementController.class);
clusters = injector.getInstance(Clusters.class);
configHelper = injector.getInstance(ConfigHelper.class);
+ ormTestHelper = injector.getInstance(OrmTestHelper.class);
// Set the authenticated user
// TODO: remove this or replace the authenticated user to test authorization rules
@@ -85,27 +91,27 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest {
}
-
+
@Test
public void testRMRequiresRestart() throws AmbariException, AuthorizationException {
createClusterFixture("HDP-2.0.7");
-
-
+
+
Cluster cluster = clusters.getCluster("c1");
-
+
// Start
ClusterRequest cr = new ClusterRequest(cluster.getClusterId(), "c1", cluster.getDesiredStackVersion().getStackVersion(), null);
cr.setDesiredConfig(Collections.singletonList(new ConfigurationRequest("c1","capacity-scheduler","version2",new HashMap<String, String>(), null)));
-
+
controller.updateClusters(Collections.singleton(cr) , null);
-
-
+
+
ServiceComponentHostRequest r = new ServiceComponentHostRequest("c1", null, null, null, null);
r.setStaleConfig("true");
Set<ServiceComponentHostResponse> resps = controller.getHostComponents(Collections.singleton(r));
Assert.assertEquals(1, resps.size());
-
+
Assert.assertEquals(true, configHelper.isStaleConfigs(clusters.getCluster("c1").getService("YARN").getServiceComponent("RESOURCEMANAGER").getServiceComponentHost("c6401"), null));
}
@@ -113,29 +119,29 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest {
public void testAllRequiresRestart() throws AmbariException, AuthorizationException {
createClusterFixture("HDP-2.0.7");
Cluster cluster = clusters.getCluster("c1");
-
+
// Start
ClusterRequest cr = new ClusterRequest(cluster.getClusterId(), "c1", cluster.getDesiredStackVersion().getStackVersion(), null);
-
+
cr.setDesiredConfig(Collections.singletonList(new ConfigurationRequest("c1","core-site","version2",new HashMap<String, String>(),null)));
-
+
controller.updateClusters(Collections.singleton(cr) , null);
-
-
+
+
ServiceComponentHostRequest r = new ServiceComponentHostRequest("c1", null, null, null, null);
r.setStaleConfig("true");
Set<ServiceComponentHostResponse> resps = controller.getHostComponents(Collections.singleton(r));
Assert.assertEquals(4, resps.size());
-
+
}
@Test
public void testConfigInComponent() throws Exception {
StackServiceRequest requestWithParams = new StackServiceRequest("HDP", "2.0.6", "YARN");
Set<StackServiceResponse> responsesWithParams = controller.getStackServices(Collections.singleton(requestWithParams));
-
+
Assert.assertEquals(1, responsesWithParams.size());
-
+
for (StackServiceResponse responseWithParams: responsesWithParams) {
Assert.assertEquals(responseWithParams.getServiceName(), "YARN");
Assert.assertTrue(responseWithParams.getConfigTypes().containsKey("capacity-scheduler"));
@@ -146,9 +152,9 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest {
public void testConfigInComponentOverwrited() throws Exception {
StackServiceRequest requestWithParams = new StackServiceRequest("HDP", "2.0.7", "YARN");
Set<StackServiceResponse> responsesWithParams = controller.getStackServices(Collections.singleton(requestWithParams));
-
+
Assert.assertEquals(1, responsesWithParams.size());
-
+
for (StackServiceResponse responseWithParams: responsesWithParams) {
Assert.assertEquals(responseWithParams.getServiceName(), "YARN");
Assert.assertTrue(responseWithParams.getConfigTypes().containsKey("capacity-scheduler"));
@@ -159,17 +165,17 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest {
createCluster("c1", stackName);
addHost("c6401","c1");
addHost("c6402","c1");
-
+
clusters.getCluster("c1");
createService("c1", "YARN", null);
-
+
createServiceComponent("c1","YARN","RESOURCEMANAGER", State.INIT);
createServiceComponent("c1","YARN","NODEMANAGER", State.INIT);
createServiceComponent("c1","YARN","YARN_CLIENT", State.INIT);
-
+
createServiceComponentHost("c1","YARN","RESOURCEMANAGER","c6401", null);
createServiceComponentHost("c1","YARN","NODEMANAGER","c6401", null);
-
+
createServiceComponentHost("c1","YARN","NODEMANAGER","c6402", null);
createServiceComponentHost("c1","YARN","YARN_CLIENT","c6402", null);
}
@@ -187,7 +193,7 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest {
Map<String, String> hostAttributes = new HashMap<>();
hostAttributes.put("os_family", osFamily);
hostAttributes.put("os_release_version", osVersion);
-
+
host.setHostAttributes(hostAttributes);
}
@@ -195,18 +201,26 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest {
ClusterRequest r = new ClusterRequest(null, clusterName, State.INSTALLED.name(), SecurityType.NONE, stackName, null);
controller.createCluster(r);
}
-
+
private void createService(String clusterName,
String serviceName, State desiredState) throws AmbariException, AuthorizationException {
String dStateStr = null;
+
if (desiredState != null) {
dStateStr = desiredState.toString();
}
- ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, dStateStr);
+
+ RepositoryVersionEntity repositoryVersion = ormTestHelper.getOrCreateRepositoryVersion(
+ new StackId("HDP-2.0.7"), "2.0.7-1234");
+
+ ServiceRequest r1 = new ServiceRequest(clusterName, serviceName,
+ repositoryVersion.getStackId().getStackId(), repositoryVersion.getVersion(), dStateStr);
+
Set<ServiceRequest> requests = new HashSet<>();
requests.add(r1);
- ServiceResourceProviderTest.createServices(controller, requests);
+ ServiceResourceProviderTest.createServices(controller,
+ injector.getInstance(RepositoryVersionDAO.class), requests);
}
private void createServiceComponent(String clusterName,
@@ -236,13 +250,13 @@ public class RefreshYarnCapacitySchedulerReleaseConfigTest {
new HashSet<>();
requests.add(r);
controller.createHostComponents(requests);
-
-
+
+
//set actual config
Service service = clusters.getCluster(clusterName).getService(serviceName);
ServiceComponent rm = service.getServiceComponent(componentName);
ServiceComponentHost rmc1 = rm.getServiceComponentHost(hostname);
-
+
rmc1.updateActualConfigs((new HashMap<String, Map<String,String>>() {{
put("capacity-scheduler", new HashMap<String,String>() {{ put("tag", "version1"); }});
put("hive-group", new HashMap<String,String>() {{ put("tag", "version1"); }});
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProviderTest.java
index 094e49d..35ce868 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractControllerResourceProviderTest.java
@@ -35,6 +35,7 @@ import org.apache.ambari.server.controller.MaintenanceStateHelper;
import org.apache.ambari.server.controller.ResourceProviderFactory;
import org.apache.ambari.server.controller.spi.Resource;
import org.apache.ambari.server.controller.spi.ResourceProvider;
+import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
import org.junit.Test;
import junit.framework.Assert;
@@ -61,12 +62,16 @@ public class AbstractControllerResourceProviderTest {
ResourceProviderFactory factory = createMock(ResourceProviderFactory.class);
MaintenanceStateHelper maintenanceStateHelper = createNiceMock(MaintenanceStateHelper.class);
- ResourceProvider serviceResourceProvider = new ServiceResourceProvider(propertyIds, keyPropertyIds, managementController, maintenanceStateHelper);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
+
+ ResourceProvider serviceResourceProvider = new ServiceResourceProvider(propertyIds,
+ keyPropertyIds, managementController, maintenanceStateHelper, repositoryVersionDAO);
+
expect(factory.getServiceResourceProvider(propertyIds, keyPropertyIds, managementController)).andReturn(serviceResourceProvider);
AbstractControllerResourceProvider.init(factory);
- replay(managementController, factory, maintenanceStateHelper);
+ replay(managementController, factory, maintenanceStateHelper, repositoryVersionDAO);
AbstractResourceProvider provider =
(AbstractResourceProvider) AbstractControllerResourceProvider.getResourceProvider(
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java
index c761323..8f0a6bb 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/AbstractResourceProviderTest.java
@@ -53,6 +53,7 @@ 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.PredicateBuilder;
+import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
import org.apache.ambari.server.state.SecurityType;
import org.easymock.EasyMock;
import org.easymock.IArgumentMatcher;
@@ -79,11 +80,11 @@ public class AbstractResourceProviderTest {
AmbariManagementController managementController = createMock(AmbariManagementController.class);
MaintenanceStateHelper maintenanceStateHelper = createNiceMock(MaintenanceStateHelper.class);
- replay(maintenanceStateHelper);
- AbstractResourceProvider provider = new ServiceResourceProvider(
- propertyIds,
- keyPropertyIds,
- managementController, maintenanceStateHelper);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
+ replay(maintenanceStateHelper, repositoryVersionDAO);
+
+ AbstractResourceProvider provider = new ServiceResourceProvider(propertyIds, keyPropertyIds,
+ managementController, maintenanceStateHelper, repositoryVersionDAO);
Set<String> unsupported = provider.checkPropertyIds(Collections.singleton("foo"));
Assert.assertTrue(unsupported.isEmpty());
@@ -118,12 +119,11 @@ public class AbstractResourceProviderTest {
AmbariManagementController managementController = createMock(AmbariManagementController.class);
MaintenanceStateHelper maintenanceStateHelper = createNiceMock(MaintenanceStateHelper.class);
- replay(maintenanceStateHelper);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
+ replay(maintenanceStateHelper, repositoryVersionDAO);
- AbstractResourceProvider provider = new ServiceResourceProvider(
- propertyIds,
- keyPropertyIds,
- managementController, maintenanceStateHelper);
+ AbstractResourceProvider provider = new ServiceResourceProvider(propertyIds, keyPropertyIds,
+ managementController, maintenanceStateHelper, repositoryVersionDAO);
Set<String> supportedPropertyIds = provider.getPropertyIds();
Assert.assertTrue(supportedPropertyIds.containsAll(propertyIds));
@@ -135,12 +135,11 @@ public class AbstractResourceProviderTest {
Map<Resource.Type, String> keyPropertyIds = new HashMap<>();
AmbariManagementController managementController = createMock(AmbariManagementController.class);
MaintenanceStateHelper maintenanceStateHelper = createNiceMock(MaintenanceStateHelper.class);
- replay(maintenanceStateHelper);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
+ replay(maintenanceStateHelper, repositoryVersionDAO);
- AbstractResourceProvider provider = new ServiceResourceProvider(
- propertyIds,
- keyPropertyIds,
- managementController, maintenanceStateHelper);
+ AbstractResourceProvider provider = new ServiceResourceProvider(propertyIds, keyPropertyIds,
+ managementController, maintenanceStateHelper, repositoryVersionDAO);
RequestStatus status = provider.getRequestStatus(null);
@@ -358,7 +357,7 @@ public class AbstractResourceProviderTest {
EasyMock.reportMatcher(new StackConfigurationRequestSetMatcher(stackName, stackVersion, serviceName, propertyName));
return null;
}
-
+
public static Set<StackConfigurationDependencyRequest> getStackConfigurationDependencyRequestSet(String stackName, String stackVersion,
String serviceName, String propertyName, String dependencyName)
{
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java
index e7c1588..7b3837e 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProviderTest.java
@@ -249,7 +249,9 @@ public class ClientConfigResourceProviderTest {
HashMap<String, ServiceOsSpecific> serviceOsSpecificHashMap = new HashMap<>();
serviceOsSpecificHashMap.put("key",serviceOsSpecific);
- ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse(clusterName, serviceName, componentName, displayName, hostName, publicHostname,desiredState, "", null, null, null);
+ ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse(clusterName, serviceName,
+ componentName, displayName, hostName, publicHostname, desiredState, "", null, null, null,
+ null);
Set<ServiceComponentHostResponse> responses = new LinkedHashSet<>();
responses.add(shr1);
@@ -497,7 +499,9 @@ public class ClientConfigResourceProviderTest {
HashMap<String, ServiceOsSpecific> serviceOsSpecificHashMap = new HashMap<>();
serviceOsSpecificHashMap.put("key",serviceOsSpecific);
- ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse(clusterName, serviceName, componentName, displayName, hostName, publicHostName, desiredState, "", null, null, null);
+ ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse(clusterName, serviceName,
+ componentName, displayName, hostName, publicHostName, desiredState, "", null, null, null,
+ null);
Set<ServiceComponentHostResponse> responses = new LinkedHashSet<>();
responses.add(shr1);
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
index 6245708..caf7210 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ClusterStackVersionResourceProviderTest.java
@@ -31,7 +31,6 @@ import static org.easymock.EasyMock.verify;
import java.io.File;
import java.io.FileInputStream;
-import java.lang.reflect.Field;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Arrays;
@@ -54,7 +53,6 @@ import org.apache.ambari.server.actionmanager.ExecutionCommandWrapper;
import org.apache.ambari.server.actionmanager.HostRoleCommand;
import org.apache.ambari.server.actionmanager.Stage;
import org.apache.ambari.server.actionmanager.StageFactory;
-import org.apache.ambari.server.agent.CommandReport;
import org.apache.ambari.server.agent.ExecutionCommand;
import org.apache.ambari.server.agent.ExecutionCommand.KeyNames;
import org.apache.ambari.server.api.services.AmbariMetaInfo;
@@ -80,14 +78,10 @@ import org.apache.ambari.server.orm.entities.ClusterEntity;
import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
import org.apache.ambari.server.orm.entities.HostVersionEntity;
import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
-import org.apache.ambari.server.orm.entities.ResourceEntity;
-import org.apache.ambari.server.orm.entities.ResourceTypeEntity;
import org.apache.ambari.server.orm.entities.StackEntity;
import org.apache.ambari.server.orm.entities.UpgradeEntity;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationException;
-import org.apache.ambari.server.security.authorization.ResourceType;
-import org.apache.ambari.server.serveraction.upgrades.FinalizeUpgradeAction;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.ConfigHelper;
@@ -1116,319 +1110,6 @@ public class ClusterStackVersionResourceProviderTest {
}
@Test
- public void testUpdateResourcesAsAdministrator() throws Exception {
- testUpdateResources(TestAuthenticationFactory.createAdministrator());
- }
-
- @Test
- public void testUpdateResourcesAsClusterAdministrator() throws Exception {
- testUpdateResources(TestAuthenticationFactory.createClusterAdministrator());
- }
-
- @Test(expected = AuthorizationException.class)
- public void testUpdateResourcesAsClusterOperator() throws Exception {
- testUpdateResources(TestAuthenticationFactory.createClusterOperator());
- }
-
- private void testUpdateResources(Authentication authentication) throws Exception {
- Resource.Type type = Resource.Type.ClusterStackVersion;
- String clusterName = "Cluster100";
-
- AmbariManagementController managementController = createMock(AmbariManagementController.class);
-
- StackId stackId = new StackId("HDP", "2.0.1");
- StackEntity stackEntity = stackDAO.find(stackId.getStackName(), stackId.getStackVersion());
- Assert.assertNotNull(stackEntity);
-
- ResourceTypeEntity resourceTypeEntity = resourceTypeDAO.findById(ResourceType.CLUSTER.getId());
- if (resourceTypeEntity == null) {
- resourceTypeEntity = new ResourceTypeEntity();
- resourceTypeEntity.setId(ResourceType.CLUSTER.getId());
- resourceTypeEntity.setName(ResourceType.CLUSTER.name());
- resourceTypeEntity = resourceTypeDAO.merge(resourceTypeEntity);
- }
- ResourceEntity resourceEntity = new ResourceEntity();
- resourceEntity.setResourceType(resourceTypeEntity);
-
- final Host host1 = createNiceMock("host1", Host.class);
- final Host host2 = createNiceMock("host2", Host.class);
-
- expect(host1.getHostName()).andReturn("host1").anyTimes();
- expect(host2.getHostName()).andReturn("host2").anyTimes();
- replay(host1, host2);
-
- ServiceComponentHost sch = createMock(ServiceComponentHost.class);
- List<ServiceComponentHost> schs = Collections.singletonList(sch);
-
- Cluster cluster = createNiceMock(Cluster.class);
- cluster.setClusterName(clusterName);
-
- ArrayList<Host> hosts = new ArrayList<Host>() {{
- add(host1);
- add(host2);
- }};
-
- Clusters clusters = createNiceMock(Clusters.class);
- expect(clusters.getCluster(anyObject(String.class))).andReturn(cluster);
-
- RepositoryVersionEntity repoVersion = new RepositoryVersionEntity();
- repoVersion.setOperatingSystems(OS_JSON);
- StackEntity newDesiredStack = stackDAO.find("HDP", "2.0.1");
- repoVersion.setStack(newDesiredStack);
-
- final ServiceOsSpecific.Package hivePackage = new ServiceOsSpecific.Package();
- hivePackage.setName("hive");
- final ServiceOsSpecific.Package mysqlPackage = new ServiceOsSpecific.Package();
- mysqlPackage.setName("mysql");
- mysqlPackage.setSkipUpgrade(Boolean.TRUE);
- List<ServiceOsSpecific.Package> packages = new ArrayList<ServiceOsSpecific.Package>() {{
- add(hivePackage);
- add(mysqlPackage);
- }};
-
- ActionManager actionManager = createNiceMock(ActionManager.class);
-
- RequestStatusResponse response = createNiceMock(RequestStatusResponse.class);
- ResourceProviderFactory resourceProviderFactory = createNiceMock(ResourceProviderFactory.class);
- ResourceProvider csvResourceProvider = createNiceMock(ClusterStackVersionResourceProvider.class);
-
- CommandReport report = createNiceMock(CommandReport.class);
- FinalizeUpgradeAction finalizeUpgradeAction = createNiceMock(FinalizeUpgradeAction.class);
-
- AbstractControllerResourceProvider.init(resourceProviderFactory);
-
- Map<String, Map<String, String>> hostConfigTags = new HashMap<>();
- expect(configHelper.getEffectiveDesiredTags(anyObject(ClusterImpl.class), anyObject(String.class))).andReturn(hostConfigTags);
-
- expect(managementController.getClusters()).andReturn(clusters).anyTimes();
- expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
- expect(managementController.getAuthName()).andReturn("admin").anyTimes();
- expect(managementController.getActionManager()).andReturn(actionManager).anyTimes();
- expect(managementController.getJdkResourceUrl()).andReturn("/JdkResourceUrl").anyTimes();
- expect(managementController.getPackagesForServiceHost(anyObject(ServiceInfo.class),
- EasyMock.<Map<String, String>>anyObject(), anyObject(String.class))).andReturn(packages).anyTimes();
-
- expect(resourceProviderFactory.getHostResourceProvider(EasyMock.<Set<String>>anyObject(), EasyMock.<Map<Resource.Type, String>>anyObject(),
- eq(managementController))).andReturn(csvResourceProvider).anyTimes();
-
- expect(cluster.getCurrentStackVersion()).andReturn(stackId);
- expect(cluster.getServiceComponentHosts(anyObject(String.class))).andReturn(schs).anyTimes();
-
- Capture<StackId> capturedStackId = EasyMock.newCapture();
- cluster.setDesiredStackVersion(capture(capturedStackId));
- expectLastCall().once();
- expect(cluster.getHosts()).andReturn(hosts).anyTimes();
-
-
- expect(sch.getServiceName()).andReturn("HIVE").anyTimes();
-
- expect(repositoryVersionDAOMock.findByDisplayName(anyObject(String.class))).andReturn(repoVersion);
-
- expect(actionManager.getRequestTasks(anyLong())).andReturn(Collections.<HostRoleCommand>emptyList()).anyTimes();
-
- expect(finalizeUpgradeAction.execute(null)).andReturn(report);
-
- expect(report.getStdOut()).andReturn("Dummy stdout");
- expect(report.getStdErr()).andReturn("Dummy stderr");
- expect(report.getStatus()).andReturn("COMPLETED");
-
- // replay
- replay(managementController, response, clusters, resourceProviderFactory, csvResourceProvider,
- cluster, repositoryVersionDAOMock, configHelper, sch, actionManager, finalizeUpgradeAction, report,
- stageFactory);
-
- ResourceProvider provider = AbstractControllerResourceProvider.getResourceProvider(
- type,
- PropertyHelper.getPropertyIds(type),
- PropertyHelper.getKeyPropertyIds(type),
- managementController);
-
- injector.injectMembers(provider);
-
- // Have to inject instance manually because injection via DI fails
- Field field = ClusterStackVersionResourceProvider.class.getDeclaredField("finalizeUpgradeAction");
- field.setAccessible(true);
- field.set(provider, finalizeUpgradeAction);
-
- // add the property map to a set for the request. add more maps for multiple creates
- Map<String, Object> properties = new LinkedHashMap<>();
-
- // add properties to the request map
- properties.put(ClusterStackVersionResourceProvider.CLUSTER_STACK_VERSION_CLUSTER_NAME_PROPERTY_ID, clusterName);
- properties.put(ClusterStackVersionResourceProvider.CLUSTER_STACK_VERSION_STATE_PROPERTY_ID, "CURRENT");
- properties.put(ClusterStackVersionResourceProvider.CLUSTER_STACK_VERSION_REPOSITORY_VERSION_PROPERTY_ID, "HDP-2.2.2.0-2561");
-
- // create the request
- Request request = PropertyHelper.getUpdateRequest(properties, null);
-
- SecurityContextHolder.getContext().setAuthentication(authentication);
-
- provider.updateResources(request, null);
-
- // verify
- verify(managementController, response);
- Assert.assertEquals(capturedStackId.getValue(),
- new StackId(newDesiredStack.getStackName(), newDesiredStack.getStackVersion()));
- }
-
- @Test
- public void testUpdateResourcesWithForceAsAdministrator() throws Exception {
- testUpdateResourcesWithForce(TestAuthenticationFactory.createAdministrator());
- }
-
- @Test
- public void testUpdateResourcesWithForceAsClusterAdministrator() throws Exception {
- testUpdateResourcesWithForce(TestAuthenticationFactory.createClusterAdministrator());
- }
-
- @Test(expected = AuthorizationException.class)
- public void testUpdateResourcesWithForceAsClusterOperator() throws Exception {
- testUpdateResourcesWithForce(TestAuthenticationFactory.createClusterOperator());
- }
-
- private void testUpdateResourcesWithForce(Authentication authentication) throws Exception {
- Resource.Type type = Resource.Type.ClusterStackVersion;
- String clusterName = "Cluster100";
-
- AmbariManagementController managementController = createMock(AmbariManagementController.class);
-
- StackId stackId = new StackId("HDP", "2.0.1");
- StackEntity stackEntity = stackDAO.find(stackId.getStackName(), stackId.getStackVersion());
- Assert.assertNotNull(stackEntity);
-
- ResourceTypeEntity resourceTypeEntity = resourceTypeDAO.findById(ResourceType.CLUSTER.getId());
- if (resourceTypeEntity == null) {
- resourceTypeEntity = new ResourceTypeEntity();
- resourceTypeEntity.setId(ResourceType.CLUSTER.getId());
- resourceTypeEntity.setName(ResourceType.CLUSTER.name());
- resourceTypeEntity = resourceTypeDAO.merge(resourceTypeEntity);
- }
- ResourceEntity resourceEntity = new ResourceEntity();
- resourceEntity.setResourceType(resourceTypeEntity);
-
- final Host host1 = createNiceMock("host1", Host.class);
- final Host host2 = createNiceMock("host2", Host.class);
-
- expect(host1.getHostName()).andReturn("host1").anyTimes();
- expect(host2.getHostName()).andReturn("host2").anyTimes();
- replay(host1, host2);
-
- ServiceComponentHost sch = createMock(ServiceComponentHost.class);
- List<ServiceComponentHost> schs = Collections.singletonList(sch);
-
- Cluster cluster = createNiceMock(Cluster.class);
- cluster.setClusterName(clusterName);
-
- ArrayList<Host> hosts = new ArrayList<Host>() {{
- add(host1);
- add(host2);
- }};
-
- Clusters clusters = createNiceMock(Clusters.class);
- expect(clusters.getCluster(anyObject(String.class))).andReturn(cluster);
-
- RepositoryVersionEntity repoVersion = new RepositoryVersionEntity();
- repoVersion.setOperatingSystems(OS_JSON);
- StackEntity newDesiredStack = stackDAO.find("HDP", "2.0.1");
- repoVersion.setStack(newDesiredStack);
-
- final ServiceOsSpecific.Package hivePackage = new ServiceOsSpecific.Package();
- hivePackage.setName("hive");
- final ServiceOsSpecific.Package mysqlPackage = new ServiceOsSpecific.Package();
- mysqlPackage.setName("mysql");
- mysqlPackage.setSkipUpgrade(Boolean.TRUE);
- List<ServiceOsSpecific.Package> packages = new ArrayList<ServiceOsSpecific.Package>() {{
- add(hivePackage);
- add(mysqlPackage);
- }};
-
- ActionManager actionManager = createNiceMock(ActionManager.class);
-
- RequestStatusResponse response = createNiceMock(RequestStatusResponse.class);
- ResourceProviderFactory resourceProviderFactory = createNiceMock(ResourceProviderFactory.class);
- ResourceProvider csvResourceProvider = createNiceMock(ClusterStackVersionResourceProvider.class);
-
- AbstractControllerResourceProvider.init(resourceProviderFactory);
-
- Map<String, Map<String, String>> hostConfigTags = new HashMap<>();
- expect(configHelper.getEffectiveDesiredTags(anyObject(ClusterImpl.class), anyObject(String.class))).andReturn(hostConfigTags);
-
- expect(managementController.getClusters()).andReturn(clusters).anyTimes();
- expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
- expect(managementController.getAuthName()).andReturn("admin").anyTimes();
- expect(managementController.getActionManager()).andReturn(actionManager).anyTimes();
- expect(managementController.getJdkResourceUrl()).andReturn("/JdkResourceUrl").anyTimes();
- expect(managementController.getPackagesForServiceHost(anyObject(ServiceInfo.class),
- EasyMock.<Map<String, String>>anyObject(), anyObject(String.class))).andReturn(packages).anyTimes();
-
- expect(resourceProviderFactory.getHostResourceProvider(EasyMock.<Set<String>>anyObject(), EasyMock.<Map<Resource.Type, String>>anyObject(),
- eq(managementController))).andReturn(csvResourceProvider).anyTimes();
-
- expect(cluster.getCurrentStackVersion()).andReturn(stackId);
- expect(cluster.getServiceComponentHosts(anyObject(String.class))).andReturn(schs).anyTimes();
-
- RepositoryVersionEntity currentRepo = new RepositoryVersionEntity();
- currentRepo.setVersion("2.2.2.0-2122");
- ClusterVersionEntity current = new ClusterVersionEntity();
- current.setRepositoryVersion(currentRepo);
-
- Capture<StackId> capturedStackId = EasyMock.newCapture();
- cluster.setDesiredStackVersion(capture(capturedStackId));
- expectLastCall().once();
- expect(cluster.getHosts()).andReturn(hosts).anyTimes();
- expect(cluster.getCurrentClusterVersion()).andReturn(current).anyTimes();
-
- expect(sch.getServiceName()).andReturn("HIVE").anyTimes();
-
- expect(repositoryVersionDAOMock.findByDisplayName(anyObject(String.class))).andReturn(repoVersion);
-
- clusterVersionDAO.updateVersions((Long) anyObject(),
- (RepositoryVersionEntity) anyObject(), (RepositoryVersionEntity) anyObject());
- expectLastCall().once();
-
- hostVersionDAO.updateVersions((RepositoryVersionEntity) anyObject(), (RepositoryVersionEntity) anyObject());
- expectLastCall().once();
-
- hostComponentStateDAO.updateVersions((String) anyObject());
- expectLastCall().once();
-
- // replay
- replay(managementController, response, clusters, resourceProviderFactory, csvResourceProvider,
- cluster, repositoryVersionDAOMock, configHelper, sch, actionManager, clusterVersionDAO,
- hostVersionDAO, hostComponentStateDAO);
-
- ResourceProvider provider = AbstractControllerResourceProvider.getResourceProvider(
- type,
- PropertyHelper.getPropertyIds(type),
- PropertyHelper.getKeyPropertyIds(type),
- managementController);
-
- injector.injectMembers(provider);
-
-
- // add the property map to a set for the request. add more maps for multiple creates
- Map<String, Object> properties = new LinkedHashMap<>();
-
- // add properties to the request map
- properties.put(ClusterStackVersionResourceProvider.CLUSTER_STACK_VERSION_CLUSTER_NAME_PROPERTY_ID, clusterName);
- properties.put(ClusterStackVersionResourceProvider.CLUSTER_STACK_VERSION_STATE_PROPERTY_ID, "CURRENT");
- properties.put(ClusterStackVersionResourceProvider.CLUSTER_STACK_VERSION_REPOSITORY_VERSION_PROPERTY_ID, "HDP-2.2.2.0-2561");
- properties.put(ClusterStackVersionResourceProvider.CLUSTER_STACK_VERSION_FORCE, "true");
-
- // create the request
- Request request = PropertyHelper.getUpdateRequest(properties, null);
-
- SecurityContextHolder.getContext().setAuthentication(authentication);
-
- provider.updateResources(request, null);
-
- // verify
- verify(managementController, response, clusterVersionDAO, hostVersionDAO, hostComponentStateDAO);
- Assert.assertEquals(capturedStackId.getValue(),
- new StackId(newDesiredStack.getStackName(), newDesiredStack.getStackVersion()));
- }
-
- @Test
public void testCreateResourcesMixedAsAdministrator() throws Exception {
testCreateResourcesMixed(TestAuthenticationFactory.createAdministrator());
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/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 a2b0a0c..cb9e31e 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
@@ -183,23 +183,33 @@ public class HostComponentResourceProviderTest {
Set<ServiceComponentHostResponse> allResponse = new HashSet<>();
StackId stackId = new StackId("HDP-0.1");
StackId stackId2 = new StackId("HDP-0.2");
+
+ String repositoryVersion2 = "0.2-1234";
+
allResponse.add(new ServiceComponentHostResponse(
- "Cluster100", "Service100", "Component100", "Component 100", "Host100", "Host100", State.INSTALLED.toString(), stackId.getStackId(), State.STARTED.toString(),
- stackId2.getStackId(), null));
+ "Cluster100", "Service100", "Component100", "Component 100", "Host100", "Host100",
+ State.INSTALLED.toString(), stackId.getStackId(), State.STARTED.toString(),
+ stackId2.getStackId(), repositoryVersion2, null));
+
allResponse.add(new ServiceComponentHostResponse(
- "Cluster100", "Service100", "Component101", "Component 101", "Host100", "Host100", State.INSTALLED.toString(), stackId.getStackId(), State.STARTED.toString(),
- stackId2.getStackId(), null));
+ "Cluster100", "Service100", "Component101", "Component 101", "Host100", "Host100",
+ State.INSTALLED.toString(), stackId.getStackId(), State.STARTED.toString(),
+ stackId2.getStackId(), repositoryVersion2, null));
allResponse.add(new ServiceComponentHostResponse(
- "Cluster100", "Service100", "Component102", "Component 102", "Host100","Host100", State.INSTALLED.toString(), stackId.getStackId(), State.STARTED.toString(),
- stackId2.getStackId(), null));
+ "Cluster100", "Service100", "Component102", "Component 102", "Host100", "Host100",
+ State.INSTALLED.toString(), stackId.getStackId(), State.STARTED.toString(),
+ stackId2.getStackId(), repositoryVersion2, null));
+
Map<String, String> expectedNameValues = new HashMap<>();
expectedNameValues.put(
HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID, "Cluster100");
expectedNameValues.put(
HostComponentResourceProvider.HOST_COMPONENT_STATE_PROPERTY_ID, State.INSTALLED.toString());
expectedNameValues.put(
- HostComponentResourceProvider.HOST_COMPONENT_STACK_ID_PROPERTY_ID, stackId.getStackId());
+ HostComponentResourceProvider.HOST_COMPONENT_VERSION_PROPERTY_ID, repositoryVersion2);
+ expectedNameValues.put(
+ HostComponentResourceProvider.HOST_COMPONENT_DESIRED_REPOSITORY_VERSION, repositoryVersion2);
expectedNameValues.put(
HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID, State.STARTED.toString());
expectedNameValues.put(
@@ -219,7 +229,8 @@ public class HostComponentResourceProviderTest {
propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID);
propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID);
propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_STATE_PROPERTY_ID);
- propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_STACK_ID_PROPERTY_ID);
+ propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_VERSION_PROPERTY_ID);
+ propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_REPOSITORY_VERSION);
propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STATE_PROPERTY_ID);
propertyIds.add(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID);
@@ -236,9 +247,11 @@ public class HostComponentResourceProviderTest {
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID, "Component100");
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_STATE_PROPERTY_ID, State.INSTALLED.name());
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_VERSION_PROPERTY_ID, repositoryVersion2);
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID, stackId2.getStackId());
hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_UPGRADE_STATE_PROPERTY_ID, UpgradeState.NONE.name());
+ hostsComponentResource1.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_REPOSITORY_VERSION, repositoryVersion2);
Resource hostsComponentResource2 = new ResourceImpl(Resource.Type.HostComponent);
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID, "Cluster100");
@@ -247,9 +260,11 @@ public class HostComponentResourceProviderTest {
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID, "Component101");
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_STATE_PROPERTY_ID, State.INSTALLED.name());
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_VERSION_PROPERTY_ID, repositoryVersion2);
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID, stackId2.getStackId());
hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_UPGRADE_STATE_PROPERTY_ID, UpgradeState.NONE.name());
+ hostsComponentResource2.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_REPOSITORY_VERSION, repositoryVersion2);
Resource hostsComponentResource3 = new ResourceImpl(Resource.Type.HostComponent);
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_CLUSTER_NAME_PROPERTY_ID, "Cluster100");
@@ -258,9 +273,11 @@ public class HostComponentResourceProviderTest {
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_COMPONENT_NAME_PROPERTY_ID, "Component102");
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_STATE_PROPERTY_ID, State.INSTALLED.name());
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_VERSION_PROPERTY_ID, repositoryVersion2);
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_STACK_ID_PROPERTY_ID, stackId2.getStackId());
hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_UPGRADE_STATE_PROPERTY_ID, UpgradeState.NONE.name());
+ hostsComponentResource3.setProperty(HostComponentResourceProvider.HOST_COMPONENT_DESIRED_REPOSITORY_VERSION, repositoryVersion2);
hostsComponentResources.add(hostsComponentResource1);
hostsComponentResources.add(hostsComponentResource2);
@@ -337,7 +354,8 @@ public class HostComponentResourceProviderTest {
Set<ServiceComponentHostResponse> nameResponse = new HashSet<>();
nameResponse.add(new ServiceComponentHostResponse(
- "Cluster102", "Service100", "Component100", "Component 100", "Host100", "Host100","INSTALLED", "", "", "", null));
+ "Cluster102", "Service100", "Component100", "Component 100", "Host100", "Host100",
+ "INSTALLED", "", "", "", "", null));
// set expectations
expect(managementController.getClusters()).andReturn(clusters).anyTimes();
@@ -538,7 +556,8 @@ public class HostComponentResourceProviderTest {
Set<ServiceComponentHostResponse> nameResponse = new HashSet<>();
nameResponse.add(new ServiceComponentHostResponse(
- "Cluster102", "Service100", "Component100", "Component 100", "Host100", "Host100","INSTALLED", "", "", "", null));
+ "Cluster102", "Service100", "Component100", "Component 100", "Host100", "Host100",
+ "INSTALLED", "", "", "", "", null));
// set expectations
expect(managementController.getClusters()).andReturn(clusters).anyTimes();
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java
index 8772b24..d1a4a1a 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/HostResourceProviderTest.java
@@ -301,11 +301,11 @@ public class HostResourceProviderTest extends EasyMockSupport {
clusterSet.add(cluster);
ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component100", "Component 100",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
ServiceComponentHostResponse shr2 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component102", "Component 102",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
ServiceComponentHostResponse shr3 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component103", "Component 103",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
Set<ServiceComponentHostResponse> responses = new HashSet<>();
responses.add(shr1);
@@ -402,11 +402,11 @@ public class HostResourceProviderTest extends EasyMockSupport {
clusterSet.add(cluster);
ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component100", "Component 100",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
ServiceComponentHostResponse shr2 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component102", "Component 102",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
ServiceComponentHostResponse shr3 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component103", "Component 103",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
Set<ServiceComponentHostResponse> responses = new HashSet<>();
responses.add(shr1);
@@ -498,11 +498,11 @@ public class HostResourceProviderTest extends EasyMockSupport {
clusterSet.add(cluster);
ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component100", "Component 100",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
ServiceComponentHostResponse shr2 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component102", "Component 102",
- "Host100", "Host100", "INSTALLED", "", null, null, null);
+ "Host100", "Host100", "INSTALLED", "", null, null, null, null);
ServiceComponentHostResponse shr3 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component103", "Component 103",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
Set<ServiceComponentHostResponse> responses = new HashSet<>();
responses.add(shr1);
@@ -698,7 +698,7 @@ public class HostResourceProviderTest extends EasyMockSupport {
clusterSet.add(cluster);
ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component100", "Component 100",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
Set<ServiceComponentHostResponse> responses = new HashSet<>();
responses.add(shr1);
@@ -785,11 +785,11 @@ public class HostResourceProviderTest extends EasyMockSupport {
clusterSet.add(cluster);
ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component100", "Component 100",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
ServiceComponentHostResponse shr2 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component102", "Component 102",
- "Host100", "Host100", "INSTALLED", "", null, null, null);
+ "Host100", "Host100", "INSTALLED", "", null, null, null, null);
ServiceComponentHostResponse shr3 = new ServiceComponentHostResponse("Cluster100", "Service100", "Component103", "Component 103",
- "Host100", "Host100", "STARTED", "", null, null, null);
+ "Host100", "Host100", "STARTED", "", null, null, null, null);
Set<ServiceComponentHostResponse> responses = new HashSet<>();
responses.add(shr1);
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
index 3cc6416..9486f9d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/JMXHostProviderTest.java
@@ -47,6 +47,9 @@ import org.apache.ambari.server.controller.spi.UnsupportedPropertyException;
import org.apache.ambari.server.controller.utilities.PropertyHelper;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.orm.OrmTestHelper;
+import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationException;
import org.apache.ambari.server.state.Cluster;
@@ -83,6 +86,11 @@ public class JMXHostProviderTest {
private static final String MAPREDUCE_HTTPS_POLICY = "mapreduce.jobhistory.http.policy";
private static final String MAPREDUCE_HTTPS_PORT = "mapreduce.jobhistory.webapp.https.address";
+ private final String STACK_VERSION = "2.0.6";
+ private final String REPO_VERSION = "2.0.6-1234";
+ private final StackId STACK_ID = new StackId("HDP", STACK_VERSION);
+ private RepositoryVersionEntity m_repositoryVersion;
+
@Before
public void setup() throws Exception {
injector = Guice.createInjector(new InMemoryDefaultTestModule());
@@ -90,6 +98,10 @@ public class JMXHostProviderTest {
injector.getInstance(GuiceJpaInitializer.class);
clusters = injector.getInstance(Clusters.class);
controller = injector.getInstance(AmbariManagementController.class);
+ OrmTestHelper ormTestHelper = injector.getInstance(OrmTestHelper.class);
+
+ m_repositoryVersion = ormTestHelper.getOrCreateRepositoryVersion(STACK_ID, REPO_VERSION);
+ Assert.assertNotNull(m_repositoryVersion);
// Set the authenticated user
// TODO: remove this or replace the authenticated user to test authorization rules
@@ -104,17 +116,22 @@ public class JMXHostProviderTest {
SecurityContextHolder.getContext().setAuthentication(null);
}
- private void createService(String clusterName,
- String serviceName, State desiredState)
+ private void createService(String clusterName, String serviceName, State desiredState)
throws AmbariException, AuthorizationException {
String dStateStr = null;
+
if (desiredState != null) {
dStateStr = desiredState.toString();
}
- ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, dStateStr);
+
+ ServiceRequest r1 = new ServiceRequest(clusterName, serviceName, STACK_ID.getStackId(),
+ REPO_VERSION, dStateStr);
+
Set<ServiceRequest> requests = new HashSet<>();
requests.add(r1);
- ServiceResourceProviderTest.createServices(controller, requests);
+
+ ServiceResourceProviderTest.createServices(controller,
+ injector.getInstance(RepositoryVersionDAO.class), requests);
}
private void createServiceComponent(String clusterName,
@@ -640,14 +657,17 @@ public class JMXHostProviderTest {
Injector injector = createNiceMock(Injector.class);
MaintenanceStateHelper maintenanceStateHelper = createNiceMock(MaintenanceStateHelper.class);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
+
{
expect(injector.getInstance(Clusters.class)).andReturn(null);
replay(maintenanceStateHelper, injector);
}
- ResourceProvider serviceResourceProvider = new ServiceResourceProvider(PropertyHelper
- .getPropertyIds(Resource.Type.Service),
- PropertyHelper.getKeyPropertyIds(Resource.Type.Service), controller, maintenanceStateHelper);
+ ResourceProvider serviceResourceProvider = new ServiceResourceProvider(
+ PropertyHelper.getPropertyIds(Resource.Type.Service),
+ PropertyHelper.getKeyPropertyIds(Resource.Type.Service), controller, maintenanceStateHelper,
+ repositoryVersionDAO);
ResourceProvider hostCompResourceProvider = new
HostComponentResourceProvider(PropertyHelper.getPropertyIds(Resource
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java
index 4aacf91..2e712d1 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestImplTest.java
@@ -61,7 +61,8 @@ public class RequestImplTest {
Assert.assertTrue(validPropertyIds.contains("params/run_smoke_test"));
Assert.assertTrue(validPropertyIds.contains("HostRoles/actual_configs"));
Assert.assertTrue(validPropertyIds.contains("HostRoles/desired_stack_id"));
- Assert.assertTrue(validPropertyIds.contains("HostRoles/stack_id"));
+ Assert.assertTrue(validPropertyIds.contains("HostRoles/version"));
+ Assert.assertTrue(validPropertyIds.contains("HostRoles/desired_repository_version"));
Assert.assertTrue(validPropertyIds.contains("HostRoles/desired_state"));
Assert.assertTrue(validPropertyIds.contains("HostRoles/state"));
Assert.assertTrue(validPropertyIds.contains("HostRoles/component_name"));
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java
index 44c2493..04b7933 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java
@@ -62,6 +62,9 @@ import org.apache.ambari.server.controller.spi.SystemException;
import org.apache.ambari.server.controller.utilities.PredicateBuilder;
import org.apache.ambari.server.controller.utilities.PropertyHelper;
import org.apache.ambari.server.metadata.RoleCommandOrder;
+import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
+import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationException;
import org.apache.ambari.server.serveraction.kerberos.KerberosAdminAuthenticationException;
@@ -117,10 +120,17 @@ public class ServiceResourceProviderTest {
AmbariMetaInfo ambariMetaInfo = createNiceMock(AmbariMetaInfo.class);
ServiceInfo serviceInfo = createNiceMock(ServiceInfo.class);
+ ClusterVersionEntity clusterVersion = createNiceMock(ClusterVersionEntity.class);
+ RepositoryVersionEntity repositoryVersion = createNiceMock(RepositoryVersionEntity.class);
+ expect(clusterVersion.getRepositoryVersion()).andReturn(repositoryVersion).atLeastOnce();
+
expect(managementController.getClusters()).andReturn(clusters).anyTimes();
expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
- expect(cluster.addService("Service100")).andReturn(service);
+ expect(cluster.getCurrentClusterVersion()).andReturn(clusterVersion).atLeastOnce();
+
+ expect(cluster.addService(eq("Service100"),
+ EasyMock.anyObject(RepositoryVersionEntity.class))).andReturn(service);
expect(clusters.getCluster("Cluster100")).andReturn(cluster).anyTimes();
@@ -135,7 +145,8 @@ public class ServiceResourceProviderTest {
expect(ambariMetaInfo.getService((String)anyObject(), (String)anyObject(), (String)anyObject())).andReturn(serviceInfo).anyTimes();
// replay
- replay(managementController, clusters, cluster, service, ambariMetaInfo, stackId, serviceFactory, serviceInfo);
+ replay(managementController, clusters, cluster, clusterVersion, repositoryVersion, service,
+ ambariMetaInfo, stackId, serviceFactory, serviceInfo);
SecurityContextHolder.getContext().setAuthentication(authentication);
@@ -160,7 +171,8 @@ public class ServiceResourceProviderTest {
provider.createResources(request);
// verify
- verify(managementController, clusters, cluster, service, ambariMetaInfo, stackId, serviceFactory, serviceInfo);
+ verify(managementController, clusters, cluster, clusterVersion, repositoryVersion, service,
+ ambariMetaInfo, stackId, serviceFactory, serviceInfo);
}
@Test
@@ -596,6 +608,7 @@ public class ServiceResourceProviderTest {
private void testUpdateResources(Authentication authentication) throws Exception{
MaintenanceStateHelper maintenanceStateHelper = createNiceMock(MaintenanceStateHelper.class);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
AmbariManagementController managementController = createMock(AmbariManagementController.class);
Clusters clusters = createNiceMock(Clusters.class);
Cluster cluster = createNiceMock(Cluster.class);
@@ -656,11 +669,13 @@ public class ServiceResourceProviderTest {
// replay
replay(managementController, clusters, cluster, rco, maintenanceStateHelper,
- service0, serviceFactory, ambariMetaInfo, requestStages, requestStatusResponse, stackId, serviceInfo);
+ repositoryVersionDAO, service0, serviceFactory, ambariMetaInfo, requestStages,
+ requestStatusResponse, stackId, serviceInfo);
SecurityContextHolder.getContext().setAuthentication(authentication);
- ServiceResourceProvider provider = getServiceProvider(managementController, maintenanceStateHelper);
+ ServiceResourceProvider provider = getServiceProvider(managementController,
+ maintenanceStateHelper, repositoryVersionDAO);
// add the property map to a set for the request.
Map<String, Object> properties = new LinkedHashMap<>();
@@ -697,6 +712,7 @@ public class ServiceResourceProviderTest {
private void testReconfigureClientsFlag(Authentication authentication) throws Exception {
MaintenanceStateHelper maintenanceStateHelper = createNiceMock(MaintenanceStateHelper.class);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
AmbariManagementController managementController1 = createMock(AmbariManagementController.class);
AmbariManagementController managementController2 = createMock
(AmbariManagementController.class);
@@ -787,14 +803,17 @@ public class ServiceResourceProviderTest {
andReturn(Collections.<Service>emptySet()).anyTimes();
// replay
- replay(managementController1, response1, managementController2, requestStages1, requestStages2, response2,
- clusters, cluster, service0, serviceResponse0, ambariMetaInfo, rco, maintenanceStateHelper, stackId, serviceInfo);
+ replay(managementController1, response1, managementController2, requestStages1, requestStages2,
+ response2, clusters, cluster, service0, serviceResponse0, ambariMetaInfo, rco,
+ maintenanceStateHelper, repositoryVersionDAO, stackId, serviceInfo);
SecurityContextHolder.getContext().setAuthentication(authentication);
- ServiceResourceProvider provider1 = getServiceProvider(managementController1, maintenanceStateHelper);
+ ServiceResourceProvider provider1 = getServiceProvider(managementController1,
+ maintenanceStateHelper, repositoryVersionDAO);
- ServiceResourceProvider provider2 = getServiceProvider(managementController2, maintenanceStateHelper);
+ ServiceResourceProvider provider2 = getServiceProvider(managementController2,
+ maintenanceStateHelper, repositoryVersionDAO);
// add the property map to a set for the request.
Map<String, Object> properties = new LinkedHashMap<>();
@@ -1122,9 +1141,11 @@ public class ServiceResourceProviderTest {
AmbariManagementController managementController = createMock(AmbariManagementController.class);
MaintenanceStateHelper maintenanceStateHelperMock = createNiceMock(MaintenanceStateHelper.class);
- AbstractResourceProvider provider = new ServiceResourceProvider(propertyIds,
- keyPropertyIds,
- managementController, maintenanceStateHelperMock);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
+ replay(maintenanceStateHelperMock, repositoryVersionDAO);
+
+ AbstractResourceProvider provider = new ServiceResourceProvider(propertyIds, keyPropertyIds,
+ managementController, maintenanceStateHelperMock, repositoryVersionDAO);
Set<String> unsupported = provider.checkPropertyIds(Collections.singleton("foo"));
Assert.assertTrue(unsupported.isEmpty());
@@ -1156,26 +1177,30 @@ public class ServiceResourceProviderTest {
*/
public static ServiceResourceProvider getServiceProvider(AmbariManagementController managementController) throws AmbariException {
MaintenanceStateHelper maintenanceStateHelperMock = createNiceMock(MaintenanceStateHelper.class);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
expect(maintenanceStateHelperMock.isOperationAllowed(anyObject(Resource.Type.class), anyObject(Service.class))).andReturn(true).anyTimes();
expect(maintenanceStateHelperMock.isOperationAllowed(anyObject(Resource.Type.class), anyObject(ServiceComponentHost.class))).andReturn(true).anyTimes();
- replay(maintenanceStateHelperMock);
- return getServiceProvider(managementController, maintenanceStateHelperMock);
+ replay(maintenanceStateHelperMock, repositoryVersionDAO);
+ return getServiceProvider(managementController, maintenanceStateHelperMock, repositoryVersionDAO);
}
/**
* This factory method allows to define custom MaintenanceStateHelper mock.
*/
- public static ServiceResourceProvider getServiceProvider(AmbariManagementController managementController,
- MaintenanceStateHelper maintenanceStateHelper) {
+ public static ServiceResourceProvider getServiceProvider(
+ AmbariManagementController managementController,
+ MaintenanceStateHelper maintenanceStateHelper, RepositoryVersionDAO repositoryVersionDAO) {
Resource.Type type = Resource.Type.Service;
return new ServiceResourceProvider(PropertyHelper.getPropertyIds(type),
PropertyHelper.getKeyPropertyIds(type),
- managementController, maintenanceStateHelper);
+ managementController, maintenanceStateHelper, repositoryVersionDAO);
}
- public static void createServices(AmbariManagementController controller, Set<ServiceRequest> requests)
+ public static void createServices(AmbariManagementController controller,
+ RepositoryVersionDAO repositoryVersionDAO, Set<ServiceRequest> requests)
throws AmbariException, AuthorizationException {
- ServiceResourceProvider provider = getServiceProvider(controller);
+ MaintenanceStateHelper maintenanceStateHelperMock = createNiceMock(MaintenanceStateHelper.class);
+ ServiceResourceProvider provider = getServiceProvider(controller, maintenanceStateHelperMock, repositoryVersionDAO);
provider.createServices(requests);
}
@@ -1205,7 +1230,7 @@ public class ServiceResourceProviderTest {
throws AmbariException, AuthorizationException {
ServiceResourceProvider provider;
if (maintenanceStateHelper != null) {
- provider = getServiceProvider(controller, maintenanceStateHelper);
+ provider = getServiceProvider(controller, maintenanceStateHelper, null);
} else {
provider = getServiceProvider(controller);
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java
index 1c45589..bc178ea 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/StackUpgradeConfigurationMergeTest.java
@@ -55,6 +55,7 @@ import org.apache.ambari.server.state.ServiceComponentHostFactory;
import org.apache.ambari.server.state.ServiceFactory;
import org.apache.ambari.server.state.ServiceInfo;
import org.apache.ambari.server.state.StackId;
+import org.apache.ambari.server.state.UpgradeContext;
import org.apache.ambari.server.state.UpgradeContextFactory;
import org.apache.ambari.server.state.configgroup.ConfigGroupFactory;
import org.apache.ambari.server.state.scheduler.RequestExecutionFactory;
@@ -90,7 +91,6 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
private static final StackId s_targetStackId = new StackId("HDP-2.5");
private Injector m_injector;
- private Clusters m_clustersMock;
private AmbariMetaInfo m_ambariMetaInfoMock;
/**
@@ -98,7 +98,6 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
*/
@Before
public void before() throws Exception {
- m_clustersMock = createNiceMock(Clusters.class);
m_ambariMetaInfoMock = createNiceMock(AmbariMetaInfo.class);
MockModule mockModule = new MockModule();
@@ -158,6 +157,8 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
UpgradePack upgradePack = createNiceMock(UpgradePack.class);
StackEntity targetStack = createNiceMock(StackEntity.class);
+ String version = "2.5.0.0-1234";
+
// mocks which were bound previously
AmbariManagementController amc = m_injector.getInstance(AmbariManagementController.class);
AmbariMetaInfo ambariMetaInfo = m_injector.getInstance(AmbariMetaInfo.class);
@@ -173,7 +174,9 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
EasyMock.expect(targetStack.getStackVersion()).andReturn("2.5").anyTimes();
EasyMock.expect(repositoryVersionEntity.getStack()).andReturn(targetStack);
- EasyMock.expect(repositoryVersionDAO.findByStackNameAndVersion("HDP", "2.5.0.0-1234")).andReturn(repositoryVersionEntity);
+ EasyMock.expect(repositoryVersionEntity.getVersion()).andReturn(version);
+ EasyMock.expect(repositoryVersionDAO.findByStackNameAndVersion("HDP", version)).andReturn(
+ repositoryVersionEntity);
EasyMock.expect(upgradePack.getGroups(Direction.UPGRADE)).andReturn(new ArrayList<Grouping>());
@@ -236,13 +239,20 @@ public class StackUpgradeConfigurationMergeTest extends EasyMockSupport {
EasyMock.expectLastCall();
+ UpgradeContext upgradeContext = createNiceMock(UpgradeContext.class);
+ EasyMock.expect(upgradeContext.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes();
+ EasyMock.expect(upgradeContext.getCluster()).andReturn(cluster).anyTimes();
+ EasyMock.expect(upgradeContext.getDirection()).andReturn(Direction.UPGRADE).anyTimes();
+ EasyMock.expect(upgradeContext.getUpgradePack()).andReturn(upgradePack).anyTimes();
+ EasyMock.expect(upgradeContext.getTargetRepositoryVersion()).andReturn(repositoryVersionEntity).anyTimes();
+ EasyMock.expect(upgradeContext.getTargetStackId()).andReturn(new StackId("HDP-2.5")).anyTimes();
+ EasyMock.expect(upgradeContext.getVersion()).andReturn(version).anyTimes();
replayAll();
UpgradeResourceProvider upgradeResourceProvider = new UpgradeResourceProvider(amc);
m_injector.injectMembers(upgradeResourceProvider);
- upgradeResourceProvider.applyStackAndProcessConfigurations("HDP", cluster, "2.5.0.0-1234",
- Direction.UPGRADE, upgradePack, "admin");
+ upgradeResourceProvider.applyStackAndProcessConfigurations(upgradeContext);
// assertion time!
Map<String, Map<String, String>> mergedConfigurations = capturedArgument.getValue();
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java
index 36889b2..3039267 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderHDP22Test.java
@@ -157,7 +157,9 @@ public class UpgradeResourceProviderHDP22Test {
clusters.addCluster("c1", stackId);
Cluster cluster = clusters.getCluster("c1");
- helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion());
+ RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
+ stackId.getStackVersion());
+
cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", RepositoryVersionState.INSTALLING);
cluster.transitionClusterVersion(stackId, stackId.getStackVersion(), RepositoryVersionState.CURRENT);
@@ -172,8 +174,7 @@ public class UpgradeResourceProviderHDP22Test {
clusters.mapHostToCluster("h1", "c1");
// add a single HIVE server
- Service service = cluster.addService("HIVE");
- service.setDesiredStackVersion(cluster.getDesiredStackVersion());
+ Service service = cluster.addService("HIVE", repositoryVersion);
ServiceComponent component = service.addServiceComponent("HIVE_SERVER");
ServiceComponentHost sch = component.addServiceComponentHost("h1");
@@ -215,7 +216,7 @@ public class UpgradeResourceProviderHDP22Test {
assertEquals(oldStack, sc.getDesiredStackVersion());
for (ServiceComponentHost sch : sc.getServiceComponentHosts().values()) {
- assertEquals(oldStack, sch.getDesiredStackVersion());
+ assertEquals("2.2.0.0", sch.getVersion());
}
}
}
@@ -260,10 +261,6 @@ public class UpgradeResourceProviderHDP22Test {
for (ServiceComponent sc : s.getServiceComponents().values()) {
assertEquals(newStack, sc.getDesiredStackVersion());
-
- for (ServiceComponentHost sch : sc.getServiceComponentHosts().values()) {
- assertEquals(newStack, sch.getDesiredStackVersion());
- }
}
}