adding samples for termination behavior test
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/0eacfad9 Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/0eacfad9 Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/0eacfad9 Branch: refs/heads/master Commit: 0eacfad932e3e100ce18b23def5637ac97e06e02 Parents: ced8fad Author: reka <[email protected]> Authored: Wed Aug 12 15:28:11 2015 +0530 Committer: reka <[email protected]> Committed: Wed Aug 12 15:28:11 2015 +0530 ---------------------------------------------------------------------- .../integration/tests/TopologyHandler.java | 94 +- .../application/GroupStartupOrderTest.java | 226 ++++ .../GroupTerminationBehaviorTest.java | 27 + ...cation-policy-application-bursting-test.json | 18 + .../app-bursting-single-cartriddge-group.json | 70 ++ ...caling-policy-application-bursting-test.json | 14 + ...esb-php-group-application-bursting-test.json | 19 + .../mock/esb-application-bursting-test.json | 50 + .../mock/php-application-bursting-test.json | 51 + .../mock/tomcat-application-bursting-test.json | 53 + ...oyment-policy-application-bursting-test.json | 32 + ...k-partition-application-bursting-test-1.json | 15 + ...k-partition-application-bursting-test-2.json | 24 + .../RegionOne.json | 17 + .../application-martin.json | 100 ++ .../application-policy-1.json | 17 + .../application-s-g-c1-c2-c3-s.json | 130 +++ .../application.json | 108 ++ .../application.json.orig | 89 ++ .../startup-order-termination-behavior/c1.json | 45 + .../startup-order-termination-behavior/c2.json | 45 + .../startup-order-termination-behavior/c3.json | 45 + .../startup-order-termination-behavior/c4.json | 45 + .../startup-order-termination-behavior/c5.json | 132 +++ .../cartridge-groups-s-g-c1-c2-c3-s.json | 26 + .../cartridge-groups-working.json | 34 + .../cartridge-groups.json | 77 ++ .../cartridge-groups.json.back | 53 + .../deploy.sh | 43 + .../economy-policy.json | 15 + .../static-1.json | 17 + .../wso2carbon 2.log | 992 +++++++++++++++++ .../wso2carbon-working 2.log | 1053 ++++++++++++++++++ .../wso2carbon-working.log | 1053 ++++++++++++++++++ .../wso2carbon.log | 992 +++++++++++++++++ ...cation-policy-application-bursting-test.json | 17 + .../group-termination-behavior-test.json | 101 ++ ...caling-policy-application-bursting-test.json | 14 + ...-groups-group-termination-behavior-test.json | 58 + .../c1-group-termination-behavior-test.json | 45 + .../c2-group-termination-behavior-test.json | 45 + .../c3-group-termination-behavior-test.json | 45 + .../c4-group-termination-behavior-test.json | 45 + ...oyment-policy-termination-behavior-test.json | 22 + ...k-partition-application-bursting-test-1.json | 15 + .../src/test/resources/stratos-testing.xml | 2 +- 46 files changed, 6220 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/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 7d1068a..85e370b 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 @@ -33,16 +33,16 @@ import org.apache.stratos.messaging.domain.topology.Member; import org.apache.stratos.messaging.domain.topology.MemberStatus; import org.apache.stratos.messaging.domain.topology.Service; import org.apache.stratos.messaging.event.Event; +import org.apache.stratos.messaging.event.application.GroupInstanceCreatedEvent; +import org.apache.stratos.messaging.event.topology.ClusterInstanceCreatedEvent; import org.apache.stratos.messaging.event.topology.MemberCreatedEvent; import org.apache.stratos.messaging.event.topology.MemberTerminatedEvent; -import org.apache.stratos.messaging.listener.topology.MemberCreatedEventListener; -import org.apache.stratos.messaging.listener.topology.MemberInitializedEventListener; -import org.apache.stratos.messaging.listener.topology.MemberTerminatedEventListener; +import org.apache.stratos.messaging.listener.application.*; +import org.apache.stratos.messaging.listener.topology.*; import org.apache.stratos.messaging.message.receiver.application.ApplicationManager; import org.apache.stratos.messaging.message.receiver.application.ApplicationsEventReceiver; import org.apache.stratos.messaging.message.receiver.topology.TopologyEventReceiver; import org.apache.stratos.messaging.message.receiver.topology.TopologyManager; -import org.apache.stratos.mock.iaas.client.MockIaasApiClient; import java.io.File; import java.rmi.RemoteException; @@ -68,8 +68,10 @@ public class TopologyHandler { private ApplicationsEventReceiver applicationsEventReceiver; private TopologyEventReceiver topologyEventReceiver; public static TopologyHandler topologyHandler; + private Map<String, Map<String, Long>> terminatedNodes = new ConcurrentHashMap<String, Map<String, Long>>(); private Map<String, Long> terminatedMembers = new ConcurrentHashMap<String, Long>(); - private Map<String, Long> createdMembers = new ConcurrentHashMap<String, Long>(); + private Map<String, Map<String, Long>> createdNodes = new ConcurrentHashMap<String, Map<String, Long>>(); + private Map<String, Map<String, Long>> activeNodes = new ConcurrentHashMap<String, Map<String, Long>>(); private TopologyHandler() { // Set jndi.properties.dir system property for initializing event receivers @@ -79,7 +81,7 @@ public class TopologyHandler { initializeTopologyEventReceiver(); assertApplicationTopologyInitialized(); assertTopologyInitialized(); - addEventListeners(); + addTopologyEventListeners(); } public static TopologyHandler getInstance() { @@ -450,7 +452,7 @@ public class TopologyHandler { return StringUtils.removeEnd(path, File.separator); } - private void addEventListeners() { + private void addTopologyEventListeners() { topologyEventReceiver.addEventListener(new MemberTerminatedEventListener() { @Override protected void onEvent(Event event) { @@ -463,8 +465,82 @@ public class TopologyHandler { topologyEventReceiver.addEventListener(new MemberCreatedEventListener() { @Override protected void onEvent(Event event) { - MemberCreatedEvent memberCreatedEvent = (MemberCreatedEvent) event; - createdMembers.put(memberCreatedEvent.getMemberId(), System.currentTimeMillis()); + + + } + }); + + topologyEventReceiver.addEventListener(new ClusterInstanceCreatedEventListener() { + @Override + protected void onEvent(Event event) { + ClusterInstanceCreatedEvent event1 = (ClusterInstanceCreatedEvent) event; + + } + }); + + topologyEventReceiver.addEventListener(new ClusterInstanceActivatedEventListener() { + @Override + protected void onEvent(Event event) { + + } + }); + + topologyEventReceiver.addEventListener(new ClusterInstanceInactivateEventListener() { + @Override + protected void onEvent(Event event) { + + } + }); + + topologyEventReceiver.addEventListener(new ClusterInstanceTerminatedEventListener() { + @Override + protected void onEvent(Event event) { + + } + }); + + + } + + private void addApplicationEventListeners() { + applicationsEventReceiver.addEventListener(new ApplicationInstanceCreatedEventListener() { + @Override + protected void onEvent(Event event) { + + + } + }); + + applicationsEventReceiver.addEventListener(new GroupInstanceCreatedEventListener() { + @Override + protected void onEvent(Event event) { + GroupInstanceCreatedEvent event1 = (GroupInstanceCreatedEvent) event; + String appId = event1.getAppId(); + String id = event1.getGroupId(); + String instanceId = event1.getGroupInstance().getInstanceId(); + + } + }); + + + + applicationsEventReceiver.addEventListener(new GroupInstanceActivatedEventListener() { + @Override + protected void onEvent(Event event) { + + } + }); + + applicationsEventReceiver.addEventListener(new GroupInstanceInactivateEventListener() { + @Override + protected void onEvent(Event event) { + + } + }); + + applicationsEventReceiver.addEventListener(new GroupInstanceTerminatedEventListener() { + @Override + protected void onEvent(Event event) { } }); http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/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 new file mode 100644 index 0000000..1f3aa56 --- /dev/null +++ b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupStartupOrderTest.java @@ -0,0 +1,226 @@ +/* + * 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 + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +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 static junit.framework.Assert.assertEquals; +import static junit.framework.Assert.assertTrue; + +/** + * Handling the startup order of the group + */ +public class GroupStartupOrderTest extends StratosTestServerManager { + private static final Log log = LogFactory.getLog(SampleApplicationsTest.class); + private static final String RESOURCES_PATH = "/application-bursting-test"; + + @Test + public void testApplicationBusting() { + try { + log.info("-------------------------------Started application Bursting test case-------------------------------"); + + String autoscalingPolicyId = "autoscaling-policy-application-bursting-test"; + + boolean addedScalingPolicy = restClient.addEntity(RESOURCES_PATH + RestConstants.AUTOSCALING_POLICIES_PATH + + "/" + autoscalingPolicyId + ".json", + RestConstants.AUTOSCALING_POLICIES, RestConstants.AUTOSCALING_POLICIES_NAME); + assertEquals(addedScalingPolicy, true); + + boolean addedC1 = restClient.addEntity(RESOURCES_PATH + RestConstants.CARTRIDGES_PATH + "/" + "esb-application-bursting-test.json", + RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME); + assertEquals(addedC1, true); + + boolean addedC2 = restClient.addEntity(RESOURCES_PATH + RestConstants.CARTRIDGES_PATH + "/" + "php-application-bursting-test.json", + RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME); + assertEquals(addedC2, true); + + boolean addedC3 = restClient.addEntity(RESOURCES_PATH + RestConstants.CARTRIDGES_PATH + "/" + "tomcat-application-bursting-test.json", + RestConstants.CARTRIDGES, RestConstants.CARTRIDGES_NAME); + assertEquals(addedC3, true); + + boolean addedG1 = restClient.addEntity(RESOURCES_PATH + RestConstants.CARTRIDGE_GROUPS_PATH + + "/" + "esb-php-group-application-bursting-test.json", RestConstants.CARTRIDGE_GROUPS, + RestConstants.CARTRIDGE_GROUPS_NAME); + assertEquals(addedG1, true); + + CartridgeGroupBean beanG1 = (CartridgeGroupBean) restClient. + getEntity(RestConstants.CARTRIDGE_GROUPS, "esb-php-group-application-bursting-test", + CartridgeGroupBean.class, RestConstants.CARTRIDGE_GROUPS_NAME); + assertEquals(beanG1.getName(), "esb-php-group-application-bursting-test"); + + boolean addedN1 = restClient.addEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" + + "network-partition-application-bursting-test-1.json", + RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME); + assertEquals(addedN1, true); + + boolean addedN2 = restClient.addEntity(RESOURCES_PATH + RestConstants.NETWORK_PARTITIONS_PATH + "/" + + "network-partition-application-bursting-test-2.json", + RestConstants.NETWORK_PARTITIONS, RestConstants.NETWORK_PARTITIONS_NAME); + assertEquals(addedN2, true); + + boolean addedDep = restClient.addEntity(RESOURCES_PATH + RestConstants.DEPLOYMENT_POLICIES_PATH + "/" + + "deployment-policy-application-bursting-test.json", + RestConstants.DEPLOYMENT_POLICIES, RestConstants.DEPLOYMENT_POLICIES_NAME); + assertEquals(addedDep, true); + + boolean added = restClient.addEntity(RESOURCES_PATH + RestConstants.APPLICATIONS_PATH + "/" + + "app-bursting-single-cartriddge-group.json", RestConstants.APPLICATIONS, + RestConstants.APPLICATIONS_NAME); + assertEquals(added, true); + + ApplicationBean bean = (ApplicationBean) restClient.getEntity(RestConstants.APPLICATIONS, + "application-bursting-test", ApplicationBean.class, RestConstants.APPLICATIONS_NAME); + assertEquals(bean.getApplicationId(), "application-bursting-test"); + + boolean addAppPolicy = restClient.addEntity(RESOURCES_PATH + RestConstants.APPLICATION_POLICIES_PATH + "/" + + "application-policy-application-bursting-test.json", RestConstants.APPLICATION_POLICIES, + RestConstants.APPLICATION_POLICIES_NAME); + assertEquals(addAppPolicy, true); + + ApplicationPolicyBean policyBean = (ApplicationPolicyBean) restClient.getEntity( + RestConstants.APPLICATION_POLICIES, + "application-policy-application-bursting-test", ApplicationPolicyBean.class, + RestConstants.APPLICATION_POLICIES_NAME); + + //deploy the application + String resourcePath = RestConstants.APPLICATIONS + "/" + "application-bursting-test" + + RestConstants.APPLICATIONS_DEPLOY + "/" + "application-policy-application-bursting-test"; + boolean deployed = restClient.deployEntity(resourcePath, + RestConstants.APPLICATIONS_NAME); + assertEquals(deployed, true); + + //Application active handling + TopologyHandler.getInstance().assertApplicationStatus(bean.getApplicationId(), + ApplicationStatus.Active); + + //Group active handling + TopologyHandler.getInstance().assertGroupActivation(bean.getApplicationId()); + + //Cluster active handling + TopologyHandler.getInstance().assertClusterActivation(bean.getApplicationId()); + + boolean removedGroup = restClient.removeEntity(RestConstants.CARTRIDGE_GROUPS, "esb-php-group-application-bursting-test", + RestConstants.CARTRIDGE_GROUPS_NAME); + assertEquals(removedGroup, false); + + boolean removedAuto = restClient.removeEntity(RestConstants.AUTOSCALING_POLICIES, + autoscalingPolicyId, RestConstants.AUTOSCALING_POLICIES_NAME); + assertEquals(removedAuto, false); + + boolean removedNet = restClient.removeEntity(RestConstants.NETWORK_PARTITIONS, + "network-partition-application-bursting-test-1", + RestConstants.NETWORK_PARTITIONS_NAME); + //Trying to remove the used network partition + assertEquals(removedNet, false); + + boolean removedDep = restClient.removeEntity(RestConstants.DEPLOYMENT_POLICIES, + "deployment-policy-application-bursting-test", RestConstants.DEPLOYMENT_POLICIES_NAME); + assertEquals(removedDep, false); + + //Un-deploying the application + String resourcePathUndeploy = RestConstants.APPLICATIONS + "/" + "application-bursting-test" + + RestConstants.APPLICATIONS_UNDEPLOY; + + boolean unDeployed = restClient.undeployEntity(resourcePathUndeploy, + RestConstants.APPLICATIONS_NAME); + assertEquals(unDeployed, true); + + boolean undeploy = TopologyHandler.getInstance().assertApplicationUndeploy("application-bursting-test"); + if (!undeploy) { + //Need to forcefully undeploy the application + log.info("Force undeployment is going to start for the [application] " + "application-bursting-test"); + + restClient.undeployEntity(RestConstants.APPLICATIONS + "/" + "application-bursting-test" + + RestConstants.APPLICATIONS_UNDEPLOY + "?force=true", RestConstants.APPLICATIONS); + + boolean forceUndeployed = TopologyHandler.getInstance().assertApplicationUndeploy("application-bursting-test"); + assertEquals(String.format("Forceful undeployment failed for the application %s", + "application-bursting-test"), forceUndeployed, true); + + } + + boolean removed = restClient.removeEntity(RestConstants.APPLICATIONS, "application-bursting-test", + RestConstants.APPLICATIONS_NAME); + assertEquals(removed, true); + + ApplicationBean beanRemoved = (ApplicationBean) restClient.getEntity(RestConstants.APPLICATIONS, + "application-bursting-test", ApplicationBean.class, RestConstants.APPLICATIONS_NAME); + assertEquals(beanRemoved, null); + + removedGroup = restClient.removeEntity(RestConstants.CARTRIDGE_GROUPS, "esb-php-group-application-bursting-test", + RestConstants.CARTRIDGE_GROUPS_NAME); + assertEquals(removedGroup, true); + + boolean removedC1 = restClient.removeEntity(RestConstants.CARTRIDGES, "esb-application-bursting-test", + RestConstants.CARTRIDGES_NAME); + assertEquals(removedC1, true); + + boolean removedC2 = restClient.removeEntity(RestConstants.CARTRIDGES, "php-application-bursting-test", + RestConstants.CARTRIDGES_NAME); + assertEquals(removedC2, true); + + boolean removedC3 = restClient.removeEntity(RestConstants.CARTRIDGES, "tomcat-application-bursting-test", + RestConstants.CARTRIDGES_NAME); + assertEquals(removedC3, true); + + removedAuto = restClient.removeEntity(RestConstants.AUTOSCALING_POLICIES, + autoscalingPolicyId, RestConstants.AUTOSCALING_POLICIES_NAME); + assertEquals(removedAuto, true); + + removedDep = restClient.removeEntity(RestConstants.DEPLOYMENT_POLICIES, + "deployment-policy-application-bursting-test", RestConstants.DEPLOYMENT_POLICIES_NAME); + assertEquals(removedDep, true); + + removedNet = restClient.removeEntity(RestConstants.NETWORK_PARTITIONS, + "network-partition-application-bursting-test-1", RestConstants.NETWORK_PARTITIONS_NAME); + assertEquals(removedNet, false); + + boolean removedN2 = restClient.removeEntity(RestConstants.NETWORK_PARTITIONS, + "network-partition-application-bursting-test-2", RestConstants.NETWORK_PARTITIONS_NAME); + assertEquals(removedN2, false); + + boolean removeAppPolicy = restClient.removeEntity(RestConstants.APPLICATION_POLICIES, + "application-policy-application-bursting-test", RestConstants.APPLICATION_POLICIES_NAME); + assertEquals(removeAppPolicy, true); + + removedNet = restClient.removeEntity(RestConstants.NETWORK_PARTITIONS, + "network-partition-application-bursting-test-1", RestConstants.NETWORK_PARTITIONS_NAME); + assertEquals(removedNet, true); + + removedN2 = restClient.removeEntity(RestConstants.NETWORK_PARTITIONS, + "network-partition-application-bursting-test-2", RestConstants.NETWORK_PARTITIONS_NAME); + assertEquals(removedN2, true); + + log.info("-------------------------------Ended application bursting test case-------------------------------"); + + } catch (Exception e) { + log.error("An error occurred while handling application bursting", e); + assertTrue("An error occurred while handling application bursting", false); + } + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/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 new file mode 100644 index 0000000..b86d674 --- /dev/null +++ b/products/stratos/modules/integration/src/test/java/org/apache/stratos/integration/tests/application/GroupTerminationBehaviorTest.java @@ -0,0 +1,27 @@ +/* + * 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 + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.stratos.integration.tests.application; + +import org.apache.stratos.integration.tests.StratosTestServerManager; + +/** + * Handling the termination behavior of the group + */ +public class GroupTerminationBehaviorTest extends StratosTestServerManager { +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/application-policies/application-policy-application-bursting-test.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/application-policies/application-policy-application-bursting-test.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/application-policies/application-policy-application-bursting-test.json new file mode 100644 index 0000000..7bc9c2d --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/application-policies/application-policy-application-bursting-test.json @@ -0,0 +1,18 @@ +{ + "id": "application-policy-group-startup-order-test", + "algorithm": "one-after-another", + "networkPartitions": [ + "network-partition-group-startup-order-test-1", + "network-partition-group-startup-order-test-2" + ], + "properties": [ + { + "name": "networkPartitionGroups", + "value": "network-partition-group-startup-order-test-1|network-partition-group-startup-order-test-2" + }, + { + "name": "key-2", + "value": "value-2" + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/applications/app-bursting-single-cartriddge-group.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/applications/app-bursting-single-cartriddge-group.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/applications/app-bursting-single-cartriddge-group.json new file mode 100644 index 0000000..db04c61 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/applications/app-bursting-single-cartriddge-group.json @@ -0,0 +1,70 @@ +{ + "applicationId": "group-startup-order-test", + "alias": "my-cartridge-group-app", + "components": { + "groups": [ + { + "name": "esb-php-group-group-startup-order-test", + "alias": "my-esb-php-group-group-startup-order-test", + "deploymentPolicy": "deployment-policy-group-startup-order-test", + "groupMinInstances": 1, + "groupMaxInstances": 2, + "cartridges": [ + { + "type": "esb-group-startup-order-test", + "cartridgeMin": 1, + "cartridgeMax": 2, + "subscribableInfo": { + "alias": "my-esb-group-startup-order-test", + "autoscalingPolicy": "autoscaling-policy-group-startup-order-test", + "artifactRepository": { + "privateRepo": false, + "repoUrl": "https://github.com/imesh/stratos-esb-applications.git", + "repoUsername": "", + "repoPassword": "" + } + } + }, + { + "type": "php-group-startup-order-test", + "cartridgeMin": 2, + "cartridgeMax": 4, + "lvsVirtualIP": "192.168.56.50|255.255.255.0", + "subscribableInfo": { + "alias": "my-php-group-startup-order-test", + "autoscalingPolicy": "autoscaling-policy-group-startup-order-test", + "artifactRepository": { + "privateRepo": false, + "repoUrl": "https://github.com/imesh/stratos-php-applications.git", + "repoUsername": "", + "repoPassword": "" + } + } + } + ] + } + ], + "cartridges": [ + { + "type": "tomcat-group-startup-order-test", + "cartridgeMin": 2, + "cartridgeMax": 4, + "subscribableInfo": { + "alias": "my-tomcat-group-startup-order-test", + "autoscalingPolicy": "autoscaling-policy-group-startup-order-test", + "deploymentPolicy": "deployment-policy-group-startup-order-test", + "artifactRepository": { + "privateRepo": false, + "repoUrl": "https://github.com/imesh/stratos-tomcat-applications.git", + "repoUsername": "", + "repoPassword": "" + } + } + } + ], + "dependencies": { + "terminationBehaviour": "terminate-none" + } + } +} + http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json new file mode 100644 index 0000000..0c6ec97 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/autoscaling-policies/autoscaling-policy-application-bursting-test.json @@ -0,0 +1,14 @@ +{ + "id": "autoscaling-policy-group-startup-order-test", + "loadThresholds": { + "requestsInFlight": { + "threshold": 35 + }, + "memoryConsumption": { + "threshold": 45 + }, + "loadAverage": { + "threshold": 25 + } + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges-groups/esb-php-group-application-bursting-test.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges-groups/esb-php-group-application-bursting-test.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges-groups/esb-php-group-application-bursting-test.json new file mode 100644 index 0000000..9c7d997 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges-groups/esb-php-group-application-bursting-test.json @@ -0,0 +1,19 @@ +{ + "name": "esb-php-group-group-startup-order-test", + "cartridges": [ + "esb-group-startup-order-test", + "php-group-startup-order-test" + ], + "dependencies": { + "startupOrders": [ + { + "aliases": [ + "cartridge.my-esb-group-startup-order-test", + "cartridge.my-php-group-startup-order-test" + ] + } + ], + "terminationBehaviour": "terminate-none" + } +} + http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/esb-application-bursting-test.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/esb-application-bursting-test.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/esb-application-bursting-test.json new file mode 100755 index 0000000..b6f428e --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/esb-application-bursting-test.json @@ -0,0 +1,50 @@ +{ + "type": "esb-group-startup-order-test", + "provider": "apache", + "host": "stratos.apache.org", + "category": "framework", + "displayName": "esb-group-startup-order-test", + "description": "esb-group-startup-order-test Cartridge", + "version": "7", + "multiTenant": "false", + "portMapping": [ + { + "name": "http-22", + "protocol": "http", + "port": "22", + "proxyPort": "8280" + } + ], + "deployment": { + }, + "iaasProvider": [ + { + "type": "mock", + "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e", + "networkInterfaces": [ + { + "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e" + } + ], + "property": [ + { + "name": "instanceType", + "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594" + }, + { + "name": "keyPair", + "value": "vishanth-key" + }, + { + "name": "securityGroups", + "value": "default" + } + ] + } + ], + "metadataKeys": [ + "server_ip", + "username", + "password" + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/php-application-bursting-test.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/php-application-bursting-test.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/php-application-bursting-test.json new file mode 100755 index 0000000..95f78a5 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/php-application-bursting-test.json @@ -0,0 +1,51 @@ +{ + "type": "php-group-startup-order-test", + "provider": "apache", + "category": "framework", + "host": "php.stratos.org", + "displayName": "php-group-startup-order-test", + "description": "php-group-startup-order-test Cartridge", + "version": "7", + "multiTenant": "false", + "portMapping": [ + { + "name": "http-80", + "protocol": "http", + "port": "8080", + "proxyPort": "8280" + }, + { + "name": "http-22", + "protocol": "tcp", + "port": "22", + "proxyPort": "8222" + } + ], + "deployment": { + }, + "iaasProvider": [ + { + "type": "mock", + "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e", + "networkInterfaces": [ + { + "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e" + } + ], + "property": [ + { + "name": "instanceType", + "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594" + }, + { + "name": "keyPair", + "value": "reka" + }, + { + "name": "securityGroups", + "value": "default" + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/tomcat-application-bursting-test.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/tomcat-application-bursting-test.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/tomcat-application-bursting-test.json new file mode 100755 index 0000000..7cf895a --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/cartridges/mock/tomcat-application-bursting-test.json @@ -0,0 +1,53 @@ +{ + "type": "tomcat-group-startup-order-test", + "provider": "apache", + "host": "tomcat.stratos.org", + "category": "framework", + "displayName": "tomcat-group-startup-order-test", + "description": "tomcat-group-startup-order-test Cartridge", + "version": "7", + "multiTenant": "false", + "portMapping": [ + { + "name": "http-22", + "protocol": "http", + "port": "22", + "proxyPort": "8280" + }, + { + "protocol": "http", + "port": "8080", + "proxyPort": "80" + } + ], + "deployment": { + }, + "iaasProvider": [ + { + "type": "mock", + "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e", + "networkInterfaces": [ + { + "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e" + } + ], + "property": [ + { + "name": "instanceType", + "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594" + }, + { + "name": "keyPair", + "value": "vishanth-key" + }, + { + "name": "securityGroups", + "value": "default" + } + ] + } + ], + "metadataKeys": [ + "url" + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/deployment-policies/deployment-policy-application-bursting-test.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/deployment-policies/deployment-policy-application-bursting-test.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/deployment-policies/deployment-policy-application-bursting-test.json new file mode 100644 index 0000000..3813435 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/deployment-policies/deployment-policy-application-bursting-test.json @@ -0,0 +1,32 @@ +{ + "id": "deployment-policy-group-startup-order-test", + "networkPartitions": [ + { + "id": "network-partition-group-startup-order-test-1", + "partitionAlgo": "one-after-another", + "partitions": [ + { + "id": "partition-1", + "partitionMax": 4 + } + ] + }, + { + "id": "network-partition-group-startup-order-test-2", + "partitionAlgo": "round-robin", + "partitions": [ + { + "id": "network-partition-10-partition-1", + "partitionMax": 4 + }, + { + "id": "network-partition-10-partition-2", + "partitionMax": 4 + } + ] + } + ] +} + + + http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-1.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-1.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-1.json new file mode 100644 index 0000000..238f640 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-1.json @@ -0,0 +1,15 @@ +{ + "id": "network-partition-group-startup-order-test-1", + "provider": "mock", + "partitions": [ + { + "id": "partition-1", + "property": [ + { + "name": "region", + "value": "default" + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-2.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-2.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-2.json new file mode 100644 index 0000000..7372b78 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/network-partitions/mock/network-partition-application-bursting-test-2.json @@ -0,0 +1,24 @@ +{ + "id": "network-partition-group-startup-order-test-2", + "provider": "mock", + "partitions": [ + { + "id": "network-partition-10-partition-1", + "property": [ + { + "name": "region", + "value": "default" + } + ] + }, + { + "id": "network-partition-10-partition-2", + "property": [ + { + "name": "region", + "value": "default" + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/RegionOne.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/RegionOne.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/RegionOne.json new file mode 100755 index 0000000..47832db --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/RegionOne.json @@ -0,0 +1,17 @@ +{ + "id": "RegionOne", + "provider": "mock", + "partitions": + [ + { + "id": "whole-region", + "property": + [ + { + "name": "region", + "value": "RegionOne" + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-martin.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-martin.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-martin.json new file mode 100644 index 0000000..30cd6d0 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-martin.json @@ -0,0 +1,100 @@ +{ + "alias": "sub-G1-G2-G3-1-G4", + "applicationId": "sub-G1-G2-G3-1-G4", + "components": { + "cartridges": [], + "groups": [ + { + "name": "sub-G1-G2-G3-1", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "sub-G1-G2-G3-1", + "cartridges": [], + "groups": [ + { + "name": "multiple-groups-no-startup-G1-1", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "multiple-groups-no-startup-G1-1-0x0", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c1", + "subscribableInfo": { + "alias": "c1-1x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + }, + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c2", + "subscribableInfo": { + "alias": "c2-1x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + } + ], + "groups": [] + }, + { + "name": "multiple-groups-no-startup-G2-1", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "multiple-groups-no-startup-G2-1-0x0", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c3", + "subscribableInfo": { + "alias": "c3-1x1", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + }, + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c4", + "subscribableInfo": { + "alias": "c4-1x1", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + } + ], + "groups": [] + } + ] + } + ] + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-policy-1.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-policy-1.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-policy-1.json new file mode 100644 index 0000000..8fe4193 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-policy-1.json @@ -0,0 +1,17 @@ +{ + "id": "application-policy-1", + "algorithm": "one-after-another", + "networkPartitions": [ + "RegionOne" + ], + "properties": [ + { + "name": "key-1", + "value": "value-1" + }, + { + "name": "key-2", + "value": "value-2" + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-s-g-c1-c2-c3-s.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-s-g-c1-c2-c3-s.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-s-g-c1-c2-c3-s.json new file mode 100644 index 0000000..600d291 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application-s-g-c1-c2-c3-s.json @@ -0,0 +1,130 @@ +{ + "alias": "s-g-c1-c2-c3-s", + "applicationId": "s-g-c1-c2-c3-s", + "components": { + "cartridges": [], + "groups": [ + { + "name": "g-sc-G4", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "g-sc-G4-x0x", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c1", + "subscribableInfo": { + "alias": "c1-1x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + } + ], + "groups": [ + { + "name": "g-G3", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "g-G3-1x0", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c2", + "subscribableInfo": { + "alias": "c2-1x0", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "deploymentPolicy": "static-1", + + "autoscalingPolicy": "economyPolicy" + } + } + ], + "groups": [ + { + "name": "g-G2", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "g-G2-1x0", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c3", + "subscribableInfo": { + "alias": "c3-1x0", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "deploymentPolicy": "static-1", + "autoscalingPolicy": "economyPolicy" + } + } + ], + "groups": [ + { + "deploymentPolicy": "static-1", + "name": "g-G1", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "g-G1-1x0", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c4", + "subscribableInfo": { + "alias": "c4-1x0", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + }, + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c5", + "subscribableInfo": { + "alias": "c5-1x0", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + } + ], + "groups": [ + ] + } + ] + } + ] + } + + ] + } + ] + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json new file mode 100644 index 0000000..e05129a --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json @@ -0,0 +1,108 @@ +{ + "alias": "s-n-gr-s-G12-t-a-2-Id", + "applicationId": "s-n-gr-s-G12-t-a-2-Id", + "components": { + "cartridges": [], + "groups": [ + { + "name": "s-n-gr-s-G12-t-a-2", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "s-n-gr-s-G12-t-a-2", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c1", + "subscribableInfo": { + "alias": "c1-0x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "autoscaling-policy-1" + } + }, + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c2", + "subscribableInfo": { + "alias": "c2-0x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "autoscaling-policy-1" + } + }, + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c3", + "subscribableInfo": { + "alias": "c3-0x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "autoscaling-policy-1" + } + } + ], + "groups": [ + { + "name": "n-st-G2-t-a-2", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "n-st-G2-t-a-2-0x0", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c4", + "subscribableInfo": { + "alias": "c4-1x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "autoscaling-policy-1" + } + }, + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c5", + "subscribableInfo": { + "alias": "c5-1x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "autoscaling-policy-1" + } + } + ], + "groups": [] + } + ] + } + ] + } +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json.orig ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json.orig b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json.orig new file mode 100644 index 0000000..b28c017 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/application.json.orig @@ -0,0 +1,89 @@ +{ + "alias": "sub-G1-G2-G3-1-G4", + "applicationId": "sub-G1-G2-G3-1-G4", + "components": { + "cartridges": [], + "groups": [ + { + "name": "G1", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "group1", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c1", + "subscribableInfo": { + "alias": "c1-1x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + } + + ], + "groups": [ + { + "name": "G2", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "group2", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c2", + "subscribableInfo": { + "alias": "c2-1x0", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + } + ], + "groups": [ + { + "name": "G3", + "groupMaxInstances": 1, + "groupMinInstances": 1, + "alias": "group3", + "cartridges": [ + { + "cartridgeMin": 1, + "cartridgeMax": 1, + "type": "c3", + "subscribableInfo": { + "alias": "c3-1x1", + "deploymentPolicy": "static-1", + "artifactRepository": { + "repoUsername": "user", + "repoUrl": "http://octl.qmog.cisco.com:10080/git/default.git", + "privateRepo": true, + "repoPassword": "c-policy" + }, + "autoscalingPolicy": "economyPolicy" + } + } + ], + "groups": [] + } + ] + } + + ] + } + ] + } +} + http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c1.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c1.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c1.json new file mode 100755 index 0000000..19ac4c0 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c1.json @@ -0,0 +1,45 @@ +{ + "type": "c1", + "provider": "apache", + "host": "stratos.apache.org", + "category": "data", + "displayName": "c1", + "description": "c1 Cartridge", + "version": "7", + "multiTenant": "false", + "portMapping": [ + { + "protocol": "http", + "port": "22", + "proxyPort": "8280" + } + ], + "deployment": { + }, + "iaasProvider": [ + { + "type": "mock", + "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e", + "networkInterfaces": [ + { + "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e" + } + ], + + "property": [ + { + "name": "instanceType", + "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594" + }, + { + "name": "keyPair", + "value": "vishanth-key" + }, + { + "name": "securityGroups", + "value": "default" + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c2.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c2.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c2.json new file mode 100755 index 0000000..8caa83a --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c2.json @@ -0,0 +1,45 @@ +{ + "type": "c2", + "provider": "apache", + "host": "stratos.apache.org", + "category": "data", + "displayName": "c2", + "description": "c2 Cartridge", + "version": "7", + "multiTenant": "false", + "portMapping": [ + { + "protocol": "http", + "port": "22", + "proxyPort": "8280" + } + ], + "deployment": { + }, + "iaasProvider": [ + { + "type": "mock", + "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e", + "networkInterfaces": [ + { + "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e" + } + ], + + "property": [ + { + "name": "instanceType", + "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594" + }, + { + "name": "keyPair", + "value": "vishanth-key" + }, + { + "name": "securityGroups", + "value": "default" + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c3.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c3.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c3.json new file mode 100755 index 0000000..dedb0f6 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c3.json @@ -0,0 +1,45 @@ +{ + "type": "c3", + "provider": "apache", + "host": "stratos.apache.org", + "category": "data", + "displayName": "c3", + "description": "c3 Cartridge", + "version": "7", + "multiTenant": "false", + "portMapping": [ + { + "protocol": "http", + "port": "22", + "proxyPort": "8280" + } + ], + "deployment": { + }, + "iaasProvider": [ + { + "type": "mock", + "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e", + "networkInterfaces": [ + { + "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e" + } + ], + + "property": [ + { + "name": "instanceType", + "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594" + }, + { + "name": "keyPair", + "value": "vishanth-key" + }, + { + "name": "securityGroups", + "value": "default" + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c4.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c4.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c4.json new file mode 100755 index 0000000..efc660a --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c4.json @@ -0,0 +1,45 @@ +{ + "type": "c4", + "provider": "apache", + "host": "stratos.apache.org", + "category": "data", + "displayName": "c4", + "description": "c4 Cartridge", + "version": "7", + "multiTenant": "false", + "portMapping": [ + { + "protocol": "http", + "port": "22", + "proxyPort": "8280" + } + ], + "deployment": { + }, + "iaasProvider": [ + { + "type": "mock", + "imageId": "RegionOne/b4ca55e3-58ab-4937-82ce-817ebd10240e", + "networkInterfaces": [ + { + "networkUuid": "b55f009a-1cc6-4b17-924f-4ae0ee18db5e" + } + ], + + "property": [ + { + "name": "instanceType", + "value": "RegionOne/aa5f45a2-c6d6-419d-917a-9dd2e3888594" + }, + { + "name": "keyPair", + "value": "vishanth-key" + }, + { + "name": "securityGroups", + "value": "default" + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c5.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c5.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c5.json new file mode 100755 index 0000000..59e225f --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/c5.json @@ -0,0 +1,132 @@ +{ + "category": "Application", + "deployment": { + "baseDir": "/var/www", + "dir": [ + "www=copy#app#files#here", + "simplesamlphp=copy#saml#libraries#here", + "sql=copy#saml#libraries#here" + ] + }, + "description": "c4 Cartridge", + "displayName": "c4", + "host": "qmog.cisco.com", + "iaasProvider": [ + { + "imageId": "RegionOne/16e7e35b-0c88-4605-90ce-cbef9e9dde0f", + "maxInstanceLimit": "4", + "networkInterfaces": [ + { + "floatingNetworks": [ + { + "name": "public", + "networkUuid": "26b4aa2b-06bc-4e4f-a6eb-c19fbc211af6" + } + ], + "name": "core", + "networkUuid": "5e107fbd-4820-47ad-84ea-6f135496f889" + } + ], + "property": [ + { + "name": "instanceType", + "value": "RegionOne/2cdbd576-8c9b-4c2d-8b1a-0f79dc4fb809" + }, + { + "name": "keyPair", + "value": "phoenix" + }, + { + "name": "autoAssignIp", + "value": "false" + }, + { + "name": "securityGroups", + "value": "default" + } + ], + "type": "mock" + } + ], + "multiTenant": "false", + "portMapping": [ + { + "port": "22", + "protocol": "http", + "proxyPort": "8280" + } + ], + "property": [ + { + "name": "payload_parameter.MB_IP", + "value": "octl.qmog.cisco.com" + }, + { + "name": "payload_parameter.MB_PORT", + "value": "61616" + }, + { + "name": "payload_parameter.CEP_IP", + "value": "octl.qmog.cisco.com" + }, + { + "name": "payload_parameter.CEP_PORT", + "value": "7611" + }, + { + "name": "payload_parameter.CEP_ADMIN_USERNAME", + "value": "admin" + }, + { + "name": "payload_parameter.CEP_ADMIN_PASSWORD", + "value": "admin" + }, + { + "name": "payload_parameter.CERT_TRUSTSTORE", + "value": "/opt/apache-stratos-cartridge-agent/security/client-truststore.jks" + }, + { + "name": "payload_parameter.TRUSTSTORE_PASSWORD", + "value": "wso2carbon" + }, + { + "name": "payload_parameter.ENABLE_DATA_PUBLISHER", + "value": "false" + }, + { + "name": "payload_parameter.MONITORING_SERVER_IP", + "value": "octl.qmog.cisco.com" + }, + { + "name": "payload_parameter.MONITORING_SERVER_PORT", + "value": "7611" + }, + { + "name": "payload_parameter.MONITORING_SERVER_SECURE_PORT", + "value": "7711" + }, + { + "name": "payload_parameter.MONITORING_SERVER_ADMIN_USERNAME", + "value": "admin" + }, + { + "name": "payload_parameter.MONITORING_SERVER_ADMIN_PASSWORD", + "value": "admin" + }, + { + "name": "payload_parameter.QTCM_DNS_SEGMENT", + "value": "" + }, + { + "name": "payload_parameter.QTCM_NETWORK_COUNT", + "value": "1" + }, + { + "name": "payload_parameter.SIMPLE_PROPERTY", + "value": "value" + } + ], + "provider": "cisco", + "type": "c5", + "version": "1.0" +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-s-g-c1-c2-c3-s.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-s-g-c1-c2-c3-s.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-s-g-c1-c2-c3-s.json new file mode 100755 index 0000000..00d4dc5 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-s-g-c1-c2-c3-s.json @@ -0,0 +1,26 @@ +{ + "name": "s-g-c1-c2-c3-s", + "dependencies": { + "terminationBehaviour": "terminate-none", + "startupOrders": [ + { + "aliases": [ + "cartridge.c3-0x0", + "cartridge.c2-0x0" + ] + }, + { + "aliases": [ + "cartridge.c2-0x0", + "cartridge.c1-0x0" + ] + } + ] + }, + "cartridges": [ + "c1", + "c2", + "c3" + ], + "groups": [] +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-working.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-working.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-working.json new file mode 100755 index 0000000..749b191 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups-working.json @@ -0,0 +1,34 @@ +{ + "name": "subscription-G1-G2-G3", + "dependencies": { + "terminationBehaviour": "terminate-none", + "startupOrders": [] + }, + "cartridges": [], + "groups": [ + { + "name": "multiple-groups-no-startup-G1", + "dependencies": { + "terminationBehaviour": "terminate-none", + "startupOrders": [] + }, + "cartridges": [ + "c1", + "c2" + ], + "groups": [] + }, + { + "name": "multiple-groups-no-startup-G2", + "dependencies": { + "terminationBehaviour": "terminate-none", + "startupOrders": [] + }, + "cartridges": [ + "c1", + "c2" + ], + "groups": [] + } + ] +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json new file mode 100644 index 0000000..8c4cf1e --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json @@ -0,0 +1,77 @@ +{ + "name": "g-sc-G4", + "dependencies": { + "terminationBehaviour": "terminate-none", + "startupOrders": [ + { + "aliases": [ + "group.g-G3-1x0", + "cartridge.c1-1x0" + ] + } + ] + }, + "cartridges": [ + "c1" + ], + "groups": [ + { + "name": "g-G3", + "dependencies": { + "terminationBehaviour": "terminate-dependents", + "startupOrders": [ + { + "aliases": [ + "group.g-G2-1x0", + "cartridge.c2-1x0" + ] + } + ] + }, + "cartridges": [ + "c2" + ], + "groups": [ + { + "name": "g-G2", + "dependencies": { + "terminationBehaviour": "terminate-dependents", + "startupOrders": [ + { + "aliases": [ + "group.g-G1-1x0", + "cartridge.c3-1x0" + ] + } + ] + }, + "cartridges": [ + "c3" + ], + "groups": [ + { + "name": "g-G1", + "dependencies": { + "terminationBehaviour": "terminate-all", + "startupOrders": [ + { + "aliases": [ + "cartridge.c4-1x0", + "cartridge.c5-1x0" + ] + } + ] + }, + "cartridges": [ + "c4", + "c5" + ], + "groups": [ + ] + } + ] + } + ] + } + ] +} http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json.back ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json.back b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json.back new file mode 100644 index 0000000..3fff281 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/cartridge-groups.json.back @@ -0,0 +1,53 @@ +{ + "name": "s-n-gr-s-G12-t-a-2", + "dependencies": { + "terminationBehaviour": "terminate-dependents", + "startupOrders": [ + { + "aliases": [ + "group.n-st-G2-t-a-2-0x0", + "cartridge.c3-0x0" + ] + }, + { + "aliases": [ + "cartridge.c3-0x0", + "cartridge.c2-0x0" + ] + }, + { + "aliases": [ + "cartridge.c2-0x0", + "cartridge.c1-0x0" + ] + } + ] + }, + "cartridges": [ + "c1", + "c2", + "c3" + ], + "groups": [ + { + "name": "n-st-G2-t-a-2", + "dependencies": { + "terminationBehaviour": "terminate-all", + "startupOrders": [ + { + "aliases": [ + "cartridge.c5-1x0", + "cartridge.c4-1x0" + ] + } + ] + }, + "cartridges": [ + "c4", + "c5" + ], + "groups": [] + } + ] +} + http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/deploy.sh ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/deploy.sh b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/deploy.sh new file mode 100755 index 0000000..ea81357 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/deploy.sh @@ -0,0 +1,43 @@ +#!/bin/sh + +echo ${autoscaling_policies_path}/autoscaling-policy-1.json +echo "Adding autoscale policy..." +curl -X POST -H "Content-Type: application/json" -d "@economy-policy.json" -k -v -u admin:admin https://127.0.0.1:9443/api/autoscalingPolicies + +echo "Adding network partitions..." +curl -X POST -H "Content-Type: application/json" -d "@RegionOne.json" -k -v -u admin:admin https://127.0.0.1:9443/api/networkPartitions + +echo "Adding deployment policies..." +curl -X POST -H "Content-Type: application/json" -d "@static-1.json" -k -v -u admin:admin https://127.0.0.1:9443/api/deploymentPolicies + +echo "Adding tomcat cartridge..." +curl -X POST -H "Content-Type: application/json" -d "@c1.json" -k -v -u admin:admin https://127.0.0.1:9443/api/cartridges + +echo "Adding tomcat1 cartridge..." +curl -X POST -H "Content-Type: application/json" -d "@c2.json" -k -v -u admin:admin https://127.0.0.1:9443/api/cartridges + +echo "Adding tomcat2 cartridge..." +curl -X POST -H "Content-Type: application/json" -d "@c3.json" -k -v -u admin:admin https://127.0.0.1:9443/api/cartridges + +echo "Adding tomcat2 cartridge..." +curl -X POST -H "Content-Type: application/json" -d "@c4.json" -k -v -u admin:admin https://127.0.0.1:9443/api/cartridges +curl -X POST -H "Content-Type: application/json" -d "@c5.json" -k -v -u admin:admin https://127.0.0.1:9443/api/cartridges + + +echo "Adding group6c group..." +curl -X POST -H "Content-Type: application/json" -d "@cartridge-groups.json" -k -v -u admin:admin https://127.0.0.1:9443/api/cartridgeGroups + +sleep 1 + +echo "Adding application policy..." +curl -X POST -H "Content-Type: application/json" -d "@application-policy-1.json" -k -v -u admin:admin https://127.0.0.1:9443/api/applicationPolicies + +sleep 1 + +echo "Creating application..." +curl -X POST -H "Content-Type: application/json" -d "@application-s-g-c1-c2-c3-s.json" -k -v -u admin:admin https://127.0.0.1:9443/api/applications + +sleep 1 + +echo "Deploying application..." +curl -X POST -H "Content-Type: application/json" -k -v -u admin:admin https://127.0.0.1:9443/api/applications/s-g-c1-c2-c3-s/deploy/application-policy-1 http://git-wip-us.apache.org/repos/asf/stratos/blob/0eacfad9/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/economy-policy.json ---------------------------------------------------------------------- diff --git a/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/economy-policy.json b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/economy-policy.json new file mode 100755 index 0000000..b838769 --- /dev/null +++ b/products/stratos/modules/integration/src/test/resources/group-startup-order-test/startup-order-termination-behavior/economy-policy.json @@ -0,0 +1,15 @@ +{ + "id": "economyPolicy", + "loadThresholds": { + "requestsInFlight": { + "threshold": 50 + }, + "memoryConsumption": { + "threshold": 40 + }, + "loadAverage": { + "threshold": 40 + } + } +} +
