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 <[email protected]> Authored: Mon Apr 27 13:30:28 2015 +0530 Committer: Lahiru Sandaruwan <[email protected]> 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; }
