added persistance volume  capability

Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/01060f53
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/01060f53
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/01060f53

Branch: refs/heads/master
Commit: 01060f53b34ac4b7b056505431657804fc0d1851
Parents: a0d6ce5
Author: Udara Liyanage <[email protected]>
Authored: Sat Jan 11 19:20:48 2014 -0500
Committer: Udara Liyanage <[email protected]>
Committed: Sat Jan 11 19:20:48 2014 -0500

----------------------------------------------------------------------
 .../cloud/controller/pojo/Cartridge.java        |  16 +
 .../cloud/controller/pojo/CartridgeConfig.java  |  20 +-
 .../controller/pojo/PersistanceMapping.java     |  93 +++
 .../controller/util/CloudControllerUtil.java    |   4 +
 .../definition/CartridgeDefinitionBean.java     |  16 +-
 .../definition/PersistanceMappingBean.java      |  38 ++
 .../bean/util/converter/PojoConverter.java      |  31 +-
 .../main/resources/CloudControllerService.wsdl  | 601 ++++++++++---------
 8 files changed, 518 insertions(+), 301 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/01060f53/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 d52e52b..f43dfba 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
@@ -57,6 +57,8 @@ public class Cartridge implements Serializable{
     
     private List<PortMapping> portMappings = new ArrayList<PortMapping>();
     
+    private List<PersistanceMapping> peristanceMappings = new 
ArrayList<PersistanceMapping>();
+    
     private List<AppType> appTypeMappings = new ArrayList<AppType>();
     
     /**
@@ -301,5 +303,19 @@ public class Cartridge implements Serializable{
     public void setDefaultAutoscalingPolicy(String defaultAutoscalingPolicy) {
         this.defaultAutoscalingPolicy = defaultAutoscalingPolicy;
     }
+
+       /**
+        * @return the peristanceMappings
+        */
+       public List<PersistanceMapping> getPeristanceMappings() {
+               return peristanceMappings;
+       }
+
+       /**
+        * @param peristanceMappings the peristanceMappings to set
+        */
+       public void setPeristanceMappings(List<PersistanceMapping> 
peristanceMappings) {
+               this.peristanceMappings = peristanceMappings;
+       }
     
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/01060f53/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 e34ac77..6b46ec5 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
@@ -49,11 +49,13 @@ public class CartridgeConfig implements Serializable {
 
     private PortMapping[] portMappings;
     
+    private PersistanceMapping [] persistanceMappings;
+    
     private String defaultAutoscalingPolicy;
 
     private Properties properties;
 
-    private IaasConfig[] iaasConfigs;
+    private IaasConfig[] iaasConfigs;    
     
     private LoadbalancerConfig lbConfig;
 
@@ -165,7 +167,7 @@ public class CartridgeConfig implements Serializable {
     private String getDeploymentDetails () {
 
         StringBuilder deploymentDetailBuilder = new StringBuilder();
-        deploymentDetailBuilder.append("Base direcotry: " + baseDir);
+        deploymentDetailBuilder.append("Base direcotry: " + getBaseDir());
         if(deploymentDirs != null) {
             if(deploymentDirs.length > 0) {
                 deploymentDetailBuilder.append(" Direcotries: ");
@@ -233,4 +235,18 @@ public class CartridgeConfig implements Serializable {
     public void setDefaultAutoscalingPolicy(String defaultAutoscalingPolicy) {
         this.defaultAutoscalingPolicy = defaultAutoscalingPolicy;
     }
+
+       /**
+        * @return the persistanceMappings
+        */
+       public PersistanceMapping [] getPersistanceMappings() {
+               return persistanceMappings;
+       }
+
+       /**
+        * @param persistanceMappings the persistanceMappings to set
+        */
+       public void setPersistanceMappings(PersistanceMapping [] 
persistanceMappings) {
+               this.persistanceMappings = persistanceMappings;
+       }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/01060f53/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/PersistanceMapping.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/PersistanceMapping.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/PersistanceMapping.java
new file mode 100644
index 0000000..f555b0a
--- /dev/null
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/PersistanceMapping.java
@@ -0,0 +1,93 @@
+/*
+ * 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;
+
+public class PersistanceMapping implements Serializable{
+       
+       private static final long serialVersionUID = 3455721979991902731L;
+       private String snapshotId;
+       private int size;
+       private String device;
+       private boolean removeOntermination;            
+
+    public String toString () {
+        return "Snapshot: " + snapshotId + ", Size: " + size + ", device: " + 
device + " remove on termination " + removeOntermination;
+    }
+
+       /**
+        * @return the snapshotId
+        */
+    public String getSnapshotId() {
+               return snapshotId;
+       }
+
+
+
+       /**
+        * @param snapshotId the snapshotId to set
+        */
+    public void setSnapshotId(String snapshotId) {
+               this.snapshotId = snapshotId;
+       }
+
+       /**
+        * @return the size
+        */
+       public int getSize() {
+               return size;
+       }
+
+       /**
+        * @param size the size to set
+        */
+       public void setSize(int size) {
+               this.size = size;
+       }
+
+       /**
+        * @return the device
+        */
+       public String getDevice() {
+               return device;
+       }
+
+       /**
+        * @param device the device to set
+        */
+       public void setDevice(String device) {
+               this.device = device;
+       }
+
+       /**
+        * @return the removeOntermination
+        */
+       public boolean isRemoveOntermination() {
+               return removeOntermination;
+       }
+
+       /**
+        * @param removeOntermination the removeOntermination to set
+        */
+       public void setRemoveOntermination(boolean removeOntermination) {
+               this.removeOntermination = removeOntermination;
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/01060f53/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 53a28ae..99eca34 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
@@ -68,6 +68,10 @@ public class CloudControllerUtil {
         cartridge.setVersion(config.getVersion());
         cartridge.setBaseDir(config.getBaseDir());
         cartridge.setPortMappings(Arrays.asList(config.getPortMappings()));
+        
+        if(config.getPersistanceMappings() != null && 
config.getPersistanceMappings().length >0){
+               
cartridge.setPeristanceMappings(Arrays.asList(config.getPersistanceMappings()));
+        }
         cartridge.setMultiTenant(config.isMultiTenant());
         
cartridge.setDefaultAutoscalingPolicy(config.getDefaultAutoscalingPolicy());
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/01060f53/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
index 7984b5f..5466a51 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
@@ -43,6 +43,8 @@ public class CartridgeDefinitionBean {
     public DeploymentBean deployment;
 
     public List<PortMappingBean> portMapping;
+    
+    public List<PersistanceMappingBean> persistanceMapping;
 
     public List<IaasProviderBean> iaasProvider;
 
@@ -57,10 +59,20 @@ public class CartridgeDefinitionBean {
         return "Type: " + type + ", Provider: " + provider + ", Host: " + host 
+ ", Display Name: " + displayName +
                 ", Description: " + description +  ", Version: " + version + 
", Multitenant " + multiTenant + "\n" +
                 getDeploymentDetails() + "\n PortMapping: " + 
getPortMappings() + "\n IaaS: " + getIaasProviders() +
-                "\n LoadBalancer: " + getLoadBalancerInfo() + "\n Properties: 
" + getProperties();
+                "\n LoadBalancer: " + getLoadBalancerInfo() + "\n Properties: 
" + getProperties() +"\n Volume mappings "+ getPersistanceMappings();
     }
 
-    private String getDeploymentDetails () {
+    private String getPersistanceMappings() {
+       StringBuilder persistanceMappingBuilder = new StringBuilder();
+        if(persistanceMapping != null && !persistanceMapping.isEmpty()) {
+            for(PersistanceMappingBean persistancetMappingBean : 
persistanceMapping) {
+               
persistanceMappingBuilder.append(persistancetMappingBean.toString());
+            }
+        }
+        return persistanceMappingBuilder.toString();
+       }
+
+       private String getDeploymentDetails () {
 
         if(deployment != null) {
             return deployment.toString();

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/01060f53/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/PersistanceMappingBean.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/PersistanceMappingBean.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/PersistanceMappingBean.java
new file mode 100644
index 0000000..2b7229d
--- /dev/null
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/PersistanceMappingBean.java
@@ -0,0 +1,38 @@
+/*
+ * 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.rest.endpoint.bean.cartridge.definition;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class PersistanceMappingBean {
+
+    public String snapshotId;
+
+    public int size;
+
+    public String device;
+    
+    public boolean removeOnTermination;
+
+    public String toString () {
+        return " [ Snapshot : " + snapshotId + ", Size: " + size + ", device: 
" + device + " remove on termination " + removeOnTermination +"] ";
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/01060f53/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 d6085fb..b251a6d 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
@@ -27,8 +27,11 @@ import 
org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.Deploy
 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.PersistanceMappingBean;
 import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.PortMappingBean;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PropertyBean;
+import 
org.apache.stratos.rest.endpoint.bean.cartridge.definition.PersistanceMappingBean;
+
 
 import java.util.ArrayList;
 import java.util.List;
@@ -60,6 +63,12 @@ public class PojoConverter {
         if(cartridgeDefinitionBean.portMapping != null && 
!cartridgeDefinitionBean.portMapping.isEmpty()) {
             
cartridgeConfig.setPortMappings(getPortMappingsAsArray(cartridgeDefinitionBean.portMapping));
         }
+        
+        //persistance mapping
+        if(cartridgeDefinitionBean.persistanceMapping != null && 
!cartridgeDefinitionBean.persistanceMapping.isEmpty()) {
+            
cartridgeConfig.setPersistanceMappings(getPersistanceMappingsAsArray(cartridgeDefinitionBean.persistanceMapping));
+        }
+        
         //IaaS
         if(cartridgeDefinitionBean.iaasProvider != null & 
!cartridgeDefinitionBean.iaasProvider.isEmpty()) {
             
cartridgeConfig.setIaasConfigs(getIaasConfigsAsArray(cartridgeDefinitionBean.iaasProvider));
@@ -76,7 +85,27 @@ public class PojoConverter {
         return cartridgeConfig;
     }
 
-    private static LoadbalancerConfig getLBConfig(LoadBalancerBean 
loadBalancer) {
+    private static PersistanceMapping[] 
getPersistanceMappingsAsArray(List<PersistanceMappingBean> 
persistanceMappingBeans) {
+       System.out.println("no of persistance beans " + 
persistanceMappingBeans.size());
+       PersistanceMappingBean[] persistBeanArr = new 
PersistanceMappingBean[persistanceMappingBeans.size()];
+        persistBeanArr = 
(PersistanceMappingBean[])persistanceMappingBeans.toArray(new 
PersistanceMappingBean[0]);
+
+        PersistanceMapping[] persistanceMappingArr = new 
PersistanceMapping[persistBeanArr.length];
+        for (int i = 0; i < persistanceMappingArr.length; i++)
+        {
+          System.out.println("persistance bean " + 
persistBeanArr[i].toString());
+          PersistanceMapping persistMapping = new PersistanceMapping();
+          persistMapping.setSnapshotId(persistBeanArr[i].snapshotId);
+          persistMapping.setDevice(persistBeanArr[i].device);
+          persistMapping.setSize(persistBeanArr[i].size);
+          
persistMapping.setRemoveOntermination(persistBeanArr[i].removeOnTermination);
+          persistanceMappingArr[i] = persistMapping;
+        }
+
+        return persistanceMappingArr;
+       }
+
+       private static LoadbalancerConfig getLBConfig(LoadBalancerBean 
loadBalancer) {
         LoadbalancerConfig lbConfig = new LoadbalancerConfig();
         lbConfig.setType(loadBalancer.type);
         if (loadBalancer.property != null && !loadBalancer.property.isEmpty()) 
{

Reply via email to