You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/10 15:54:06 UTC
[07/16] git commit: introducing lb config to cartridge definition
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 <ni...@apache.org>
Authored: Tue Dec 10 19:04:57 2013 +0530
Committer: Nirmal Fernando <ni...@apache.org>
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()]));