Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/0aee220b Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/0aee220b Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/0aee220b Branch: refs/heads/master Commit: 0aee220b76dd1859f18e18bd0553fc91f5575869 Parents: 110b38a 154f28f Author: Udara Liyanage <[email protected]> Authored: Wed Feb 12 22:45:49 2014 -0500 Committer: Udara Liyanage <[email protected]> Committed: Thu Feb 13 05:02:44 2014 -0500 ---------------------------------------------------------------------- .../impl/CloudControllerServiceImpl.java | 6 +- .../validate/AWSEC2PartitionValidator.java | 2 +- .../balancer/algorithm/AlgorithmContext.java | 10 +- .../balancer/cache/AlgorithmContextCache.java | 45 ++++++ .../load/balancer/cache/LoadBalancerCache.java | 130 +++++++++++++++++ .../stratos/load/balancer/util/Constants.java | 3 + .../balancer/test/RoundRobinAlgorithmTest.java | 70 --------- .../manager/subscription/SubscriptionData.java | 18 +++ .../rest/endpoint/services/ServiceUtils.java | 6 +- .../distribution/src/main/conf/axis2.xml | 125 ++++++++-------- .../load-balancer/modules/integration/pom.xml | 19 ++- .../tests/AlgorithmContextCacheTest.java | 55 +++++++ .../tests/LoadBalancerTestServerManager.java | 69 +++++++++ .../tests/RoundRobinAlgorithmTest.java | 70 +++++++++ .../tests/LoadBalancerTestServerManager.java | 53 ------- .../src/test/resources/instrumentation.txt | 2 +- .../src/test/resources/loadbalancer.conf | 142 +++++++++++++++++++ .../integration/src/test/resources/testng.xml | 31 ++++ 18 files changed, 655 insertions(+), 201 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0aee220b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java ---------------------------------------------------------------------- diff --cc components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java index 3185254,0000000..8b65376 mode 100644,000000..100644 --- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java +++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java @@@ -1,162 -1,0 +1,180 @@@ ++/* ++* Copyright (c) 2005-2012, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. ++* ++* WSO2 Inc. 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.manager.subscription; + +import org.apache.stratos.cloud.controller.pojo.PersistanceMapping; +import org.apache.stratos.cloud.controller.pojo.Property; + +/** + * This holds the data that are gathered at the time of subscription. This is usefull when passing subscription details to the method calls. + */ +public class SubscriptionData { + + + private String cartridgeType; + private String cartridgeAlias; + + private String autoscalingPolicyName; + private String deploymentPolicyName; + private String tenantDomain; + private int tenantId; + private String tenantAdminUsername; + private String repositoryType = "git"; + private String repositoryURL; + private boolean isPrivateRepository; + private String repositoryUsername; + private String repositoryPassword; + private String lbClusterId; + private Property[] properties; + private String dataCartridgeAlias; + private String lbAlias; + private PersistanceMapping persistanceMapping; + + public String getCartridgeType() { + return cartridgeType; + } + + public void setCartridgeType(String cartridgeType) { + this.cartridgeType = cartridgeType; + } + + public String getCartridgeAlias() { + return cartridgeAlias; + } + + public void setCartridgeAlias(String cartridgeAlias) { + this.cartridgeAlias = cartridgeAlias; + } + + public String getAutoscalingPolicyName() { + return autoscalingPolicyName; + } + + public void setAutoscalingPolicyName(String autoscalingPolicyName) { + this.autoscalingPolicyName = autoscalingPolicyName; + } + + public String getDeploymentPolicyName() { + return deploymentPolicyName; + } + + public void setDeploymentPolicyName(String deploymentPolicyName) { + this.deploymentPolicyName = deploymentPolicyName; + } + + public String getTenantDomain() { + return tenantDomain; + } + + public void setTenantDomain(String tenantDomain) { + this.tenantDomain = tenantDomain; + } + + public int getTenantId() { + return tenantId; + } + + public void setTenantId(int tenantId) { + this.tenantId = tenantId; + } + + public String getTenantAdminUsername() { + return tenantAdminUsername; + } + + public void setTenantAdminUsername(String tenantAdminUsername) { + this.tenantAdminUsername = tenantAdminUsername; + } + + public String getRepositoryType() { + return repositoryType; + } + + public void setRepositoryType(String repositoryType) { + this.repositoryType = repositoryType; + } + + public String getRepositoryURL() { + return repositoryURL; + } + + public void setRepositoryURL(String repositoryURL) { + this.repositoryURL = repositoryURL; + } + + public boolean isPrivateRepository() { + return isPrivateRepository; + } + + public void setPrivateRepository(boolean isPrivateRepository) { + this.isPrivateRepository = isPrivateRepository; + } + + public String getRepositoryUsername() { + return repositoryUsername; + } + + public void setRepositoryUsername(String repositoryUsername) { + this.repositoryUsername = repositoryUsername; + } + + public String getRepositoryPassword() { + return repositoryPassword; + } + + public void setRepositoryPassword(String repositoryPassword) { + this.repositoryPassword = repositoryPassword; + } + + public String getLbClusterId() { + return lbClusterId; + } + + public void setLbClusterId(String lbClusterId) { + this.lbClusterId = lbClusterId; + } + + public Property[] getProperties() { + return properties; + } + + public void setProperties(Property[] properties) { + this.properties = properties; + } + + public void setDataCartridgeAlias(String dataCartridgeAlias) {this.dataCartridgeAlias = dataCartridgeAlias; } + + public String getDataCartridgeAlias() {return dataCartridgeAlias;} + + public String getLbAlias() { + return lbAlias; + } + + public void setLbAlias(String lbAlias) { + this.lbAlias = lbAlias; + } + + public PersistanceMapping getPersistanceMapping() { + return persistanceMapping; + } + + public void setPersistanceMapping(PersistanceMapping persistanceMapping) { + this.persistanceMapping = persistanceMapping; + } +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0aee220b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java ---------------------------------------------------------------------- diff --cc components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java index 0099416,510c366..7a3cd33 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java @@@ -774,71 -774,17 +774,71 @@@ public class ServiceUtils throw new ADCException(msg, e); } + String cartridgeType = cartridgeInfoBean.getCartridgeType(); + String deploymentPolicy = cartridgeInfoBean.getDeploymentPolicy(); + String autoscalingPolicy = cartridgeInfoBean.getAutoscalePolicy(); + String dataCartridgeAlias = cartridgeInfoBean.getDataCartridgeAlias(); + + SubscriptionData subscriptionData = new SubscriptionData(); + subscriptionData.setCartridgeType(cartridgeType); + subscriptionData.setCartridgeAlias(cartridgeInfoBean.getAlias().trim()); + subscriptionData.setDataCartridgeAlias(dataCartridgeAlias); + subscriptionData.setAutoscalingPolicyName(autoscalingPolicy); + subscriptionData.setDeploymentPolicyName(deploymentPolicy); + subscriptionData.setTenantDomain(tenantDomain); + subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext)); + subscriptionData.setTenantAdminUsername(tenantUsername); + subscriptionData.setRepositoryType("git"); + subscriptionData.setRepositoryURL(cartridgeInfoBean.getRepoURL()); + subscriptionData.setRepositoryUsername(cartridgeInfoBean.getRepoURL()); + subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword()); + + Properties properties = new Properties(); + if(cartridgeInfoBean.getPersistanceMappingBean() != null){ + PersistanceMappingBean persistanceMappingBean = cartridgeInfoBean.getPersistanceMappingBean(); + /* + PersistanceMapping persistanceMapping = new PersistanceMapping(); + persistanceMapping.setPersistanceRequired(persistanceMappingBean.persistanceRequired); + persistanceMapping.setSize(persistanceMappingBean.size); + persistanceMapping.setDevice(persistanceMappingBean.device); + persistanceMapping.setRemoveOntermination(persistanceMappingBean.removeOnTermination); + subscriptionData.setPersistanceMapping(persistanceMapping); + */ ++ ++ // Add persistance mapping properties to the subscription. + Property persistanceRequiredProperty = new Property(); + persistanceRequiredProperty.setName("is-required"); + persistanceRequiredProperty.setValue(String.valueOf(persistanceMappingBean.persistanceRequired)); + + Property sizeProperty = new Property(); + persistanceRequiredProperty.setName("is-required"); + persistanceRequiredProperty.setValue(String.valueOf(persistanceMappingBean.size)); + + Property deviceProperty = new Property(); + persistanceRequiredProperty.setName("is-required"); + persistanceRequiredProperty.setValue(String.valueOf(persistanceMappingBean.device)); + + Property deleteOnTerminationProperty = new Property(); + persistanceRequiredProperty.setName("is-required"); + persistanceRequiredProperty.setValue(String.valueOf(persistanceMappingBean.removeOnTermination)); + + Properties props = new Properties(); + props.setProperties(new Property[]{persistanceRequiredProperty,sizeProperty, deviceProperty, deleteOnTerminationProperty}); + } + + // If multitenant, return for now. TODO -- fix properly if(cartridgeInfo != null && cartridgeInfo.getMultiTenant()) { log.info(" ******* MT cartridge ******* "); - - CartridgeSubscription cartridgeSubscription = - cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, alias, autoscalingPolicy, - deploymentPolicy ,tenantDomain, - ApplicationManagementUtil.getTenantId(configurationContext), - userName, "git", repoURL, false, repoUsername, repoPassword, null, null); + + subscriptionData.setPrivateRepository(false); + subscriptionData.setLbClusterId(null); + subscriptionData.setProperties(null); - ++ + CartridgeSubscription cartridgeSubscription = + cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData); log.info(" --- ** -- "); - return cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription); + return cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription, properties); }
