http://git-wip-us.apache.org/repos/asf/ambari/blob/56362fd6/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatProcessorTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatProcessorTest.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatProcessorTest.java index 36142f7..37e68d0 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatProcessorTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatProcessorTest.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -30,7 +30,6 @@ import static org.apache.ambari.server.agent.DummyHeartbeatConstants.HDFS; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.HDFS_CLIENT; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.NAMENODE; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.SECONDARY_NAMENODE; -import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.junit.Assert.assertEquals; @@ -63,6 +62,7 @@ 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.OrmTestHelper; import org.apache.ambari.server.orm.dao.HostDAO; import org.apache.ambari.server.orm.dao.RepositoryVersionDAO; import org.apache.ambari.server.orm.entities.HostEntity; @@ -86,22 +86,17 @@ import org.apache.ambari.server.utils.EventBusSynchronizer; import org.apache.ambari.server.utils.StageUtils; import org.easymock.EasyMock; import org.junit.After; +import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import com.google.gson.JsonObject; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; -import com.google.inject.persist.UnitOfWork; - -import junit.framework.Assert; public class HeartbeatProcessorTest { - private static final Logger log = LoggerFactory.getLogger(TestHeartbeatHandler.class); private Injector injector; private long requestId = 23; private long stageId = 31; @@ -110,9 +105,6 @@ public class HeartbeatProcessorTest { private Clusters clusters; @Inject - private UnitOfWork unitOfWork; - - @Inject Configuration config; @Inject @@ -136,6 +128,9 @@ public class HeartbeatProcessorTest { @Inject private AmbariMetaInfo metaInfo; + @Inject + private OrmTestHelper helper; + public HeartbeatProcessorTest(){ InMemoryDefaultTestModule module = HeartbeatTestHelper.getTestModule(); @@ -157,10 +152,9 @@ public class HeartbeatProcessorTest { } @Test - @SuppressWarnings("unchecked") public void testHeartbeatWithConfigs() 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); @@ -182,7 +176,7 @@ public class HeartbeatProcessorTest { hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); hb.setHostname(DummyHostname1); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(requestId, stageId)); cr.setServiceName(HDFS); @@ -210,7 +204,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}); @@ -226,10 +220,9 @@ public class HeartbeatProcessorTest { } @Test - @SuppressWarnings("unchecked") public void testRestartRequiredAfterInstallClient() throws Exception { Cluster cluster = heartbeatTestHelper.getDummyCluster(); - Service hdfs = cluster.addService(HDFS); + Service hdfs = addService(cluster, HDFS); hdfs.addServiceComponent(HDFS_CLIENT); hdfs.getServiceComponent(HDFS_CLIENT).addServiceComponentHost(DummyHostname1); @@ -247,7 +240,7 @@ public class HeartbeatProcessorTest { hb.setHostname(DummyHostname1); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(requestId, stageId)); cr.setServiceName(HDFS); @@ -272,7 +265,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -291,10 +284,9 @@ public class HeartbeatProcessorTest { @Test - @SuppressWarnings("unchecked") public void testHeartbeatCustomCommandWithConfigs() 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); @@ -316,7 +308,7 @@ public class HeartbeatProcessorTest { hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); hb.setHostname(DummyHostname1); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(requestId, stageId)); cr.setServiceName(HDFS); @@ -356,7 +348,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -375,10 +367,9 @@ public class HeartbeatProcessorTest { } @Test - @SuppressWarnings("unchecked") public void testHeartbeatCustomStartStop() 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); @@ -402,7 +393,7 @@ public class HeartbeatProcessorTest { hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); hb.setHostname(DummyHostname1); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(requestId, stageId)); cr.setServiceName(HDFS); @@ -438,7 +429,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -459,10 +450,9 @@ public class HeartbeatProcessorTest { } @Test - @SuppressWarnings("unchecked") 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); @@ -490,7 +480,7 @@ public class HeartbeatProcessorTest { hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); hb.setReports(new ArrayList<CommandReport>()); - ArrayList<ComponentStatus> componentStatuses = new ArrayList<ComponentStatus>(); + ArrayList<ComponentStatus> componentStatuses = new ArrayList<>(); ComponentStatus componentStatus1 = new ComponentStatus(); componentStatus1.setClusterName(DummyCluster); componentStatus1.setServiceName(HDFS); @@ -511,7 +501,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -524,7 +514,8 @@ public class HeartbeatProcessorTest { State componentState1 = serviceComponentHost1.getState(); State componentState2 = serviceComponentHost2.getState(); State componentState3 = serviceComponentHost3.getState(); - assertEquals(State.STARTED, componentState1);assertEquals(State.INSTALLED, componentState2); + assertEquals(State.STARTED, componentState1); + assertEquals(State.INSTALLED, componentState2); assertEquals(SecurityState.SECURING, serviceComponentHost2.getSecurityState()); //starting state will not be overridden by status command assertEquals(State.STARTING, componentState3); @@ -547,7 +538,7 @@ public class HeartbeatProcessorTest { Assert.assertEquals(stageId, stage.getStageId()); stage.setHostRoleStatus(DummyHostname1, HBASE_MASTER, HostRoleStatus.QUEUED); db.hostRoleScheduled(stage, DummyHostname1, HBASE_MASTER); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(requestId, stageId)); cr.setTaskId(1); @@ -583,11 +574,10 @@ public class HeartbeatProcessorTest { * @throws InvalidStateTransitionException */ @Test - @SuppressWarnings("unchecked") public void testCommandReportOnHeartbeatUpdatedState() throws Exception { Cluster cluster = heartbeatTestHelper.getDummyCluster(); - Service hdfs = cluster.addService(HDFS); + Service hdfs = addService(cluster, HDFS); hdfs.addServiceComponent(DATANODE); hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1); @@ -603,7 +593,7 @@ public class HeartbeatProcessorTest { hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(requestId, stageId)); cr.setTaskId(1); @@ -623,7 +613,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}).anyTimes(); @@ -703,10 +693,9 @@ public class HeartbeatProcessorTest { } @Test - @SuppressWarnings("unchecked") public void testUpgradeSpecificHandling() throws Exception { Cluster cluster = heartbeatTestHelper.getDummyCluster(); - Service hdfs = cluster.addService(HDFS); + Service hdfs = addService(cluster, HDFS); hdfs.addServiceComponent(DATANODE); hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1); @@ -722,7 +711,7 @@ public class HeartbeatProcessorTest { hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(requestId, stageId)); cr.setTaskId(1); @@ -742,7 +731,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}).anyTimes(); @@ -797,10 +786,9 @@ public class HeartbeatProcessorTest { @Test - @SuppressWarnings("unchecked") public void testCommandStatusProcesses() 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); @@ -814,21 +802,21 @@ public class HeartbeatProcessorTest { hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); hb.setReports(new ArrayList<CommandReport>()); - List<Map<String, String>> procs = new ArrayList<Map<String, String>>(); - Map<String, String> proc1info = new HashMap<String, String>(); + List<Map<String, String>> procs = new ArrayList<>(); + Map<String, String> proc1info = new HashMap<>(); proc1info.put("name", "a"); proc1info.put("status", "RUNNING"); procs.add(proc1info); - Map<String, String> proc2info = new HashMap<String, String>(); + Map<String, String> proc2info = new HashMap<>(); proc2info.put("name", "b"); proc2info.put("status", "NOT_RUNNING"); procs.add(proc2info); - Map<String, Object> extra = new HashMap<String, Object>(); + Map<String, Object> extra = new HashMap<>(); extra.put("processes", procs); - ArrayList<ComponentStatus> componentStatuses = new ArrayList<ComponentStatus>(); + ArrayList<ComponentStatus> componentStatuses = new ArrayList<>(); ComponentStatus componentStatus1 = new ComponentStatus(); componentStatus1.setClusterName(DummyCluster); componentStatus1.setServiceName(HDFS); @@ -844,7 +832,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}).anyTimes(); @@ -876,94 +864,9 @@ public class HeartbeatProcessorTest { } @Test - @SuppressWarnings("unchecked") - public void testComponentUpgradeCompleteReport() throws Exception { - Cluster cluster = heartbeatTestHelper.getDummyCluster(); - Service hdfs = cluster.addService(HDFS); - hdfs.addServiceComponent(DATANODE); - hdfs.getServiceComponent(DATANODE).addServiceComponentHost(DummyHostname1); - hdfs.addServiceComponent(NAMENODE); - hdfs.getServiceComponent(NAMENODE).addServiceComponentHost(DummyHostname1); - hdfs.addServiceComponent(HDFS_CLIENT); - hdfs.getServiceComponent(HDFS_CLIENT).addServiceComponentHost(DummyHostname1); - - ServiceComponentHost serviceComponentHost1 = clusters.getCluster(DummyCluster).getService(HDFS). - getServiceComponent(DATANODE).getServiceComponentHost(DummyHostname1); - ServiceComponentHost serviceComponentHost2 = clusters.getCluster(DummyCluster).getService(HDFS). - getServiceComponent(NAMENODE).getServiceComponentHost(DummyHostname1); - - StackId stack130 = new StackId("HDP-1.3.0"); - StackId stack120 = new StackId("HDP-1.2.0"); - - serviceComponentHost1.setState(State.UPGRADING); - serviceComponentHost2.setState(State.INSTALLING); - - serviceComponentHost1.setStackVersion(stack120); - serviceComponentHost1.setDesiredStackVersion(stack130); - serviceComponentHost2.setStackVersion(stack120); - - HeartBeat hb = new HeartBeat(); - hb.setTimestamp(System.currentTimeMillis()); - hb.setResponseId(0); - hb.setHostname(DummyHostname1); - hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); - CommandReport cr1 = new CommandReport(); - cr1.setActionId(StageUtils.getActionId(requestId, stageId)); - cr1.setTaskId(1); - cr1.setClusterName(DummyCluster); - cr1.setServiceName(HDFS); - cr1.setRole(DATANODE); - cr1.setStatus(HostRoleStatus.COMPLETED.toString()); - cr1.setStdErr("none"); - cr1.setStdOut("dummy output"); - cr1.setExitCode(0); - cr1.setRoleCommand(RoleCommand.UPGRADE.toString()); - - CommandReport cr2 = new CommandReport(); - cr2.setActionId(StageUtils.getActionId(requestId, stageId)); - cr2.setTaskId(2); - cr2.setClusterName(DummyCluster); - cr2.setServiceName(HDFS); - cr2.setRole(NAMENODE); - cr2.setStatus(HostRoleStatus.COMPLETED.toString()); - cr2.setStdErr("none"); - cr2.setStdOut("dummy output"); - cr2.setExitCode(0); - cr2.setRoleCommand(RoleCommand.UPGRADE.toString()); - ArrayList<CommandReport> reports = new ArrayList<CommandReport>(); - reports.add(cr1); - reports.add(cr2); - hb.setReports(reports); - - ActionQueue aq = new ActionQueue(); - final HostRoleCommand command = hostRoleCommandFactory.create(DummyHostname1, - Role.DATANODE, null, null); - - ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( - new ArrayList<HostRoleCommand>() {{ - add(command); - add(command); - }}); - replay(am); - - HeartBeatHandler handler = heartbeatTestHelper.getHeartBeatHandler(am, aq); - HeartbeatProcessor heartbeatProcessor = handler.getHeartbeatProcessor(); - heartbeatProcessor.processHeartbeat(hb); - - assertEquals("Stack version for SCH should be updated to " + - serviceComponentHost1.getDesiredStackVersion(), - stack130, serviceComponentHost1.getStackVersion()); - assertEquals("Stack version for SCH should not change ", - stack120, serviceComponentHost2.getStackVersion()); - } - - - @Test - @SuppressWarnings("unchecked") public void testComponentUpgradeFailReport() 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); @@ -982,10 +885,6 @@ public class HeartbeatProcessorTest { serviceComponentHost1.setState(State.UPGRADING); serviceComponentHost2.setState(State.INSTALLING); - serviceComponentHost1.setStackVersion(stack120); - serviceComponentHost1.setDesiredStackVersion(stack130); - serviceComponentHost2.setStackVersion(stack120); - Stage s = stageFactory.createNew(requestId, "/a/b", "cluster1", 1L, "action manager test", "commandParamsStage", "hostParamsStage"); s.setStageId(stageId); @@ -997,7 +896,7 @@ public class HeartbeatProcessorTest { new ServiceComponentHostInstallEvent(Role.NAMENODE.toString(), DummyHostname1, System.currentTimeMillis(), "HDP-1.3.0"), DummyCluster, "HDFS", false, false); - List<Stage> stages = new ArrayList<Stage>(); + List<Stage> stages = new ArrayList<>(); stages.add(s); Request request = new Request(stages, "clusterHostInfo", clusters); actionDBAccessor.persistActions(request); @@ -1045,7 +944,7 @@ public class HeartbeatProcessorTest { cr2.setStdErr("none"); cr2.setStdOut("dummy output"); cr2.setExitCode(0); - ArrayList<CommandReport> reports = new ArrayList<CommandReport>(); + ArrayList<CommandReport> reports = new ArrayList<>(); reports.add(cr1); reports.add(cr2); hb.setReports(reports); @@ -1055,7 +954,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -1071,19 +970,14 @@ public class HeartbeatProcessorTest { assertEquals("State of SCH should change after fail report", State.INSTALL_FAILED, serviceComponentHost2.getState()); assertEquals("Stack version of SCH should not change after fail report", - stack120, serviceComponentHost1.getStackVersion()); - assertEquals("Stack version of SCH should not change after fail report", - stack130, serviceComponentHost1.getDesiredStackVersion()); - assertEquals("Stack version of SCH should not change after fail report", State.INSTALL_FAILED, serviceComponentHost2.getState()); } @Test - @SuppressWarnings("unchecked") public void testComponentUpgradeInProgressReport() 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); @@ -1102,10 +996,6 @@ public class HeartbeatProcessorTest { serviceComponentHost1.setState(State.UPGRADING); serviceComponentHost2.setState(State.INSTALLING); - serviceComponentHost1.setStackVersion(stack120); - serviceComponentHost1.setDesiredStackVersion(stack130); - serviceComponentHost2.setStackVersion(stack120); - HeartBeat hb = new HeartBeat(); hb.setTimestamp(System.currentTimeMillis()); hb.setResponseId(0); @@ -1134,7 +1024,7 @@ public class HeartbeatProcessorTest { cr2.setStdErr("none"); cr2.setStdOut("dummy output"); cr2.setExitCode(777); - ArrayList<CommandReport> reports = new ArrayList<CommandReport>(); + ArrayList<CommandReport> reports = new ArrayList<>(); reports.add(cr1); reports.add(cr2); hb.setReports(reports); @@ -1144,7 +1034,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -1155,8 +1045,6 @@ public class HeartbeatProcessorTest { handler.handleHeartBeat(hb); assertEquals("State of SCH not change while operation is in progress", State.UPGRADING, serviceComponentHost1.getState()); - assertEquals("Stack version of SCH should not change after in progress report", - stack130, serviceComponentHost1.getDesiredStackVersion()); assertEquals("State of SCH not change while operation is in progress", State.INSTALLING, serviceComponentHost2.getState()); } @@ -1169,11 +1057,10 @@ public class HeartbeatProcessorTest { * @throws Exception */ @Test - @SuppressWarnings("unchecked") public void testHeartBeatWithAlertAndInvalidCluster() throws Exception { ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>()); replay(am); @@ -1235,11 +1122,12 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( Collections.singletonList(command)).anyTimes(); replay(am); Cluster cluster = heartbeatTestHelper.getDummyCluster(); + HeartBeatHandler handler = heartbeatTestHelper.getHeartBeatHandler(am, new ActionQueue()); HeartbeatProcessor heartbeatProcessor = handler.getHeartbeatProcessor(); HeartBeat hb = new HeartBeat(); @@ -1247,7 +1135,7 @@ public class HeartbeatProcessorTest { JsonObject json = new JsonObject(); json.addProperty("actual_version", "2.2.1.0-2222"); json.addProperty("package_installation_result", "SUCCESS"); - json.addProperty("installed_repository_version", "0.1"); + json.addProperty("installed_repository_version", "0.1-1234"); json.addProperty("stack_id", cluster.getDesiredStackVersion().getStackId()); @@ -1273,23 +1161,19 @@ public class HeartbeatProcessorTest { StackId stackId = new StackId("HDP", "0.1"); RepositoryVersionDAO dao = injector.getInstance(RepositoryVersionDAO.class); - RepositoryVersionEntity entity = dao.findByStackAndVersion(stackId, "0.1"); + RepositoryVersionEntity entity = helper.getOrCreateRepositoryVersion(cluster); Assert.assertNotNull(entity); heartbeatProcessor.processHeartbeat(hb); - entity = dao.findByStackAndVersion(stackId, "0.1"); + entity = dao.findByStackAndVersion(stackId, "0.1-1234"); Assert.assertNull(entity); - - entity = dao.findByStackAndVersion(stackId, "2.2.1.0-2222"); - Assert.assertNotNull(entity); } @Test - @SuppressWarnings("unchecked") public void testComponentInProgressStatusSafeAfterStatusReport() throws Exception { Cluster cluster = heartbeatTestHelper.getDummyCluster(); - Service hdfs = cluster.addService(HDFS); + Service hdfs = addService(cluster, HDFS); hdfs.addServiceComponent(DATANODE); hdfs.getServiceComponent(DATANODE). addServiceComponentHost(DummyHostname1); @@ -1316,7 +1200,7 @@ public class HeartbeatProcessorTest { hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(HostStatus.Status.HEALTHY, DummyHostStatus)); hb.setReports(new ArrayList<CommandReport>()); - ArrayList<ComponentStatus> componentStatuses = new ArrayList<ComponentStatus>(); + ArrayList<ComponentStatus> componentStatuses = new ArrayList<>(); ComponentStatus componentStatus1 = new ComponentStatus(); componentStatus1.setClusterName(DummyCluster); @@ -1340,7 +1224,7 @@ public class HeartbeatProcessorTest { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -1358,5 +1242,19 @@ public class HeartbeatProcessorTest { } - -} + /** + * 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 { + RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(cluster); + return cluster.addService(serviceName, repositoryVersion); + } +} \ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/56362fd6/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatTestHelper.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatTestHelper.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatTestHelper.java index 004aa55..76f4bb3 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatTestHelper.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/HeartbeatTestHelper.java @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -21,6 +21,7 @@ import static org.apache.ambari.server.agent.DummyHeartbeatConstants.DummyCluste import static org.apache.ambari.server.agent.DummyHeartbeatConstants.DummyHostname1; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.DummyOSRelease; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.DummyOs; +import static org.apache.ambari.server.agent.DummyHeartbeatConstants.DummyRepositoryVersion; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.DummyStackId; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.HBASE; @@ -59,7 +60,6 @@ import org.apache.ambari.server.state.Clusters; import org.apache.ambari.server.state.Config; import org.apache.ambari.server.state.ConfigFactory; import org.apache.ambari.server.state.Host; -import org.apache.ambari.server.state.RepositoryVersionState; import org.apache.ambari.server.state.StackId; import org.apache.ambari.server.state.cluster.ClustersImpl; import org.apache.ambari.server.state.fsm.InvalidStateTransitionException; @@ -151,13 +151,14 @@ public class HeartbeatTestHelper { add(DummyHostname1); }}; - return getDummyCluster(DummyCluster, DummyStackId, configProperties, hostNames); + return getDummyCluster(DummyCluster, new StackId(DummyStackId), DummyRepositoryVersion, + configProperties, hostNames); } - public Cluster getDummyCluster(String clusterName, String desiredStackId, - Map<String, String> configProperties, Set<String> hostNames) + public Cluster getDummyCluster(String clusterName, StackId stackId, String repositoryVersion, + Map<String, String> configProperties, Set<String> hostNames) throws Exception { - StackEntity stackEntity = stackDAO.find(HDP_22_STACK.getStackName(), HDP_22_STACK.getStackVersion()); + StackEntity stackEntity = stackDAO.find(stackId.getStackName(), stackId.getStackVersion()); org.junit.Assert.assertNotNull(stackEntity); // Create the cluster @@ -177,8 +178,6 @@ public class HeartbeatTestHelper { clusterDAO.create(clusterEntity); - StackId stackId = new StackId(desiredStackId); - // because this test method goes around the Clusters business object, we // forcefully will refresh the internal state so that any tests which // incorrect use Clusters after calling this won't be affected @@ -196,15 +195,12 @@ public class HeartbeatTestHelper { Config config = cf.createNew(cluster, "cluster-env", "version1", configProperties, new HashMap<String, Map<String, String>>()); cluster.addDesiredConfig("user", Collections.singleton(config)); - helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion()); - cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", - RepositoryVersionState.INSTALLING); - Map<String, String> hostAttributes = new HashMap<String, String>(); + Map<String, String> hostAttributes = new HashMap<>(); hostAttributes.put("os_family", "redhat"); hostAttributes.put("os_release_version", "6.3"); - List<HostEntity> hostEntities = new ArrayList<HostEntity>(); + List<HostEntity> hostEntities = new ArrayList<>(); for(String hostName : hostNames) { clusters.addHost(hostName); Host host = clusters.getHost(hostName); @@ -230,10 +226,10 @@ public class HeartbeatTestHelper { RoleCommand.START, new ServiceComponentHostStartEvent(Role.HBASE_MASTER.toString(), DummyHostname1, System.currentTimeMillis()), DummyCluster, HBASE, false, false); - List<Stage> stages = new ArrayList<Stage>(); + List<Stage> stages = new ArrayList<>(); stages.add(s); Request request = new Request(stages, "clusterHostInfo", clusters); db.persistActions(request); } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/56362fd6/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 a19cdb5..b4c045b 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 @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -30,7 +30,6 @@ import static org.apache.ambari.server.agent.DummyHeartbeatConstants.HDFS; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.HDFS_CLIENT; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.NAMENODE; import static org.apache.ambari.server.agent.DummyHeartbeatConstants.SECONDARY_NAMENODE; -import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; import static org.easymock.EasyMock.reset; @@ -76,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.OrmTestHelper; +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; @@ -88,6 +89,7 @@ import org.apache.ambari.server.state.HostState; import org.apache.ambari.server.state.MaintenanceState; import org.apache.ambari.server.state.SecurityState; 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; @@ -144,6 +146,9 @@ public class TestHeartbeatHandler { @Inject AuditLogger auditLogger; + @Inject + private OrmTestHelper helper; + @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(); @@ -167,14 +172,13 @@ public class TestHeartbeatHandler { } @Test - @SuppressWarnings("unchecked") public void testHeartbeat() throws Exception { ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn(new ArrayList<HostRoleCommand>()); + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn(new ArrayList<HostRoleCommand>()); 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); @@ -212,7 +216,7 @@ public class TestHeartbeatHandler { HeartBeat hb = new HeartBeat(); hb.setResponseId(0); HostStatus hs = new HostStatus(Status.HEALTHY, DummyHostStatus); - List<Alert> al = new ArrayList<Alert>(); + List<Alert> al = new ArrayList<>(); al.add(new Alert()); hb.setNodeStatus(hs); hb.setHostname(hostname); @@ -222,17 +226,10 @@ public class TestHeartbeatHandler { assertEquals(0, aq.dequeueAll(hostname).size()); } - - - - - - @Test - @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); @@ -245,14 +242,14 @@ public class TestHeartbeatHandler { hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb.setReports(new ArrayList<CommandReport>()); - ArrayList<ComponentStatus> componentStatuses = new ArrayList<ComponentStatus>(); + ArrayList<ComponentStatus> componentStatuses = new ArrayList<>(); hb.setComponentStatus(componentStatuses); final HostRoleCommand command = hostRoleCommandFactory.create(DummyHostname1, Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}).anyTimes(); @@ -280,10 +277,9 @@ public class TestHeartbeatHandler { } @Test - @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); @@ -310,7 +306,7 @@ public class TestHeartbeatHandler { hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb.setReports(new ArrayList<CommandReport>()); - ArrayList<ComponentStatus> componentStatuses = new ArrayList<ComponentStatus>(); + ArrayList<ComponentStatus> componentStatuses = new ArrayList<>(); ComponentStatus componentStatus1 = new ComponentStatus(); componentStatus1.setClusterName(DummyCluster); @@ -334,7 +330,7 @@ public class TestHeartbeatHandler { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -386,7 +382,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); @@ -459,9 +455,9 @@ 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. */ hdfs.addServiceComponent(DATANODE).setRecoveryEnabled(true); @@ -563,7 +559,7 @@ public class TestHeartbeatHandler { handler.handleRegistration(reg); fail ("Expected failure for non compatible agent version"); } catch (AmbariException e) { - log.debug("Error:" + e.getMessage()); + log.debug("Error:{}", e.getMessage()); Assert.assertTrue(e.getMessage().contains( "Cannot register host with non compatible agent version")); } @@ -573,7 +569,7 @@ public class TestHeartbeatHandler { handler.handleRegistration(reg); fail ("Expected failure for non compatible agent version"); } catch (AmbariException e) { - log.debug("Error:" + e.getMessage()); + log.debug("Error:{}", e.getMessage()); Assert.assertTrue(e.getMessage().contains( "Cannot register host with non compatible agent version")); } @@ -756,7 +752,7 @@ public class TestHeartbeatHandler { @Test public void testStateCommandsAtRegistration() throws Exception, InvalidStateTransitionException { - List<StatusCommand> dummyCmds = new ArrayList<StatusCommand>(); + List<StatusCommand> dummyCmds = new ArrayList<>(); StatusCommand statusCmd1 = new StatusCommand(); statusCmd1.setClusterName(DummyCluster); statusCmd1.setServiceName(HDFS); @@ -790,10 +786,9 @@ public class TestHeartbeatHandler { } @Test - @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); @@ -813,7 +808,7 @@ public class TestHeartbeatHandler { hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(requestId, stageId)); cr.setTaskId(1); @@ -833,7 +828,7 @@ public class TestHeartbeatHandler { Role.DATANODE, null, RoleCommand.INSTALL); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}); @@ -847,10 +842,9 @@ public class TestHeartbeatHandler { } @Test - @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); @@ -871,7 +865,7 @@ public class TestHeartbeatHandler { new ServiceComponentHostInstallEvent(Role.DATANODE.toString(), DummyHostname1, System.currentTimeMillis(), "HDP-1.3.0"), DummyCluster, "HDFS", false, false); - List<Stage> stages = new ArrayList<Stage>(); + List<Stage> stages = new ArrayList<>(); stages.add(s); Request request = new Request(stages, "clusterHostInfo", clusters); actionDBAccessor.persistActions(request); @@ -883,7 +877,7 @@ public class TestHeartbeatHandler { hb.setHostname(DummyHostname1); hb.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); - List<CommandReport> reports = new ArrayList<CommandReport>(); + List<CommandReport> reports = new ArrayList<>(); CommandReport cr = new CommandReport(); cr.setActionId(StageUtils.getActionId(1, 1)); cr.setTaskId(1); @@ -903,7 +897,7 @@ public class TestHeartbeatHandler { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}); @@ -917,14 +911,10 @@ public class TestHeartbeatHandler { componentState1); } - - - @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); @@ -939,15 +929,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()); @@ -958,7 +942,7 @@ public class TestHeartbeatHandler { hb.setAgentEnv(new AgentEnv()); hb.setMounts(new ArrayList<DiskInfo>()); - ArrayList<ComponentStatus> componentStatuses = new ArrayList<ComponentStatus>(); + ArrayList<ComponentStatus> componentStatuses = new ArrayList<>(); ComponentStatus componentStatus1 = createComponentStatus(DummyCluster, HDFS, DummyHostStatus, State.STARTED, SecurityState.UNSECURED, DATANODE, "{\"stackName\":\"HDP\",\"stackVersion\":\"1.3.0\"}"); ComponentStatus componentStatus2 = @@ -973,9 +957,7 @@ public class TestHeartbeatHandler { ActionQueue aq = new ActionQueue(); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( - new ArrayList<HostRoleCommand>() {{ - }}); + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn(new ArrayList<HostRoleCommand>()); replay(am); HeartBeatHandler handler = heartbeatTestHelper.getHeartBeatHandler(am, aq); @@ -983,25 +965,16 @@ 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()); } - - @Test - @SuppressWarnings("unchecked") public void testRecoveryStatusReports() throws Exception { Clusters fsm = clusters; 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); @@ -1013,7 +986,7 @@ public class TestHeartbeatHandler { final HostRoleCommand command = hostRoleCommandFactory.create(DummyHostname1, Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -1042,7 +1015,7 @@ public class TestHeartbeatHandler { hb1.setHostname(DummyHostname1); RecoveryReport rr = new RecoveryReport(); rr.setSummary("RECOVERABLE"); - List<ComponentRecoveryReport> compRecReports = new ArrayList<ComponentRecoveryReport>(); + List<ComponentRecoveryReport> compRecReports = new ArrayList<>(); ComponentRecoveryReport compRecReport = new ComponentRecoveryReport(); compRecReport.setLimitReached(Boolean.FALSE); compRecReport.setName("DATANODE"); @@ -1061,7 +1034,7 @@ public class TestHeartbeatHandler { hb2.setHostname(DummyHostname1); rr = new RecoveryReport(); rr.setSummary("UNRECOVERABLE"); - compRecReports = new ArrayList<ComponentRecoveryReport>(); + compRecReports = new ArrayList<>(); compRecReport = new ComponentRecoveryReport(); compRecReport.setLimitReached(Boolean.TRUE); compRecReport.setName("DATANODE"); @@ -1076,13 +1049,12 @@ public class TestHeartbeatHandler { } @Test - @SuppressWarnings("unchecked") public void testProcessStatusReports() throws Exception { Clusters fsm = clusters; 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); @@ -1095,7 +1067,7 @@ public class TestHeartbeatHandler { final HostRoleCommand command = hostRoleCommandFactory.create(DummyHostname1, Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -1123,7 +1095,7 @@ public class TestHeartbeatHandler { hb1.setResponseId(0); hb1.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb1.setHostname(DummyHostname1); - List<ComponentStatus> componentStatus = new ArrayList<ComponentStatus>(); + List<ComponentStatus> componentStatus = new ArrayList<>(); ComponentStatus dataNodeStatus = new ComponentStatus(); dataNodeStatus.setClusterName(cluster.getClusterName()); dataNodeStatus.setServiceName(HDFS); @@ -1146,7 +1118,7 @@ public class TestHeartbeatHandler { hb2.setResponseId(1); hb2.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb2.setHostname(DummyHostname1); - componentStatus = new ArrayList<ComponentStatus>(); + componentStatus = new ArrayList<>(); dataNodeStatus = new ComponentStatus(); dataNodeStatus.setClusterName(cluster.getClusterName()); dataNodeStatus.setServiceName(HDFS); @@ -1171,7 +1143,7 @@ public class TestHeartbeatHandler { hb2a.setResponseId(2); hb2a.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb2a.setHostname(DummyHostname1); - componentStatus = new ArrayList<ComponentStatus>(); + componentStatus = new ArrayList<>(); dataNodeStatus = new ComponentStatus(); dataNodeStatus.setClusterName(cluster.getClusterName()); dataNodeStatus.setServiceName(HDFS); @@ -1197,7 +1169,7 @@ public class TestHeartbeatHandler { hb3.setResponseId(3); hb3.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb3.setHostname(DummyHostname1); - componentStatus = new ArrayList<ComponentStatus>(); + componentStatus = new ArrayList<>(); dataNodeStatus = new ComponentStatus(); dataNodeStatus.setClusterName(cluster.getClusterName()); dataNodeStatus.setServiceName(HDFS); @@ -1222,7 +1194,7 @@ public class TestHeartbeatHandler { assertEquals(HostHealthStatus.HealthStatus.HEALTHY.name(), hostObject.getStatus()); reset(am); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}).anyTimes(); @@ -1234,7 +1206,7 @@ public class TestHeartbeatHandler { hb4.setResponseId(5); hb4.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb4.setHostname(DummyHostname1); - componentStatus = new ArrayList<ComponentStatus>(); + componentStatus = new ArrayList<>(); dataNodeStatus = new ComponentStatus(); dataNodeStatus.setClusterName(cluster.getClusterName()); dataNodeStatus.setServiceName(HDFS); @@ -1267,7 +1239,7 @@ public class TestHeartbeatHandler { cr1.setExitCode(215); cr1.setRoleCommand("STOP"); cr1.setClusterName(DummyCluster); - ArrayList<CommandReport> reports = new ArrayList<CommandReport>(); + ArrayList<CommandReport> reports = new ArrayList<>(); reports.add(cr1); hb5.setReports(reports); handler.handleHeartBeat(hb5); @@ -1276,7 +1248,6 @@ public class TestHeartbeatHandler { } @Test - @SuppressWarnings("unchecked") public void testIgnoreCustomActionReport() throws Exception, InvalidStateTransitionException { CommandReport cr1 = new CommandReport(); cr1.setActionId(StageUtils.getActionId(requestId, stageId)); @@ -1301,7 +1272,7 @@ public class TestHeartbeatHandler { cr2.setStdOut("dummy output"); cr2.setExitCode(0); - ArrayList<CommandReport> reports = new ArrayList<CommandReport>(); + ArrayList<CommandReport> reports = new ArrayList<>(); reports.add(cr1); reports.add(cr2); @@ -1318,7 +1289,7 @@ public class TestHeartbeatHandler { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); add(command); @@ -1341,27 +1312,15 @@ public class TestHeartbeatHandler { @Test public void testComponents() throws Exception, InvalidStateTransitionException { + ComponentsResponse expected = new ComponentsResponse(); StackId dummyStackId = new StackId(DummyStackId); - Map<String, Map<String, String>> dummyComponents = new HashMap<String, Map<String, String>>(); - - Map<String, String> dummyCategoryMap = new HashMap<String, String>(); - dummyCategoryMap.put("PIG", "CLIENT"); - dummyComponents.put("PIG", dummyCategoryMap); + Map<String, Map<String, String>> dummyComponents = new HashMap<>(); - dummyCategoryMap = new HashMap<String, String>(); - dummyCategoryMap.put("MAPREDUCE_CLIENT", "CLIENT"); - dummyCategoryMap.put("JOBTRACKER", "MASTER"); - dummyCategoryMap.put("TASKTRACKER", "SLAVE"); - dummyComponents.put("MAPREDUCE", dummyCategoryMap); + Map<String, String> dummyCategoryMap = new HashMap<>(); - dummyCategoryMap = new HashMap<String, String>(); - dummyCategoryMap.put("DATANODE2", "SLAVE"); + dummyCategoryMap = new HashMap<>(); dummyCategoryMap.put("NAMENODE", "MASTER"); - dummyCategoryMap.put("HDFS_CLIENT", "CLIENT"); - dummyCategoryMap.put("DATANODE1", "SLAVE"); - dummyCategoryMap.put("SECONDARY_NAMENODE", "MASTER"); - dummyCategoryMap.put("DATANODE", "SLAVE"); dummyComponents.put("HDFS", dummyCategoryMap); expected.setClusterName(DummyCluster); @@ -1369,7 +1328,22 @@ public class TestHeartbeatHandler { expected.setStackVersion(dummyStackId.getStackVersion()); expected.setComponents(dummyComponents); - heartbeatTestHelper.getDummyCluster(); + Cluster cluster = heartbeatTestHelper.getDummyCluster(); + Service service = EasyMock.createNiceMock(Service.class); + expect(service.getName()).andReturn("HDFS").atLeastOnce(); + + Map<String, ServiceComponent> componentMap = new HashMap<>(); + ServiceComponent nnComponent = EasyMock.createNiceMock(ServiceComponent.class); + expect(nnComponent.getName()).andReturn("NAMENODE").atLeastOnce(); + expect(nnComponent.getDesiredStackId()).andReturn(dummyStackId).atLeastOnce(); + componentMap.put("NAMENODE", nnComponent); + + expect(service.getServiceComponents()).andReturn(componentMap); + + replay(service, nnComponent); + + cluster.addService(service); + HeartBeatHandler handler = heartbeatTestHelper.getHeartBeatHandler( actionManagerTestHelper.getMockActionManager(), new ActionQueue()); @@ -1381,8 +1355,6 @@ public class TestHeartbeatHandler { } assertEquals(expected.getClusterName(), actual.getClusterName()); - assertEquals(expected.getStackName(), actual.getStackName()); - assertEquals(expected.getStackVersion(), actual.getStackVersion()); assertEquals(expected.getComponents(), actual.getComponents()); } @@ -1403,15 +1375,13 @@ public class TestHeartbeatHandler { } @Test - @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); - ActionQueue aq = new ActionQueue(); HeartBeat hb = new HeartBeat(); hb.setTimestamp(System.currentTimeMillis()); hb.setResponseId(0); @@ -1419,7 +1389,7 @@ public class TestHeartbeatHandler { hb.setNodeStatus(new HostStatus(Status.HEALTHY, DummyHostStatus)); hb.setReports(new ArrayList<CommandReport>()); - ArrayList<ComponentStatus> componentStatuses = new ArrayList<ComponentStatus>(); + ArrayList<ComponentStatus> componentStatuses = new ArrayList<>(); ComponentStatus componentStatus1 = new ComponentStatus(); componentStatus1.setClusterName(DummyCluster); componentStatus1.setServiceName(HDFS); @@ -1434,13 +1404,12 @@ public class TestHeartbeatHandler { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}); replay(am); - HeartBeatHandler handler = heartbeatTestHelper.getHeartBeatHandler(am, aq); ServiceComponentHost sch = hdfs.getServiceComponent(DATANODE).getServiceComponentHost(DummyHostname1); Assert.assertEquals(Integer.valueOf(0), Integer.valueOf(sch.getProcesses().size())); @@ -1506,11 +1475,11 @@ public class TestHeartbeatHandler { ExecutionCommand executionCommand = new ExecutionCommand(); - Map<String, String> hlp = new HashMap<String, String>(); + Map<String, String> hlp = new HashMap<>(); hlp.put("custom_command", "SET_KEYTAB"); executionCommand.setHostLevelParams(hlp); - Map<String, String> commandparams = new HashMap<String, String>(); + Map<String, String> commandparams = new HashMap<>(); commandparams.put(KerberosServerAction.AUTHENTICATED_USER_NAME, "admin"); commandparams.put(KerberosServerAction.DATA_DIRECTORY, createTestKeytabData().getAbsolutePath()); executionCommand.setCommandParams(commandparams); @@ -1521,7 +1490,7 @@ public class TestHeartbeatHandler { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}); @@ -1537,11 +1506,11 @@ public class TestHeartbeatHandler { ExecutionCommand executionCommand = new ExecutionCommand(); - Map<String, String> hlp = new HashMap<String, String>(); + Map<String, String> hlp = new HashMap<>(); hlp.put("custom_command", "REMOVE_KEYTAB"); executionCommand.setHostLevelParams(hlp); - Map<String, String> commandparams = new HashMap<String, String>(); + Map<String, String> commandparams = new HashMap<>(); commandparams.put(KerberosServerAction.AUTHENTICATED_USER_NAME, "admin"); commandparams.put(KerberosServerAction.DATA_DIRECTORY, createTestKeytabData().getAbsolutePath()); executionCommand.setCommandParams(commandparams); @@ -1552,7 +1521,7 @@ public class TestHeartbeatHandler { Role.DATANODE, null, null); ActionManager am = actionManagerTestHelper.getMockActionManager(); - expect(am.getTasks(anyObject(List.class))).andReturn( + expect(am.getTasks(EasyMock.<List<Long>>anyObject())).andReturn( new ArrayList<HostRoleCommand>() {{ add(command); }}); @@ -1593,4 +1562,20 @@ 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 { + RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(cluster); + return cluster.addService(serviceName, repositoryVersion); + } + +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/56362fd6/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 1b9c28b..61e322f 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 @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -41,13 +41,13 @@ 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; import org.apache.ambari.server.state.ConfigFactory; import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.HostState; -import org.apache.ambari.server.state.RepositoryVersionState; import org.apache.ambari.server.state.Service; import org.apache.ambari.server.state.ServiceComponent; import org.apache.ambari.server.state.ServiceComponentHost; @@ -74,7 +74,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; @@ -98,7 +97,7 @@ public class TestHeartbeatMonitor { } private void setOsFamily(Host host, String osFamily, String osVersion) { - Map<String, String> hostAttributes = new HashMap<String, String>(); + Map<String, String> hostAttributes = new HashMap<>(); hostAttributes.put("os_family", osFamily); hostAttributes.put("os_release_version", osVersion); @@ -151,9 +150,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()); - cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", - RepositoryVersionState.INSTALLING); + + RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId, + stackId.getStackVersion()); + Set<String> hostNames = new HashSet<String>(){{ add(hostname1); add(hostname2); @@ -166,7 +166,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,9 +233,9 @@ public class TestHeartbeatMonitor { clusters.addCluster(clusterName, stackId); Cluster cluster = clusters.getCluster(clusterName); - helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion()); - cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", - RepositoryVersionState.INSTALLING); + RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId, + stackId.getStackVersion()); + Set<String> hostNames = new HashSet<String>() {{ add(hostname1); add(hostname2); @@ -246,6 +246,8 @@ public class TestHeartbeatMonitor { new HashMap<String, String>() {{ put("a", "b"); }}, new HashMap<String, Map<String,String>>()); + + Config hbaseEnvConfig = configFactory.createNew(cluster, "hbase-env", "version1", new HashMap<String, String>() {{ put("a", "b"); @@ -255,7 +257,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,9 +355,8 @@ public class TestHeartbeatMonitor { clusters.addCluster(clusterName, stackId); Cluster cluster = clusters.getCluster(clusterName); - helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion()); - cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", - RepositoryVersionState.INSTALLING); + RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId, + stackId.getStackVersion()); Set<String> hostNames = new HashSet<String>(){{ add(hostname1); @@ -363,7 +364,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,9 +436,8 @@ public class TestHeartbeatMonitor { clusters.addCluster(clusterName, stackId); Cluster cluster = clusters.getCluster(clusterName); - helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion()); - cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", - RepositoryVersionState.INSTALLING); + RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId, + stackId.getStackVersion()); Set<String> hostNames = new HashSet<String>(){{ add(hostname1); @@ -445,7 +445,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,9 +553,8 @@ public class TestHeartbeatMonitor { Cluster cluster = clusters.getCluster(clusterName); cluster.setDesiredStackVersion(stackId); - helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion()); - cluster.createClusterVersion(stackId, stackId.getStackVersion(), "admin", - RepositoryVersionState.INSTALLING); + RepositoryVersionEntity repositoryVersion = helper.getOrCreateRepositoryVersion(stackId, + stackId.getStackVersion()); Set<String> hostNames = new HashSet<String>(){{ add(hostname1); @@ -564,7 +563,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); @@ -607,4 +606,4 @@ public class TestHeartbeatMonitor { cmds = hm.generateStatusCommands(hostname2); assertTrue("HeartbeatMonitor should not generate StatusCommands for host2 because it has no services", cmds.isEmpty()); } -} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ambari/blob/56362fd6/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 7342411..a536da6 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 @@ -1,4 +1,4 @@ -/** +/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information @@ -18,15 +18,23 @@ package org.apache.ambari.server.api.resources; +import static org.easymock.EasyMock.anyObject; import static org.easymock.EasyMock.createMock; import static org.easymock.EasyMock.createNiceMock; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.anyObject; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; +import java.util.Arrays; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.api.handlers.BaseManagementHandler; import org.apache.ambari.server.api.query.render.DefaultRenderer; @@ -41,23 +49,14 @@ import org.apache.ambari.server.controller.internal.ResourceImpl; import org.apache.ambari.server.controller.internal.ServiceResourceProvider; 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.junit.Assert; import org.junit.Before; import org.junit.Test; -import java.util.Arrays; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - /** * BaseResourceDefinition tests. */ @@ -83,29 +82,30 @@ public class BaseResourceDefinitionTest { Resource service = new ResourceImpl(Resource.Type.Service); service.setProperty("ServiceInfo/service_name", "Service1"); - TreeNode<Resource> parentNode = new TreeNodeImpl<Resource>(null, null, "services"); - TreeNode<Resource> serviceNode = new TreeNodeImpl<Resource>(parentNode, service, "service1"); + TreeNode<Resource> parentNode = new TreeNodeImpl<>(null, null, "services"); + 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); - - expect(factory.getServiceResourceProvider(anyObject(Set.class), - anyObject(Map.class), + + ResourceProvider serviceResourceProvider = new ServiceResourceProvider(managementController, + maintenanceStateHelper, repositoryVersionDAO); + + expect( + factory.getServiceResourceProvider( 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"); @@ -116,8 +116,8 @@ public class BaseResourceDefinitionTest { Resource configGroup = new ResourceImpl(Resource.Type.ConfigGroup); configGroup.setProperty("ConfigGroup/id", "2"); - TreeNode<Resource> resourcesNode = new TreeNodeImpl<Resource>(null, null, BaseManagementHandler.RESOURCES_NODE_NAME); - TreeNode<Resource> configGroupNode = new TreeNodeImpl<Resource>(resourcesNode, configGroup, "configGroup1"); + TreeNode<Resource> resourcesNode = new TreeNodeImpl<>(null, null, BaseManagementHandler.RESOURCES_NODE_NAME); + TreeNode<Resource> configGroupNode = new TreeNodeImpl<>(resourcesNode, configGroup, "configGroup1"); resourcesNode.setProperty("isCollection", "true"); @@ -148,9 +148,9 @@ public class BaseResourceDefinitionTest { public void testReadDirectives() { ResourceDefinition resource = getResourceDefinition(); - assertEquals(Collections.EMPTY_SET, resource.getReadDirectives()); + assertEquals(Collections.emptySet(), resource.getReadDirectives()); - Map<BaseResourceDefinition.DirectiveType, List<String>> directives = new HashMap<BaseResourceDefinition.DirectiveType, List<String>>(); + Map<BaseResourceDefinition.DirectiveType, List<String>> directives = new HashMap<>(); directives.put(BaseResourceDefinition.DirectiveType.DELETE, Arrays.asList("do_something_delete", "do_something_else_delete")); directives.put(BaseResourceDefinition.DirectiveType.READ, Arrays.asList("do_something_get", "do_something_else_get")); directives.put(BaseResourceDefinition.DirectiveType.CREATE, Arrays.asList("do_something_post", "do_something_else_post")); @@ -192,4 +192,4 @@ public class BaseResourceDefinitionTest { } }; } -} +} \ No newline at end of file
