Repository: stratos Updated Branches: refs/heads/master 48cca3983 -> acdafd103
fixing faulty member detection by using member id as instance id in mock IaaS Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/acdafd10 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/acdafd10 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/acdafd10 Branch: refs/heads/master Commit: acdafd103274260561df772813c74265b737256c Parents: 27a6d76 Author: reka <[email protected]> Authored: Tue Aug 18 17:06:11 2015 +0530 Committer: reka <[email protected]> Committed: Tue Aug 18 17:06:50 2015 +0530 ---------------------------------------------------------------------- .../iaas/services/impl/MockIaasServiceImpl.java | 2 +- .../integration/tests/TopologyHandler.java | 9 ++-- .../application/GroupStartupOrderTest.java | 10 +--- .../GroupTerminationBehaviorTest.java | 48 ++++++++++++++++---- 4 files changed, 46 insertions(+), 23 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/acdafd10/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java index 81cbfbe..4d2ff12 100644 --- a/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java +++ b/components/org.apache.stratos.mock.iaas/src/main/java/org/apache/stratos/mock/iaas/services/impl/MockIaasServiceImpl.java @@ -102,7 +102,7 @@ public class MockIaasServiceImpl implements MockIaasService { } // Generate instance id - String instanceId = UUID.randomUUID().toString(); + String instanceId = mockInstanceContext.getMemberId(); mockInstanceContext.setInstanceId(instanceId); MockInstance mockInstance = new MockInstance(mockInstanceContext); http://git-wip-us.apache.org/repos/asf/stratos/blob/acdafd10/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java index 85987f5..9c9764b 100644 --- a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java +++ b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/TopologyHandler.java @@ -58,9 +58,9 @@ import static junit.framework.Assert.*; public class TopologyHandler { private static final Log log = LogFactory.getLog(TopologyHandler.class); - public static final int APPLICATION_ACTIVATION_TIMEOUT = 300000; - public static final int APPLICATION_UNDEPLOYMENT_TIMEOUT = 60000; - public static final int APPLICATION_TOPOLOGY_TIMEOUT = 60000; + public static final int APPLICATION_ACTIVATION_TIMEOUT = 360000; + public static final int APPLICATION_UNDEPLOYMENT_TIMEOUT = 120000; + public static final int APPLICATION_TOPOLOGY_TIMEOUT = 90000; public static final String APPLICATION_STATUS_CREATED = "Created"; public static final String APPLICATION_STATUS_UNDEPLOYING = "Undeploying"; private ApplicationsEventReceiver applicationsEventReceiver; @@ -247,7 +247,8 @@ public class TopologyHandler { * * @param applicationName */ - public void terminateMemberFromCluster(String cartridgeName, String applicationName, IntegrationMockClient mockIaasApiClient) { + public void terminateMemberFromCluster(String cartridgeName, String applicationName, + IntegrationMockClient mockIaasApiClient) { Application application = ApplicationManager.getApplications().getApplication(applicationName); assertNotNull(String.format("Application is not found: [application-id] %s", applicationName), application); http://git-wip-us.apache.org/repos/asf/stratos/blob/acdafd10/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java index 4148a52..d565e4f 100644 --- a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java +++ b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java @@ -21,20 +21,16 @@ package org.apache.stratos.integration.tests.application; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.stratos.common.beans.application.ApplicationBean; -import org.apache.stratos.common.beans.cartridge.CartridgeGroupBean; -import org.apache.stratos.common.beans.policy.deployment.ApplicationPolicyBean; import org.apache.stratos.integration.tests.RestConstants; import org.apache.stratos.integration.tests.StratosTestServerManager; import org.apache.stratos.integration.tests.TopologyHandler; import org.apache.stratos.messaging.domain.application.ApplicationStatus; import org.testng.annotations.Test; -import java.util.ArrayList; import java.util.List; import java.util.Map; import static junit.framework.Assert.*; -import static junit.framework.Assert.assertFalse; /** * Handling the startup order of the group @@ -70,10 +66,6 @@ public class GroupStartupOrderTest extends StratosTestServerManager { RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME); assertTrue(addedC3); - boolean addedC4 = restClient.addEntity(RESOURCES_PATH + RestConstants.CARTRIDGES_PATH + "/" + "group8-group-startup-order-test.json", - RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME); - assertTrue(addedC4); - boolean addedC5 = restClient.addEntity(RESOURCES_PATH + RestConstants.CARTRIDGES_PATH + "/" + "tomcat1-group-startup-order-test.json", RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME); assertTrue(addedC5); @@ -101,7 +93,7 @@ public class GroupStartupOrderTest extends StratosTestServerManager { assertTrue(addedG2); boolean addedG3 = restClient.addEntity(RESOURCES_PATH + RestConstants.CARTRIDGE_GROUPS_PATH + - "/" + "group-8-group-startup-order-test.json", RestConstants.CARTRIDGE_GROUPS, + "/" + "group8-group-startup-order-test.json", RestConstants.CARTRIDGE_GROUPS, RestConstants.CARTRIDGE_GROUPS_NAME); assertTrue(addedG3); http://git-wip-us.apache.org/repos/asf/stratos/blob/acdafd10/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java index 629085f..3cc4ebd 100644 --- a/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java +++ b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java @@ -41,7 +41,7 @@ import static junit.framework.Assert.*; public class GroupTerminationBehaviorTest extends StratosTestServerManager { private static final Log log = LogFactory.getLog(GroupTerminationBehaviorTest.class); private static final String RESOURCES_PATH = "/group-termination-behavior-test"; - private static final int GROUP_INACTIVE_TIMEOUT = 300000; + private static final int GROUP_INACTIVE_TIMEOUT = 180000; @Test public void testTerminationBehavior() { @@ -118,9 +118,6 @@ public class GroupTerminationBehaviorTest extends StratosTestServerManager { RestConstants.APPLICATIONS_NAME); assertTrue(deployed); - //Application active handling - topologyHandler.assertApplicationStatus(bean.getApplicationId(), - ApplicationStatus.Active); String groupId = topologyHandler.generateId(bean.getApplicationId(), "g-G1-1x0-group-termination-behavior-test", bean.getApplicationId() + "-1"); @@ -137,14 +134,25 @@ public class GroupTerminationBehaviorTest extends StratosTestServerManager { "c2-1x0-group-termination-behavior-test"); assertCreationOfNodes(groupId, clusterIdC2); + assertCreationOfNodes(clusterIdC3, clusterIdC4); + //Application active handling + topologyHandler.assertApplicationStatus(bean.getApplicationId(), + ApplicationStatus.Active); + //Group active handling topologyHandler.assertGroupActivation(bean.getApplicationId()); //Cluster active handling topologyHandler.assertClusterActivation(bean.getApplicationId()); + //Terminate one member in the cluster + TopologyHandler.getInstance().terminateMemberFromCluster( + "c3-group-termination-behavior-test", + bean.getApplicationId(), + mockIaasApiClient); + List<String> clusterIds = new ArrayList<String>(); clusterIds.add(clusterIdC3); clusterIds.add(clusterIdC4); @@ -156,14 +164,14 @@ public class GroupTerminationBehaviorTest extends StratosTestServerManager { assertTerminationOfNodes(groupId, clusterIds); - //Application active handling - topologyHandler.assertApplicationStatus(bean.getApplicationId(), - ApplicationStatus.Active); - assertCreationOfNodes(groupId, clusterIdC2); assertCreationOfNodes(clusterIdC3, clusterIdC4); + //Application active handling + topologyHandler.assertApplicationStatus(bean.getApplicationId(), + ApplicationStatus.Active); + //Group active handling topologyHandler.assertGroupActivation(bean.getApplicationId()); @@ -363,11 +371,33 @@ public class GroupTerminationBehaviorTest extends StratosTestServerManager { private void assertCreationOfNodes(String firstNodeId, String secondNodeId) { //group1 started first, then cluster started later - + long startTime = System.currentTimeMillis(); Map<String, Long> activeMembers = TopologyHandler.getInstance().getActivateddMembers(); Map<String, Long> createdMembers = TopologyHandler.getInstance().getCreatedMembers(); //Active member should be available at the time cluster is started to create. + while(!activeMembers.containsKey(firstNodeId)) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + } + activeMembers = TopologyHandler.getInstance().getActivateddMembers(); + if ((System.currentTimeMillis() - startTime) > GROUP_INACTIVE_TIMEOUT) { + break; + } + } assertTrue(activeMembers.containsKey(firstNodeId)); + + while(!createdMembers.containsKey(secondNodeId)) { + try { + Thread.sleep(1000); + } catch (InterruptedException e) { + } + createdMembers = TopologyHandler.getInstance().getCreatedMembers(); + if ((System.currentTimeMillis() - startTime) > GROUP_INACTIVE_TIMEOUT) { + break; + } + } + assertTrue(createdMembers.containsKey(secondNodeId)); assertTrue(createdMembers.get(secondNodeId) > activeMembers.get(firstNodeId));
