introducing lb config to cartridge definition
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/1d441160 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/1d441160 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/1d441160 Branch: refs/heads/master Commit: 1d4411608ec8c2d0ad092faa5f96d68709931c6e Parents: 88167da Author: Nirmal Fernando <[email protected]> Authored: Tue Dec 10 19:04:57 2013 +0530 Committer: Nirmal Fernando <[email protected]> Committed: Tue Dec 10 19:16:13 2013 +0530 ---------------------------------------------------------------------- .../cloud/controller/pojo/Cartridge.java | 20 ++++++ .../cloud/controller/pojo/CartridgeConfig.java | 20 ++++++ .../cloud/controller/pojo/CartridgeInfo.java | 10 +++ .../controller/pojo/LoadbalancerConfig.java | 70 ++++++++++++++++++++ .../controller/util/CloudControllerUtil.java | 8 +++ 5 files changed, 128 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1d441160/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java index a339b2e..f01be17 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Cartridge.java @@ -51,6 +51,10 @@ public class Cartridge implements Serializable{ private boolean multiTenant; + private String defaultAutoscalingPolicy; + + private LoadbalancerConfig lbConfig; + private List<PortMapping> portMappings = new ArrayList<PortMapping>(); private List<AppType> appTypeMappings = new ArrayList<AppType>(); @@ -290,5 +294,21 @@ public class Cartridge implements Serializable{ public void setPartitionToIaasProvider(Map<String, IaasProvider> partitionToIaasProvider) { this.partitionToIaasProvider = partitionToIaasProvider; } + + public LoadbalancerConfig getLbConfig() { + return lbConfig; + } + + public void setLbConfig(LoadbalancerConfig lbConfig) { + this.lbConfig = lbConfig; + } + + public String getDefaultAutoscalingPolicy() { + return defaultAutoscalingPolicy; + } + + public void setDefaultAutoscalingPolicy(String defaultAutoscalingPolicy) { + this.defaultAutoscalingPolicy = defaultAutoscalingPolicy; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1d441160/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeConfig.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeConfig.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeConfig.java index 6435134..e34ac77 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeConfig.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeConfig.java @@ -48,10 +48,14 @@ public class CartridgeConfig implements Serializable { private String[] deploymentDirs; private PortMapping[] portMappings; + + private String defaultAutoscalingPolicy; private Properties properties; private IaasConfig[] iaasConfigs; + + private LoadbalancerConfig lbConfig; public String getType() { @@ -213,4 +217,20 @@ public class CartridgeConfig implements Serializable { } return propertyDetailBuilder.toString(); } + + public LoadbalancerConfig getLbConfig() { + return lbConfig; + } + + public void setLbConfig(LoadbalancerConfig lbConfig) { + this.lbConfig = lbConfig; + } + + public String getDefaultAutoscalingPolicy() { + return defaultAutoscalingPolicy; + } + + public void setDefaultAutoscalingPolicy(String defaultAutoscalingPolicy) { + this.defaultAutoscalingPolicy = defaultAutoscalingPolicy; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1d441160/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeInfo.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeInfo.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeInfo.java index 1121c4e..65cb954 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeInfo.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/CartridgeInfo.java @@ -50,6 +50,8 @@ public class CartridgeInfo { private Property[] properties; + private String defaultAutoscalingPolicy; + public CartridgeInfo(){ } @@ -160,4 +162,12 @@ public class CartridgeInfo { public void setProperties(Property[] properties) { this.properties = properties; } + + public String getDefaultAutoscalingPolicy() { + return defaultAutoscalingPolicy; + } + + public void setDefaultAutoscalingPolicy(String defaultAutoscalingPolicy) { + this.defaultAutoscalingPolicy = defaultAutoscalingPolicy; + } } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1d441160/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/LoadbalancerConfig.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/LoadbalancerConfig.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/LoadbalancerConfig.java new file mode 100644 index 0000000..18810b8 --- /dev/null +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/LoadbalancerConfig.java @@ -0,0 +1,70 @@ +/* + * 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.cloud.controller.pojo; + +import java.io.Serializable; + +/** + * This class is used to support <link>CartridgeConfig</link> + * class for the Rest API + */ +public class LoadbalancerConfig implements Serializable { + + private static final long serialVersionUID = 289225330995632449L; + + private String type; + + private Properties properties; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Properties getProperties() { + return properties; + } + + public void setProperties(Properties properties) { + this.properties = properties; + } + + public String toString () { + + return " [ Type: " + type + ", Properties: " + getIaasProperties() + " ] "; + } + + private String getIaasProperties () { + + StringBuilder iaasPropertyBuilder = new StringBuilder(); + if (properties != null) { + Property [] propertyArray = properties.getProperties(); + if(propertyArray.length > 0) { + for (Property property : propertyArray) { + iaasPropertyBuilder.append(property.toString() + " | "); + } + } + } + return iaasPropertyBuilder.toString(); + } +} http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1d441160/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java index 1b0277c..2165803 100644 --- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java +++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java @@ -54,6 +54,8 @@ public class CloudControllerUtil { return null; } Cartridge cartridge = new Cartridge(); + + // populate cartridge cartridge.setType(config.getType()); cartridge.setDisplayName(config.getDisplayName()); cartridge.setDescription(config.getDescription()); @@ -64,6 +66,7 @@ public class CloudControllerUtil { cartridge.setBaseDir(config.getBaseDir()); cartridge.setPortMappings(Arrays.asList(config.getPortMappings())); cartridge.setMultiTenant(config.isMultiTenant()); + cartridge.setDefaultAutoscalingPolicy(config.getDefaultAutoscalingPolicy()); org.apache.stratos.cloud.controller.pojo.Properties props = config.getProperties(); if (props != null) { @@ -71,9 +74,13 @@ public class CloudControllerUtil { cartridge.addProperty(prop.getName(), prop.getValue()); } } + + // populate LB config + cartridge.setLbConfig(config.getLbConfig()); List<IaasProvider> iaases = FasterLookUpDataHolder.getInstance().getIaasProviders(); + // populate IaaSes IaasConfig[] iaasConfigs = config.getIaasConfigs(); if (iaasConfigs != null) { for (IaasConfig iaasConfig : iaasConfigs) { @@ -154,6 +161,7 @@ public class CloudControllerUtil { carInfo.setVersion(cartridge.getVersion()); carInfo.setMultiTenant(cartridge.isMultiTenant()); carInfo.setBaseDir(cartridge.getBaseDir()); + carInfo.setDefaultAutoscalingPolicy(cartridge.getDefaultAutoscalingPolicy()); carInfo.setPortMappings(cartridge.getPortMappings() .toArray(new PortMapping[cartridge.getPortMappings() .size()]));
