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()]));