modifications to deployCartridge in order to cater LB cartridge scenario
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/adc7ec72 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/adc7ec72 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/adc7ec72 Branch: refs/heads/master Commit: adc7ec72c8bbd392610bd3de9c3f4f6c8bacba68 Parents: eaf1774 Author: Nirmal Fernando <[email protected]> Authored: Fri Dec 6 22:51:54 2013 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Tue Dec 10 19:16:12 2013 +0530 ---------------------------------------------------------------------- .../apache/stratos/rest/endpoint/Constants.java | 2 +- .../bean/util/converter/PojoConverter.java | 10 +++++++- .../rest/endpoint/services/ServiceUtils.java | 25 ++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/adc7ec72/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java index 3574e17..c3ea68f 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java @@ -24,5 +24,5 @@ package org.apache.stratos.rest.endpoint; public class Constants { public static final String SUPER_TENANT_SERVICE = "super.tenant.service"; - + public static final String IS_LOAD_BALANCER = "load.balancer"; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/adc7ec72/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java index 81ff0c5..21e5247 100644 --- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java +++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java @@ -26,6 +26,7 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.*; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.IaasProviderBean; +import org.apache.stratos.rest.endpoint.bean.cartridge.definition.LoadBalancerBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PortMappingBean; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PropertyBean; @@ -63,7 +64,7 @@ public class PojoConverter { } //LB if(cartridgeDefinitionBean.loadBalancer != null) { - //cartridgeConfig.set + cartridgeConfig.setLbConfig(getLBConfig(cartridgeDefinitionBean.loadBalancer)); } //Properties if(cartridgeDefinitionBean.property != null && !cartridgeDefinitionBean.property.isEmpty()) { @@ -73,6 +74,13 @@ public class PojoConverter { return cartridgeConfig; } + private static LoadbalancerConfig getLBConfig(LoadBalancerBean loadBalancer) { + LoadbalancerConfig lbConfig = new LoadbalancerConfig(); + lbConfig.setType(loadBalancer.type); + lbConfig.setProperties(getProperties(loadBalancer.property)); + return lbConfig; + } + private static PortMapping[] getPortMappingsAsArray(List<PortMappingBean> portMappingBeans) { //convert to an array http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/adc7ec72/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java ---------------------------------------------------------------------- diff --git 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 index 6aa0ea9..3965c1b 100644 --- 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 @@ -37,11 +37,15 @@ import org.apache.stratos.adc.mgt.utils.PersistenceManager; import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService; import org.apache.stratos.cloud.controller.pojo.CartridgeConfig; import org.apache.stratos.cloud.controller.pojo.CartridgeInfo; +import org.apache.stratos.cloud.controller.pojo.LoadbalancerConfig; +import org.apache.stratos.cloud.controller.pojo.Properties; +import org.apache.stratos.rest.endpoint.Constants; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition; import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy; import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy; import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean; +import org.apache.stratos.rest.endpoint.bean.cartridge.definition.LoadBalancerBean; import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter; import org.apache.stratos.rest.endpoint.exception.RestAPIException; import org.wso2.carbon.context.PrivilegedCarbonContext; @@ -69,7 +73,28 @@ public class ServiceUtils { } try { + // call CC cloudControllerServiceClient.deployCartridgeDefinition(cartridgeConfig); + // is a LB Cartridge? + Properties properties = cartridgeConfig.getProperties(); + if (properties != null && properties.getProperties() != null) { + for (org.apache.stratos.cloud.controller.pojo.Property prop : + properties.getProperties()) { + + if (Constants.IS_LOAD_BALANCER.equals(prop.getName())) { + if ("true".equals(prop.getValue())) { + if (log.isDebugEnabled()) { + log.debug("This is a load balancer Cartridge definition. " + + "Type: " + cartridgeConfig.getType()); + } + return; + } + } + + } + } + // if not an LB Cartridge + LoadbalancerConfig lbConfig = cartridgeConfig.getLbConfig(); } catch (Exception e) { throw new RestAPIException(e);
