You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2015/04/27 14:24:05 UTC

[2/3] stratos git commit: Adding properties to add payload parameters in network partition

Adding properties to add payload parameters in network partition


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

Branch: refs/heads/master
Commit: 34e9140637366e171c28f0a277786d7116bd3bb4
Parents: 3ff271d
Author: Vishanth <vi...@gmail.com>
Authored: Mon Apr 27 13:30:28 2015 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Mon Apr 27 17:53:44 2015 +0530

----------------------------------------------------------------------
 .../controller/domain/NetworkPartition.java     |   11 +
 .../impl/CloudControllerServiceImpl.java        |   23 +
 .../beans/partition/NetworkPartitionBean.java   |   11 +
 .../util/converter/ObjectConverter.java         |   20 +
 .../main/resources/CloudControllerService.wsdl  | 1045 +++++++++---------
 5 files changed, 588 insertions(+), 522 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/34e91406/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartition.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartition.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartition.java
index d2ddbb4..1c589fd 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartition.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/NetworkPartition.java
@@ -21,6 +21,8 @@ package org.apache.stratos.cloud.controller.domain;
 
 import java.io.Serializable;
 import java.util.Arrays;
+import org.apache.stratos.common.Properties;
+
 
 /**
  * The model class for NetworkPartition definition.
@@ -34,6 +36,7 @@ public class NetworkPartition implements Serializable {
     private boolean activeByDefault;
     private Partition[] partitions;
     private String partitionAlgo;
+    private Properties properties;
 
     public void setPartitions(Partition[] partitions) {
         if (partitions == null) {
@@ -99,4 +102,12 @@ public class NetworkPartition implements Serializable {
     public void setPartitionAlgo(String partitionAlgo) {
         this.partitionAlgo = partitionAlgo;
     }
+
+    public Properties getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Properties properties) {
+        this.properties = properties;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/34e91406/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index 6e66924..200852b 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -58,6 +58,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
     private static final Log log = LogFactory.getLog(CloudControllerServiceImpl.class);
 
     private static final String PERSISTENCE_MAPPING = "PERSISTENCE_MAPPING";
+    public static final String PAYLOAD_PARAMETER = "payload_parameter.";
 
     private CloudControllerContext cloudControllerContext = CloudControllerContext.getInstance();
     private ExecutorService executorService;
@@ -432,6 +433,28 @@ public class CloudControllerServiceImpl implements CloudControllerService {
                 }
             }
 
+            NetworkPartition networkPartition =
+                    CloudControllerContext.getInstance().getNetworkPartition(memberContext.getNetworkPartitionId());
+
+
+            if (networkPartition.getProperties() != null) {
+                if (networkPartition.getProperties().getProperties() != null) {
+                    for (Property property : networkPartition.getProperties().getProperties()) {
+                        // check if a property is related to the payload. Currently
+                        // this is done by checking if the
+                        // property name starts with 'payload_parameter.' suffix. If
+                        // so the payload param name will
+                        // be taken as the substring from the index of '.' to the
+                        // end of the property name.
+                        if (property.getName().startsWith(PAYLOAD_PARAMETER)) {
+                            String propertyName = property.getName();
+                            String payloadParamName = propertyName.substring(propertyName.indexOf(".") + 1);
+                            addToPayload(payload, payloadParamName, property.getValue());
+                        }
+                    }
+                }
+            }
+
             Iaas iaas = iaasProvider.getIaas();
             if (clusterContext.isVolumeRequired()) {
                 addToPayload(payload, PERSISTENCE_MAPPING, getPersistencePayload(clusterContext, iaas).toString());

http://git-wip-us.apache.org/repos/asf/stratos/blob/34e91406/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/partition/NetworkPartitionBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/partition/NetworkPartitionBean.java b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/partition/NetworkPartitionBean.java
index fde2023..fc299e2 100644
--- a/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/partition/NetworkPartitionBean.java
+++ b/components/org.apache.stratos.common/src/main/java/org/apache/stratos/common/beans/partition/NetworkPartitionBean.java
@@ -19,6 +19,8 @@
 
 package org.apache.stratos.common.beans.partition;
 
+import org.apache.stratos.common.beans.cartridge.PropertyBean;
+
 import javax.xml.bind.annotation.XmlRootElement;
 import java.util.List;
 
@@ -29,6 +31,7 @@ public class NetworkPartitionBean {
     private String provider;
     private List<PartitionBean> partitions;
     private String partitionAlgo;
+    private List<PropertyBean> properties;
 
     public String getId() {
         return id;
@@ -61,4 +64,12 @@ public class NetworkPartitionBean {
     public void setPartitionAlgo(String partitionAlgo) {
         this.partitionAlgo = partitionAlgo;
     }
+
+    public List<PropertyBean> getProperties() {
+        return properties;
+    }
+
+    public void setProperties(List<PropertyBean> properties) {
+        this.properties = properties;
+    }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/34e91406/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
index 73891a3..a375522 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
@@ -413,6 +413,23 @@ public class ObjectConverter {
             }
             networkPartition.setPartitions(partitionList);
         }
+
+        if (stubNetworkPartition.getProperties() != null) {
+            List<org.apache.stratos.common.beans.cartridge.PropertyBean> propertyBeanList
+                    = new ArrayList<org.apache.stratos.common.beans.cartridge.PropertyBean>();
+            if (stubNetworkPartition.getProperties() != null) {
+                if (stubNetworkPartition.getProperties().getProperties() != null) {
+                    for (org.apache.stratos.cloud.controller.stub.Property stubProperty :
+                            stubNetworkPartition.getProperties().getProperties()) {
+                        if (stubProperty != null) {
+                            propertyBeanList.add(convertStubPropertyToPropertyBean(stubProperty));
+                        }
+                    }
+                }
+            }
+            networkPartition.setProperties(propertyBeanList);
+        }
+
         return networkPartition;
     }
 
@@ -573,6 +590,9 @@ public class ObjectConverter {
         if (networkPartitionBean.getPartitions() != null && !networkPartitionBean.getPartitions().isEmpty()) {
             networkPartition.setPartitions(convertToStubPartitions(networkPartitionBean.getPartitions()));
         }
+        if (networkPartitionBean.getProperties() != null && !networkPartitionBean.getProperties().isEmpty()) {
+            networkPartition.setProperties(convertPropertyBeansToCCStubProperties(networkPartitionBean.getProperties()));
+        }
         return networkPartition;
     }