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:53 UTC
[6/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/agent/TestHeartbeatHandler.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
index 909bf69..83e7d56 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatHandler.java
@@ -75,6 +75,8 @@ import org.apache.ambari.server.audit.AuditLogger;
import org.apache.ambari.server.configuration.Configuration;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.serveraction.kerberos.KerberosIdentityDataFileWriter;
import org.apache.ambari.server.serveraction.kerberos.KerberosIdentityDataFileWriterFactory;
import org.apache.ambari.server.serveraction.kerberos.KerberosServerAction;
@@ -173,7 +175,7 @@ public class TestHeartbeatHandler {
replay(am);
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.addServiceComponent(NAMENODE);
hdfs.addServiceComponent(SECONDARY_NAMENODE);
@@ -231,7 +233,7 @@ public class TestHeartbeatHandler {
@SuppressWarnings("unchecked")
public void testStatusHeartbeatWithAnnotation() throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.addServiceComponent(NAMENODE);
hdfs.addServiceComponent(SECONDARY_NAMENODE);
@@ -282,7 +284,7 @@ public class TestHeartbeatHandler {
@SuppressWarnings("unchecked")
public void testLiveStatusUpdateAfterStopFailed() throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.getServiceComponent(DATANODE).
addServiceComponentHost(DummyHostname1);
@@ -385,7 +387,7 @@ public class TestHeartbeatHandler {
@Test
public void testRegistrationRecoveryConfig() throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE).setRecoveryEnabled(true);
hdfs.getServiceComponent(DATANODE);
@@ -458,7 +460,7 @@ public class TestHeartbeatHandler {
HeartBeatHandler handler = new HeartBeatHandler(fsm, new ActionQueue(), am,
injector);
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
/**
* Add three service components enabled for auto start.
@@ -792,7 +794,7 @@ public class TestHeartbeatHandler {
@SuppressWarnings("unchecked")
public void testTaskInProgressHandling() throws Exception, InvalidStateTransitionException {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
hdfs.addServiceComponent(NAMENODE);
@@ -849,7 +851,7 @@ public class TestHeartbeatHandler {
@SuppressWarnings("unchecked")
public void testOPFailedEventForAbortedTask() throws Exception, InvalidStateTransitionException {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
hdfs.addServiceComponent(NAMENODE);
@@ -921,9 +923,9 @@ public class TestHeartbeatHandler {
@Test
@SuppressWarnings("unchecked")
- public void testStatusHeartbeatWithVersion() throws Exception {
+ public void testStatusHeartbeat() throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
hdfs.addServiceComponent(NAMENODE);
@@ -938,15 +940,9 @@ public class TestHeartbeatHandler {
ServiceComponentHost serviceComponentHost3 = clusters.getCluster(DummyCluster).getService(HDFS).
getServiceComponent(HDFS_CLIENT).getServiceComponentHost(DummyHostname1);
- StackId stack130 = new StackId("HDP-1.3.0");
- StackId stack120 = new StackId("HDP-1.2.0");
-
serviceComponentHost1.setState(State.INSTALLED);
serviceComponentHost2.setState(State.STARTED);
serviceComponentHost3.setState(State.STARTED);
- serviceComponentHost1.setStackVersion(stack130);
- serviceComponentHost2.setStackVersion(stack120);
- serviceComponentHost3.setStackVersion(stack120);
HeartBeat hb = new HeartBeat();
hb.setTimestamp(System.currentTimeMillis());
@@ -980,12 +976,6 @@ public class TestHeartbeatHandler {
handler.handleHeartBeat(hb);
heartbeatProcessor.processHeartbeat(hb);
- assertEquals("Matching value " + serviceComponentHost1.getStackVersion(),
- stack130, serviceComponentHost1.getStackVersion());
- assertEquals("Matching value " + serviceComponentHost2.getStackVersion(),
- stack120, serviceComponentHost2.getStackVersion());
- assertEquals("Matching value " + serviceComponentHost3.getStackVersion(),
- stack130, serviceComponentHost3.getStackVersion());
assertTrue(hb.getAgentEnv().getHostHealth().getServerTimeStampAtReporting() >= hb.getTimestamp());
}
@@ -998,7 +988,7 @@ public class TestHeartbeatHandler {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
Host hostObject = clusters.getHost(DummyHostname1);
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
hdfs.addServiceComponent(NAMENODE);
@@ -1079,7 +1069,7 @@ public class TestHeartbeatHandler {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
Host hostObject = clusters.getHost(DummyHostname1);
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
hdfs.addServiceComponent(NAMENODE);
@@ -1403,7 +1393,7 @@ public class TestHeartbeatHandler {
@SuppressWarnings("unchecked")
public void testCommandStatusProcesses_empty() throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = addService(cluster, HDFS);
hdfs.addServiceComponent(DATANODE);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
hdfs.getServiceComponent(DATANODE).getServiceComponentHost(DummyHostname1).setState(State.STARTED);
@@ -1590,4 +1580,21 @@ public class TestHeartbeatHandler {
return dataDirectory;
}
+ /**
+ * Adds the service to the cluster using the current cluster version as the
+ * repository version for the service.
+ *
+ * @param cluster
+ * the cluster.
+ * @param serviceName
+ * the service name.
+ * @return the newly added service.
+ * @throws AmbariException
+ */
+ private Service addService(Cluster cluster, String serviceName) throws AmbariException {
+ ClusterVersionEntity clusterVersion = cluster.getCurrentClusterVersion();
+ RepositoryVersionEntity repositoryVersion = clusterVersion.getRepositoryVersion();
+ return cluster.addService(serviceName, repositoryVersion);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java
index caf64be..4c536a9 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java
@@ -41,6 +41,7 @@ import org.apache.ambari.server.api.services.AmbariMetaInfo;
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.entities.RepositoryVersionEntity;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.Config;
@@ -74,7 +75,6 @@ public class TestHeartbeatMonitor {
private String hostname1 = "host1";
private String hostname2 = "host2";
- private String hostname3 = "host3";
private String clusterName = "cluster1";
private String serviceName = "HDFS";
private int heartbeatMonitorWakeupIntervalMS = 30;
@@ -151,7 +151,10 @@ public class TestHeartbeatMonitor {
setOsFamily(clusters.getHost(hostname2), "redhat", "6.3");
clusters.addCluster(clusterName, stackId);
Cluster cluster = clusters.getCluster(clusterName);
- helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion());
+
+ RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
+ stackId.getStackVersion());
+
cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin",
RepositoryVersionState.INSTALLING);
Set<String> hostNames = new HashSet<String>(){{
@@ -166,7 +169,7 @@ public class TestHeartbeatMonitor {
clusters.mapAndPublishHostsToCluster(hostNames, clusterName);
- Service hdfs = cluster.addService(serviceName);
+ Service hdfs = cluster.addService(serviceName, repositoryVersion);
hdfs.addServiceComponent(Role.DATANODE.name());
hdfs.getServiceComponent(Role.DATANODE.name()).addServiceComponentHost(hostname1);
hdfs.addServiceComponent(Role.NAMENODE.name());
@@ -233,7 +236,8 @@ public class TestHeartbeatMonitor {
clusters.addCluster(clusterName, stackId);
Cluster cluster = clusters.getCluster(clusterName);
- helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion());
+ RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
+ stackId.getStackVersion());
cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin",
RepositoryVersionState.INSTALLING);
Set<String> hostNames = new HashSet<String>() {{
@@ -255,7 +259,7 @@ public class TestHeartbeatMonitor {
clusters.mapAndPublishHostsToCluster(hostNames, clusterName);
- Service hdfs = cluster.addService(serviceName);
+ Service hdfs = cluster.addService(serviceName, repositoryVersion);
hdfs.addServiceComponent(Role.DATANODE.name());
hdfs.getServiceComponent(Role.DATANODE.name()).addServiceComponentHost
(hostname1);
@@ -353,7 +357,8 @@ public class TestHeartbeatMonitor {
clusters.addCluster(clusterName, stackId);
Cluster cluster = clusters.getCluster(clusterName);
- helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion());
+ RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
+ stackId.getStackVersion());
cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin",
RepositoryVersionState.INSTALLING);
@@ -363,7 +368,7 @@ public class TestHeartbeatMonitor {
clusters.mapAndPublishHostsToCluster(hostNames, clusterName);
- Service hdfs = cluster.addService(serviceName);
+ Service hdfs = cluster.addService(serviceName, repositoryVersion);
hdfs.addServiceComponent(Role.DATANODE.name());
hdfs.getServiceComponent(Role.DATANODE.name()).addServiceComponentHost(hostname1);
hdfs.addServiceComponent(Role.NAMENODE.name());
@@ -435,7 +440,8 @@ public class TestHeartbeatMonitor {
clusters.addCluster(clusterName, stackId);
Cluster cluster = clusters.getCluster(clusterName);
- helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion());
+ RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
+ stackId.getStackVersion());
cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin",
RepositoryVersionState.INSTALLING);
@@ -445,7 +451,7 @@ public class TestHeartbeatMonitor {
clusters.mapAndPublishHostsToCluster(hostNames, clusterName);
- Service hdfs = cluster.addService(serviceName);
+ Service hdfs = cluster.addService(serviceName, repositoryVersion);
hdfs.addServiceComponent(Role.DATANODE.name());
hdfs.getServiceComponent(Role.DATANODE.name()).addServiceComponentHost(hostname1);
hdfs.addServiceComponent(Role.NAMENODE.name());
@@ -553,7 +559,8 @@ public class TestHeartbeatMonitor {
Cluster cluster = clusters.getCluster(clusterName);
cluster.setDesiredStackVersion(stackId);
- helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion());
+ RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId,
+ stackId.getStackVersion());
cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin",
RepositoryVersionState.INSTALLING);
@@ -564,7 +571,7 @@ public class TestHeartbeatMonitor {
clusters.mapAndPublishHostsToCluster(hostNames, clusterName);
- Service hdfs = cluster.addService(serviceName);
+ Service hdfs = cluster.addService(serviceName, repositoryVersion);
hdfs.addServiceComponent(Role.DATANODE.name());
hdfs.getServiceComponent(Role.DATANODE.name()).addServiceComponentHost(hostname1);
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/alerts/ComponentVersionAlertRunnableTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/alerts/ComponentVersionAlertRunnableTest.java b/ambari-server/src/test/java/org/apache/ambari/server/alerts/ComponentVersionAlertRunnableTest.java
index 98f6f44..7ba5bc0 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/alerts/ComponentVersionAlertRunnableTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/alerts/ComponentVersionAlertRunnableTest.java
@@ -38,7 +38,6 @@ import org.apache.ambari.server.events.publishers.AlertEventPublisher;
import org.apache.ambari.server.orm.DBAccessor;
import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
-import org.apache.ambari.server.orm.entities.ClusterVersionEntity;
import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.orm.entities.UpgradeEntity;
import org.apache.ambari.server.stack.StackManagerFactory;
@@ -48,6 +47,8 @@ import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.ComponentInfo;
import org.apache.ambari.server.state.Host;
+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.stack.OsFamily;
@@ -140,6 +141,17 @@ public class ComponentVersionAlertRunnableTest extends EasyMockSupport {
expect(m_desidredStackId.getStackName()).andReturn("SOME-STACK").atLeastOnce();
expect(m_desidredStackId.getStackVersion()).andReturn("STACK-VERSION").atLeastOnce();
+ RepositoryVersionEntity repositoryVersionEntity = createNiceMock(RepositoryVersionEntity.class);
+ expect(repositoryVersionEntity.getVersion()).andReturn(EXPECTED_VERSION).anyTimes();
+
+ // services
+ Service service = createNiceMock(Service.class);
+ expect(service.getDesiredRepositoryVersion()).andReturn(repositoryVersionEntity).atLeastOnce();
+
+ ServiceComponent serviceComponent = createNiceMock(ServiceComponent.class);
+ expect(serviceComponent.getDesiredStackVersion()).andReturn(m_desidredStackId).atLeastOnce();
+ expect(service.getServiceComponent(EasyMock.anyString())).andReturn(serviceComponent).atLeastOnce();
+
// components
ServiceComponentHost sch1_1 = createNiceMock(ServiceComponentHost.class);
ServiceComponentHost sch1_2 = createNiceMock(ServiceComponentHost.class);
@@ -149,19 +161,15 @@ public class ComponentVersionAlertRunnableTest extends EasyMockSupport {
expect(sch1_1.getServiceName()).andReturn("FOO").atLeastOnce();
expect(sch1_1.getServiceComponentName()).andReturn("FOO_COMPONENT").atLeastOnce();
expect(sch1_1.getVersion()).andReturn(EXPECTED_VERSION).atLeastOnce();
- expect(sch1_1.getDesiredStackVersion()).andReturn(m_desidredStackId).atLeastOnce();
expect(sch1_2.getServiceName()).andReturn("BAR").atLeastOnce();
expect(sch1_2.getServiceComponentName()).andReturn("BAR_COMPONENT").atLeastOnce();
expect(sch1_2.getVersion()).andReturn(EXPECTED_VERSION).atLeastOnce();
- expect(sch1_2.getDesiredStackVersion()).andReturn(m_desidredStackId).atLeastOnce();
expect(sch2_1.getServiceName()).andReturn("FOO").atLeastOnce();
expect(sch2_1.getServiceComponentName()).andReturn("FOO_COMPONENT").atLeastOnce();
expect(sch2_1.getVersion()).andReturn(EXPECTED_VERSION).atLeastOnce();
- expect(sch2_1.getDesiredStackVersion()).andReturn(m_desidredStackId).atLeastOnce();
expect(sch2_2.getServiceName()).andReturn("BAZ").atLeastOnce();
expect(sch2_2.getServiceComponentName()).andReturn("BAZ_COMPONENT").atLeastOnce();
expect(sch2_2.getVersion()).andReturn(EXPECTED_VERSION).atLeastOnce();
- expect(sch2_2.getDesiredStackVersion()).andReturn(m_desidredStackId).atLeastOnce();
m_hostComponentMap.get(HOSTNAME_1).add(sch1_1);
m_hostComponentMap.get(HOSTNAME_1).add(sch1_2);
@@ -179,14 +187,7 @@ public class ComponentVersionAlertRunnableTest extends EasyMockSupport {
expect(m_cluster.getClusterId()).andReturn(CLUSTER_ID).atLeastOnce();
expect(m_cluster.getClusterName()).andReturn(CLUSTER_NAME).atLeastOnce();
expect(m_cluster.getHosts()).andReturn(m_hosts).atLeastOnce();
-
- ClusterVersionEntity clusterVersionEntity = createNiceMock(ClusterVersionEntity.class);
- RepositoryVersionEntity repositoryVersionEntity = createNiceMock(RepositoryVersionEntity.class);
- expect(clusterVersionEntity.getRepositoryVersion()).andReturn(
- repositoryVersionEntity).anyTimes();
-
- expect(repositoryVersionEntity.getVersion()).andReturn(EXPECTED_VERSION).anyTimes();
- expect(m_cluster.getCurrentClusterVersion()).andReturn(clusterVersionEntity).anyTimes();
+ expect(m_cluster.getService(EasyMock.anyString())).andReturn(service).atLeastOnce();
// mock clusters
expect(m_clusters.getClusters()).andReturn(clusterMap).atLeastOnce();
@@ -304,7 +305,6 @@ public class ComponentVersionAlertRunnableTest extends EasyMockSupport {
expect(sch.getServiceName()).andReturn("FOO").atLeastOnce();
expect(sch.getServiceComponentName()).andReturn("FOO_COMPONENT").atLeastOnce();
expect(sch.getVersion()).andReturn(WRONG_VERSION).atLeastOnce();
- expect(sch.getDesiredStackVersion()).andReturn(m_desidredStackId).atLeastOnce();
replayAll();
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/api/resources/BaseResourceDefinitionTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/resources/BaseResourceDefinitionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/resources/BaseResourceDefinitionTest.java
index 8e83f56..8bbd49a 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/resources/BaseResourceDefinitionTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/resources/BaseResourceDefinitionTest.java
@@ -52,6 +52,7 @@ import org.apache.ambari.server.controller.spi.Resource;
import org.apache.ambari.server.controller.spi.ResourceProvider;
import org.apache.ambari.server.controller.utilities.PropertyHelper;
import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
+import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
import org.apache.ambari.server.state.Service;
import org.apache.ambari.server.view.ViewRegistry;
import org.easymock.EasyMock;
@@ -88,25 +89,28 @@ public class BaseResourceDefinitionTest {
TreeNode<Resource> serviceNode = new TreeNodeImpl<>(parentNode, service, "service1");
parentNode.setProperty("isCollection", "true");
-
+
ResourceProviderFactory factory = createMock(ResourceProviderFactory.class);
MaintenanceStateHelper maintenanceStateHelper = createNiceMock(MaintenanceStateHelper.class);
AmbariManagementController managementController = createMock(AmbariManagementController.class);
+ RepositoryVersionDAO repositoryVersionDAO = createNiceMock(RepositoryVersionDAO.class);
+
expect(maintenanceStateHelper.isOperationAllowed(anyObject(Resource.Type.class),
anyObject(Service.class))).andReturn(true).anyTimes();
- ResourceProvider serviceResourceProvider = new ServiceResourceProvider(PropertyHelper
- .getPropertyIds(Resource.Type.Service),
- PropertyHelper.getKeyPropertyIds(Resource.Type.Service),
- managementController, maintenanceStateHelper);
-
+
+ ResourceProvider serviceResourceProvider = new ServiceResourceProvider(
+ PropertyHelper.getPropertyIds(Resource.Type.Service),
+ PropertyHelper.getKeyPropertyIds(Resource.Type.Service), managementController,
+ maintenanceStateHelper, repositoryVersionDAO);
+
expect(factory.getServiceResourceProvider(EasyMock.<Set<String>>anyObject(),
EasyMock.<Map<Resource.Type, String>>anyObject(),
anyObject(AmbariManagementController.class))).andReturn(serviceResourceProvider);
-
+
AbstractControllerResourceProvider.init(factory);
-
+
replay(factory, managementController, maintenanceStateHelper);
-
+
processor.process(null, serviceNode, "http://c6401.ambari.apache.org:8080/api/v1/clusters/c1/services");
String href = serviceNode.getStringProperty("href");
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
index c9acfe9..e0d399d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/AmbariMetaInfoTest.java
@@ -60,6 +60,7 @@ import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
import org.apache.ambari.server.orm.dao.MetainfoDAO;
import org.apache.ambari.server.orm.entities.AlertDefinitionEntity;
import org.apache.ambari.server.orm.entities.MetainfoEntity;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.stack.StackManager;
import org.apache.ambari.server.stack.StackManagerFactory;
import org.apache.ambari.server.state.AutoDeployInfo;
@@ -1911,6 +1912,9 @@ public class AmbariMetaInfoTest {
*/
@Test
public void testAlertDefinitionMerging() throws Exception {
+ final String stackVersion = "2.0.6";
+ final String repoVersion = "2.0.6-1234";
+
Injector injector = Guice.createInjector(Modules.override(
new InMemoryDefaultTestModule()).with(new MockModule()));
@@ -1918,8 +1922,9 @@ public class AmbariMetaInfoTest {
injector.getInstance(GuiceJpaInitializer.class);
injector.getInstance(EntityManager.class);
- long clusterId = injector.getInstance(OrmTestHelper.class).createCluster(
- "cluster" + System.currentTimeMillis());
+
+ OrmTestHelper ormHelper = injector.getInstance(OrmTestHelper.class);
+ long clusterId = ormHelper.createCluster("cluster" + System.currentTimeMillis());
Class<?> c = metaInfo.getClass().getSuperclass();
@@ -1934,9 +1939,12 @@ public class AmbariMetaInfoTest {
Clusters clusters = injector.getInstance(Clusters.class);
Cluster cluster = clusters.getClusterById(clusterId);
cluster.setDesiredStackVersion(
- new StackId(STACK_NAME_HDP, "2.0.6"));
+ new StackId(STACK_NAME_HDP, stackVersion));
+
+ RepositoryVersionEntity repositoryVersion = ormHelper.getOrCreateRepositoryVersion(
+ cluster.getCurrentStackVersion(), repoVersion);
- cluster.addService("HDFS");
+ cluster.addService("HDFS", repositoryVersion);
metaInfo.reconcileAlertDefinitions(clusters);
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/configuration/RecoveryConfigHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/configuration/RecoveryConfigHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/configuration/RecoveryConfigHelperTest.java
index 3a93fbf..00fc962 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/configuration/RecoveryConfigHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/configuration/RecoveryConfigHelperTest.java
@@ -36,19 +36,22 @@ import org.apache.ambari.server.H2DatabaseCleaner;
import org.apache.ambari.server.agent.HeartbeatTestHelper;
import org.apache.ambari.server.agent.RecoveryConfig;
import org.apache.ambari.server.agent.RecoveryConfigHelper;
-import org.apache.ambari.server.events.publishers.AmbariEventPublisher;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
+import org.apache.ambari.server.orm.dao.RepositoryVersionDAO;
+import org.apache.ambari.server.orm.entities.RepositoryVersionEntity;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Config;
import org.apache.ambari.server.state.MaintenanceState;
import org.apache.ambari.server.state.Service;
+import org.apache.ambari.server.state.StackId;
import org.apache.ambari.server.state.State;
import org.apache.ambari.server.utils.EventBusSynchronizer;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import com.google.common.collect.Sets;
import com.google.common.eventbus.EventBus;
import com.google.inject.Guice;
import com.google.inject.Inject;
@@ -69,7 +72,16 @@ public class RecoveryConfigHelperTest {
private RecoveryConfigHelper recoveryConfigHelper;
@Inject
- private AmbariEventPublisher eventPublisher;
+ private RepositoryVersionDAO repositoryVersionDAO;
+
+ /**
+ * The repository created when creating the test cluster.
+ */
+ private RepositoryVersionEntity repositoryVersion;
+
+ private final String STACK_VERSION = "0.1";
+ private final String REPO_VERSION = "0.1-1234";
+ private final StackId stackId = new StackId("HDP", STACK_VERSION);
@Before
public void setup() throws Exception {
@@ -114,7 +126,7 @@ public class RecoveryConfigHelperTest {
public void testRecoveryConfigValues()
throws Exception {
String hostname = "hostname1";
- Cluster cluster = getDummyCluster(hostname);
+ Cluster cluster = getDummyCluster(Sets.newHashSet(hostname));
RecoveryConfig recoveryConfig = recoveryConfigHelper.getRecoveryConfig(cluster.getClusterName(), hostname);
assertEquals(recoveryConfig.getMaxLifetimeCount(), "10");
assertEquals(recoveryConfig.getMaxCount(), "4");
@@ -134,7 +146,8 @@ public class RecoveryConfigHelperTest {
public void testServiceComponentInstalled()
throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ repositoryVersion = repositoryVersionDAO.findByStackAndVersion(stackId, REPO_VERSION);
+ Service hdfs = cluster.addService(HDFS, repositoryVersion);
hdfs.addServiceComponent(DATANODE).setRecoveryEnabled(true);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
@@ -167,7 +180,8 @@ public class RecoveryConfigHelperTest {
public void testServiceComponentUninstalled()
throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ repositoryVersion = repositoryVersionDAO.findByStackAndVersion(stackId, REPO_VERSION);
+ Service hdfs = cluster.addService(HDFS, repositoryVersion);
hdfs.addServiceComponent(DATANODE).setRecoveryEnabled(true);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
@@ -202,7 +216,8 @@ public class RecoveryConfigHelperTest {
public void testClusterEnvConfigChanged()
throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ repositoryVersion = repositoryVersionDAO.findByStackAndVersion(stackId, REPO_VERSION);
+ Service hdfs = cluster.addService(HDFS, repositoryVersion);
hdfs.addServiceComponent(DATANODE).setRecoveryEnabled(true);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
@@ -241,7 +256,8 @@ public class RecoveryConfigHelperTest {
public void testMaintenanceModeChanged()
throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ repositoryVersion = repositoryVersionDAO.findByStackAndVersion(stackId, REPO_VERSION);
+ Service hdfs = cluster.addService(HDFS, repositoryVersion);
hdfs.addServiceComponent(DATANODE).setRecoveryEnabled(true);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
@@ -275,7 +291,8 @@ public class RecoveryConfigHelperTest {
public void testServiceComponentRecoveryChanged()
throws Exception {
Cluster cluster = heartbeatTestHelper.getDummyCluster();
- Service hdfs = cluster.addService(HDFS);
+ repositoryVersion = repositoryVersionDAO.findByStackAndVersion(stackId, REPO_VERSION);
+ Service hdfs = cluster.addService(HDFS, repositoryVersion);
hdfs.addServiceComponent(DATANODE).setRecoveryEnabled(true);
hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1);
@@ -316,7 +333,7 @@ public class RecoveryConfigHelperTest {
Cluster cluster = getDummyCluster(hostNames);
// Add HDFS service with DATANODE component to the cluster
- Service hdfs = cluster.addService(HDFS);
+ Service hdfs = cluster.addService(HDFS, repositoryVersion);
hdfs.addServiceComponent(DATANODE).setRecoveryEnabled(true);
@@ -349,16 +366,11 @@ public class RecoveryConfigHelperTest {
put(RecoveryConfigHelper.RECOVERY_RETRY_GAP_KEY, "2");
}};
- return heartbeatTestHelper.getDummyCluster("cluster1", "HDP-0.1", configProperties, hostNames);
- }
-
- private Cluster getDummyCluster(final String hostname)
- throws Exception {
-
- Set<String> hostNames = new HashSet<String>(){{
- add(hostname);
- }};
+ Cluster cluster = heartbeatTestHelper.getDummyCluster("cluster1", stackId, REPO_VERSION,
+ configProperties, hostNames);
- return getDummyCluster(hostNames);
+ repositoryVersion = repositoryVersionDAO.findByStackAndVersion(stackId, REPO_VERSION);
+ assertNotNull(repositoryVersion);
+ return cluster;
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/dcbd826c/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
index 71a02f5..b0d085b 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelperTest.java
@@ -47,6 +47,9 @@ import org.apache.ambari.server.controller.spi.Resource;
import org.apache.ambari.server.metadata.ActionMetadata;
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;
@@ -131,7 +134,7 @@ public class AmbariCustomCommandExecutionHelperTest {
StageUtils.setConfiguration(injector.getInstance(Configuration.class));
SecurityContextHolder.getContext().setAuthentication(TestAuthenticationFactory.createAdministrator());
- createClusterFixture("c1", "HDP-2.0.6", "c1");
+ createClusterFixture("c1", new StackId("HDP-2.0.6"), "2.0.6-1234", "c1");
EasyMock.expect(hostRoleCommand.getTaskId()).andReturn(1L);
EasyMock.expect(hostRoleCommand.getStageId()).andReturn(1L);
@@ -515,7 +518,7 @@ public class AmbariCustomCommandExecutionHelperTest {
public void testIsTopologyRefreshRequired() throws Exception {
AmbariCustomCommandExecutionHelper helper = injector.getInstance(AmbariCustomCommandExecutionHelper.class);
- createClusterFixture("c2", "HDP-2.1.1", "c2");
+ createClusterFixture("c2", new StackId("HDP-2.1.1"), "2.1.1.0-1234", "c2");
Assert.assertTrue(helper.isTopologyRefreshRequired("START", "c2", "HDFS"));
Assert.assertTrue(helper.isTopologyRefreshRequired("RESTART", "c2", "HDFS"));
@@ -552,20 +555,27 @@ public class AmbariCustomCommandExecutionHelperTest {
}
}
- private void createClusterFixture(String clusterName, String stackVersion, String hostPrefix) throws AmbariException, AuthorizationException {
+ private void createClusterFixture(String clusterName, StackId stackId,
+ String respositoryVersion, String hostPrefix) throws AmbariException, AuthorizationException {
String hostC6401 = hostPrefix + "-c6401";
String hostC6402 = hostPrefix + "-c6402";
- createCluster(clusterName, stackVersion);
+ OrmTestHelper ormTestHelper = injector.getInstance(OrmTestHelper.class);
+ RepositoryVersionEntity repositoryVersion = ormTestHelper.getOrCreateRepositoryVersion(stackId,
+ respositoryVersion);
+
+ createCluster(clusterName, stackId.getStackId());
addHost(hostC6401, clusterName);
addHost(hostC6402, clusterName);
- clusters.getCluster(clusterName);
- createService(clusterName, "YARN", null);
- createService(clusterName, "GANGLIA", null);
- createService(clusterName, "ZOOKEEPER", null);
- createService(clusterName, "FLUME", null);
+ Cluster cluster = clusters.getCluster(clusterName);
+ Assert.assertNotNull(cluster);
+
+ createService(clusterName, "YARN", repositoryVersion);
+ createService(clusterName, "GANGLIA", repositoryVersion);
+ createService(clusterName, "ZOOKEEPER", repositoryVersion);
+ createService(clusterName, "FLUME", repositoryVersion);
createServiceComponent(clusterName, "YARN", "RESOURCEMANAGER", State.INIT);
createServiceComponent(clusterName, "YARN", "NODEMANAGER", State.INIT);
@@ -576,7 +586,6 @@ public class AmbariCustomCommandExecutionHelperTest {
// this component should be not installed on any host
createServiceComponent(clusterName, "FLUME", "FLUME_HANDLER", State.INIT);
-
createServiceComponentHost(clusterName, "YARN", "RESOURCEMANAGER", hostC6401, null);
createServiceComponentHost(clusterName, "YARN", "NODEMANAGER", hostC6401, null);
createServiceComponentHost(clusterName, "GANGLIA", "GANGLIA_SERVER", hostC6401, State.INIT);
@@ -609,17 +618,17 @@ public class AmbariCustomCommandExecutionHelperTest {
ambariManagementController.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);
+ private void createService(String clusterName, String serviceName,
+ RepositoryVersionEntity repositoryVersion) throws AmbariException, AuthorizationException {
+
+ ServiceRequest r1 = new ServiceRequest(clusterName, serviceName,
+ repositoryVersion.getStackId().getStackId(), repositoryVersion.getVersion(), null, "false");
+
Set<ServiceRequest> requests = new HashSet<>();
requests.add(r1);
- ServiceResourceProviderTest.createServices(ambariManagementController, requests);
+ ServiceResourceProviderTest.createServices(ambariManagementController,
+ injector.getInstance(RepositoryVersionDAO.class), requests);
}
private void createServiceComponent(String clusterName,