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,
