You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by is...@apache.org on 2013/12/09 16:30:50 UTC

[1/2] git commit: initial impl for deploying partitions, autoscaling policies and deployment policies from Rest API

Updated Branches:
  refs/heads/master 19fc9f8b3 -> 522db6033


initial impl for deploying partitions, autoscaling policies and deployment policies from Rest API


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

Branch: refs/heads/master
Commit: 5629d1d9084a7ef260626cfd8296499e9eceaaf5
Parents: b62ed0c
Author: Isuru <is...@wso2.com>
Authored: Mon Dec 9 20:59:15 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Mon Dec 9 20:59:15 2013 +0530

----------------------------------------------------------------------
 .../adc/mgt/client/AutoscalerServiceClient.java |  63 ++++++--
 .../autoscaler/partition/PartitionGroup.java    |   2 +-
 .../policy/deployment/DeploymentPolicy.java     |   4 +
 .../bean/util/converter/PojoConverter.java      | 149 ++++++++++++++++++-
 .../rest/endpoint/services/ServiceUtils.java    |  84 +++++++++--
 .../rest/endpoint/services/StratosAdmin.java    |  57 +++++--
 .../pom.xml                                     |   2 +-
 7 files changed, 317 insertions(+), 44 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5629d1d9/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/AutoscalerServiceClient.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/AutoscalerServiceClient.java
index 26b80a8..186ea36 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/AutoscalerServiceClient.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/AutoscalerServiceClient.java
@@ -24,7 +24,10 @@ import org.apache.axis2.context.ConfigurationContext;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.adc.mgt.internal.DataHolder;
+import org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy;
+import org.apache.stratos.autoscaler.policy.model.AutoscalePolicy;
 import org.apache.stratos.autoscaler.stub.AutoScalerServiceStub;
+import org.apache.stratos.cloud.controller.deployment.partition.Partition;
 
 import java.rmi.RemoteException;
 
@@ -61,12 +64,12 @@ public class AutoscalerServiceClient {
         return serviceClient;
     }
 
-    /*public org.apache.stratos.cloud.controller.deployment.partition.Partition[] getAvailablePartitions ()
+    public org.apache.stratos.cloud.controller.deployment.partition.Partition[] getAvailablePartitions ()
             throws Exception {
 
         org.apache.stratos.cloud.controller.deployment.partition.Partition[] partitions;
         try {
-            partitions = stub.get;
+            partitions = stub.getAllAvailablePartitions();
 
         } catch (RemoteException e) {
             String errorMsg = "Error in getting available partitions";
@@ -75,9 +78,9 @@ public class AutoscalerServiceClient {
         }
 
         return partitions;
-    }*/
+    }
 
-    /*public org.apache.stratos.cloud.controller.deployment.partition.Partition getPartition (String partitionId)
+    public org.apache.stratos.cloud.controller.deployment.partition.Partition getPartition (String partitionId)
             throws Exception{
 
         org.apache.stratos.cloud.controller.deployment.partition.Partition partition;
@@ -91,15 +94,15 @@ public class AutoscalerServiceClient {
         }
 
         return partition;
-    }*/
+    }
 
-    /*public org.apache.stratos.cloud.controller.deployment.partition.Partition [] getPartitions (String deploymentPolicyId,
+    public org.apache.stratos.cloud.controller.deployment.partition.Partition [] getPartitions (String deploymentPolicyId,
                                                                                             String partitionGroupId)
             throws Exception{
 
         org.apache.stratos.cloud.controller.deployment.partition.Partition[] partitions;
         try {
-            partitions = stub.getPartitions(deploymentPolicyId, partitionGroupId);
+            partitions = stub.getPartitionsOfDeploymentPolicy(deploymentPolicyId, partitionGroupId);
 
         } catch (RemoteException e) {
             String errorMsg = "Error in getting available partitions";
@@ -124,7 +127,7 @@ public class AutoscalerServiceClient {
         }
 
         return partitionGroups;
-    }*/
+    }
 
     public org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[] getAutoScalePolicies ()
             throws Exception {
@@ -142,7 +145,7 @@ public class AutoscalerServiceClient {
         return autoscalePolicies;
     }
 
-    /*public org.apache.stratos.autoscaler.policy.model.AutoscalePolicy getAutoScalePolicy (String autoscalingPolicyId)
+    public org.apache.stratos.autoscaler.policy.model.AutoscalePolicy getAutoScalePolicy (String autoscalingPolicyId)
             throws Exception {
 
         org.apache.stratos.autoscaler.policy.model.AutoscalePolicy autoscalePolicy;
@@ -156,7 +159,7 @@ public class AutoscalerServiceClient {
         }
 
         return autoscalePolicy;
-    }*/
+    }
 
     public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy [] getDeploymentPolicies()
             throws Exception {
@@ -190,7 +193,7 @@ public class AutoscalerServiceClient {
         return deploymentPolicies;
     }
 
-    /*public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy getDeploymentPolicy (String deploymentPolicyId)
+    public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy getDeploymentPolicy (String deploymentPolicyId)
             throws Exception {
 
         org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy deploymentPolicy;
@@ -204,5 +207,41 @@ public class AutoscalerServiceClient {
         }
 
         return deploymentPolicy;
-    }*/
+    }
+
+    public boolean deployDeploymentPolicy (DeploymentPolicy deploymentPolicy) throws Exception {
+
+        try {
+            return stub.addDeploymentPolicy(deploymentPolicy);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in deploying new deployment policy definition";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+    }
+
+    public boolean deployAutoscalingPolicy (AutoscalePolicy autoScalePolicy) throws Exception {
+
+        try {
+            return stub.addAutoScalingPolicy(autoScalePolicy);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in deploying new autoscaling policy definition";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+    }
+
+    public boolean deployPartition (Partition partition) throws Exception {
+
+        try {
+            return stub.addPartition(partition);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in deploying new partition definition";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5629d1d9/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/PartitionGroup.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/PartitionGroup.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/PartitionGroup.java
index 563cecd..4d817d8 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/PartitionGroup.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/partition/PartitionGroup.java
@@ -30,5 +30,5 @@ public class PartitionGroup {
     public String partitionAlgo;
 
     //partition Ids
-    public List<String> partition;
+    public List<Partition> partition;
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5629d1d9/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java
index b818d91..0f9f10b 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/deployment/DeploymentPolicy.java
@@ -20,6 +20,7 @@
 package org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment;
 
 
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
 
 import javax.xml.bind.annotation.XmlRootElement;
@@ -32,4 +33,7 @@ public class DeploymentPolicy {
 
     //partition groups
     public List<PartitionGroup> partitionGroup;
+
+    //partitions
+    public List<Partition> partition;
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5629d1d9/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 4860b28..6320989 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
@@ -137,6 +137,133 @@ public class PojoConverter {
         return properties;
     }
 
+    public static org.apache.stratos.cloud.controller.deployment.partition.Partition convertToCCPartitionPojo
+            (Partition partitionBean) {
+
+        org.apache.stratos.cloud.controller.deployment.partition.Partition partition = new
+                org.apache.stratos.cloud.controller.deployment.partition.Partition();
+
+        partition.setId(partitionBean.id);
+        partition.setProvider(partitionBean.provider);
+        partition.setPartitionMin(partitionBean.partitionMin);
+        partition.setPartitionMax(partitionBean.partitionMax);
+
+        if(partitionBean.property != null && !partitionBean.property.isEmpty()) {
+            partition.setProperties(getProperties(partitionBean.property));
+        }
+
+        return partition;
+    }
+
+    public static org.apache.stratos.autoscaler.policy.model.AutoscalePolicy convertToCCAutoscalerPojo (AutoscalePolicy
+                                                                                                                autoscalePolicyBean) {
+
+        org.apache.stratos.autoscaler.policy.model.AutoscalePolicy autoscalePolicy = new
+                org.apache.stratos.autoscaler.policy.model.AutoscalePolicy();
+
+        autoscalePolicy.setId(autoscalePolicyBean.id);
+        autoscalePolicy.setDescription(autoscalePolicyBean.description);
+        autoscalePolicy.setDisplayName(autoscalePolicyBean.displayName);
+
+        if (autoscalePolicyBean.loadThresholds != null) {
+
+            org.apache.stratos.autoscaler.policy.model.LoadThresholds loadThresholds = new
+                    org.apache.stratos.autoscaler.policy.model.LoadThresholds();
+
+            if(autoscalePolicyBean.loadThresholds.loadAverage != null) {
+
+                //set load average information
+                org.apache.stratos.autoscaler.policy.model.LoadAverage loadAverage = new
+                        org.apache.stratos.autoscaler.policy.model.LoadAverage();
+                loadAverage.setAverage(autoscalePolicyBean.loadThresholds.loadAverage.average);
+                loadAverage.setGradient(autoscalePolicyBean.loadThresholds.loadAverage.gradient);
+                loadAverage.setSecondDerivative(autoscalePolicyBean.loadThresholds.loadAverage.secondDerivative);
+                loadAverage.setScaleDownMarginOfGradient(autoscalePolicyBean.loadThresholds.loadAverage.scaleDownMarginOfGradient);
+                loadAverage.setScaleDownMarginOfSecondDerivative(autoscalePolicyBean.loadThresholds.loadAverage.scaleDownMarginOfSecondDerivative);
+                //set load average
+                loadThresholds.setLoadAverage(loadAverage);
+            }
+            if (autoscalePolicyBean.loadThresholds.requestsInFlight != null) {
+
+                org.apache.stratos.autoscaler.policy.model.RequestsInFlight requestsInFlight = new
+                        org.apache.stratos.autoscaler.policy.model.RequestsInFlight();
+                //set request in flight information
+                requestsInFlight.setAverage(autoscalePolicyBean.loadThresholds.requestsInFlight.average);
+                requestsInFlight.setGradient(autoscalePolicyBean.loadThresholds.requestsInFlight.gradient);
+                requestsInFlight.setSecondDerivative(autoscalePolicyBean.loadThresholds.requestsInFlight.secondDerivative);
+                requestsInFlight.setScaleDownMarginOfGradient(autoscalePolicyBean.loadThresholds.requestsInFlight.scaleDownMarginOfGradient);
+                requestsInFlight.setScaleDownMarginOfSecondDerivative(autoscalePolicyBean.loadThresholds.requestsInFlight.scaleDownMarginOfSecondDerivative);
+                //set request in flight
+                loadThresholds.setRequestsInFlight(requestsInFlight);
+            }
+            if (autoscalePolicyBean.loadThresholds.memoryConsumption != null) {
+
+                org.apache.stratos.autoscaler.policy.model.MemoryConsumption memoryConsumption = new
+                        org.apache.stratos.autoscaler.policy.model.MemoryConsumption();
+
+                //set memory consumption information
+                memoryConsumption.setAverage(autoscalePolicyBean.loadThresholds.memoryConsumption.average);
+                memoryConsumption.setGradient(autoscalePolicyBean.loadThresholds.memoryConsumption.gradient);
+                memoryConsumption.setSecondDerivative(autoscalePolicyBean.loadThresholds.memoryConsumption.secondDerivative);
+                memoryConsumption.setScaleDownMarginOfGradient(autoscalePolicyBean.loadThresholds.memoryConsumption.scaleDownMarginOfGradient);
+                memoryConsumption.setScaleDownMarginOfSecondDerivative(autoscalePolicyBean.loadThresholds.memoryConsumption.scaleDownMarginOfSecondDerivative);
+                //set memory consumption
+                loadThresholds.setMemoryConsumption(memoryConsumption);
+            }
+
+            autoscalePolicy.setLoadThresholds(loadThresholds);
+        }
+
+        return autoscalePolicy;
+    }
+
+    public static org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy convetToCCDeploymentPolicyPojo (DeploymentPolicy
+                                                                                                                           deploymentPolicyBean) {
+
+        org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy deploymentPolicy = new
+                org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy();
+
+        deploymentPolicy.setId(deploymentPolicyBean.id);
+        if(deploymentPolicyBean.partitionGroup != null && !deploymentPolicyBean.partitionGroup.isEmpty()) {
+            deploymentPolicy.setPartitionGroups(convertToCCPartitionGroup(deploymentPolicyBean.partitionGroup));
+        }
+
+        return deploymentPolicy;
+    }
+
+    private static org.apache.stratos.autoscaler.partition.xsd.PartitionGroup[] convertToCCPartitionGroup (List<PartitionGroup> partitionGroupBeans) {
+
+        org.apache.stratos.autoscaler.partition.xsd.PartitionGroup[] partitionGroups = new
+                org.apache.stratos.autoscaler.partition.xsd.PartitionGroup[partitionGroupBeans.size()];
+
+        for (int i = 0 ; i < partitionGroupBeans.size() ; i++) {
+            org.apache.stratos.autoscaler.partition.xsd.PartitionGroup partitionGroup = new
+                    org.apache.stratos.autoscaler.partition.xsd.PartitionGroup();
+            partitionGroup.setId(partitionGroupBeans.get(i).id);
+            partitionGroup.setPartitionAlgo(partitionGroupBeans.get(i).partitionAlgo);
+
+            if(partitionGroupBeans.get(i).partition != null && !partitionGroupBeans.get(i).partition.isEmpty()) {
+                partitionGroup.setPartitions(convertToCCPartitionPojos(partitionGroupBeans.get(i).partition));
+            }
+
+            partitionGroups[i] = partitionGroup;
+        }
+
+        return partitionGroups;
+    }
+
+    private static org.apache.stratos.cloud.controller.deployment.partition.Partition[] convertToCCPartitionPojos
+            (List<Partition> partitionList) {
+
+        org.apache.stratos.cloud.controller.deployment.partition.Partition[] partitions =
+                new org.apache.stratos.cloud.controller.deployment.partition.Partition[partitionList.size()];
+        for (int i = 0; i < partitionList.size() ; i++) {
+            partitions[i] = convertToCCPartitionPojo(partitionList.get(i));
+        }
+
+        return partitions;
+    }
+
     public static Partition[] populatePartitionPojos (org.apache.stratos.cloud.controller.deployment.partition.Partition[]
                                                              partitions) {
 
@@ -333,7 +460,7 @@ public class PojoConverter {
         partitionGroupBean.id = partitionGroup.getId();
         partitionGroupBean.partitionAlgo = partitionGroup.getPartitionAlgo();
         if(partitionGroup.getPartitions() != null && partitionGroup.getPartitions().length > 0) {
-            partitionGroupBean.partition = getPartitionIdsList(partitionGroup.getPartitions());
+            partitionGroupBean.partition = getPartitionList(partitionGroup.getPartitions());
         }
 
         return partitionGroupBean;
@@ -354,7 +481,7 @@ public class PojoConverter {
             partitionGroup.partitionAlgo = partitionGroups[i].getPartitionAlgo();
 
             if(partitionGroups[i].getPartitions() != null && partitionGroups[i].getPartitions().length > 0){
-                partitionGroup.partition = getPartitionIdsList(partitionGroups[i].getPartitions());
+                partitionGroup.partition = getPartitionList(partitionGroups[i].getPartitions());
             }*/
             partitionGroupsBeans[i] = populatePartitionGroupPojo(partitionGroups[i]);
         }
@@ -362,14 +489,22 @@ public class PojoConverter {
         return partitionGroupsBeans;
     }
 
-    private static List<String> getPartitionIdsList(org.apache.stratos.cloud.controller.deployment.partition.Partition[]
-                                                            partitions) {
+    private static List<Partition> getPartitionList(org.apache.stratos.cloud.controller.deployment.partition.Partition[]
+                                                         partitions) {
 
-        List<String> partitionIdList = new ArrayList<String>();
+        List<Partition> partitionList = new ArrayList<Partition>();
         for (int i = 0 ; i < partitions.length ; i++) {
-            partitionIdList.add(partitions[i].getId());
+            Partition partition = new Partition();
+            partition.id = partitions[i].getId();
+            partition.provider = partitions[i].getProvider();
+            partition.partitionMin = partitions[i].getPartitionMin();
+            partition.partitionMax = partitions[i].getPartitionMax();
+            if (partitions[i].getProperties() != null) {
+                partition.property = getPropertyBeans(partitions[i].getProperties());
+            }
+            partitionList.add(partition);
         }
 
-        return partitionIdList;
+        return partitionList;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5629d1d9/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
index f99a16d..9bb225a 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -37,6 +37,8 @@ import org.apache.stratos.adc.mgt.utils.PersistenceManager;
 import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
 import org.apache.stratos.cloud.controller.pojo.CartridgeConfig;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
+import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.deployment.DeploymentPolicy;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
@@ -88,6 +90,70 @@ public class ServiceUtils {
         }
     }
 
+
+    public static boolean deployPartition (Partition partitionBean) throws RestAPIException {
+
+        //log.info("***** " + cartridgeDefinitionBean.toString() + " *****");
+
+        AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+
+            org.apache.stratos.cloud.controller.deployment.partition.Partition partition =
+                    PojoConverter.convertToCCPartitionPojo(partitionBean);
+
+            try {
+                return autoscalerServiceClient.deployPartition(partition);
+
+            } catch (Exception e) {
+                throw new RestAPIException(e);
+            }
+        }
+
+        return false;
+    }
+
+    public static boolean deployAutoscalingPolicy (AutoscalePolicy autoscalePolicyBean) throws RestAPIException {
+
+        //log.info("***** " + cartridgeDefinitionBean.toString() + " *****");
+
+        AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+
+            org.apache.stratos.autoscaler.policy.model.AutoscalePolicy autoscalePolicy = PojoConverter.
+                    convertToCCAutoscalerPojo(autoscalePolicyBean);
+
+            try {
+                return autoscalerServiceClient.deployAutoscalingPolicy(autoscalePolicy);
+
+            } catch (Exception e) {
+                throw new RestAPIException(e);
+            }
+        }
+
+        return false;
+    }
+
+    public static boolean deployDeploymentPolicy (DeploymentPolicy deploymentPolicyBean) throws RestAPIException {
+
+        //log.info("***** " + cartridgeDefinitionBean.toString() + " *****");
+
+        AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+
+            org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy deploymentPolicy =
+                    PojoConverter.convetToCCDeploymentPolicyPojo(deploymentPolicyBean);
+
+            try {
+                return autoscalerServiceClient.deployDeploymentPolicy(null);
+
+            } catch (Exception e) {
+                throw new RestAPIException(e);
+            }
+        }
+
+        return false;
+    }
+
     private static CloudControllerServiceClient getCloudControllerServiceClient () {
 
         try {
@@ -100,13 +166,13 @@ public class ServiceUtils {
         return null;
     }
 
-   /* public static Partition[] getAvailablePartitions () throws RestAPIException {
+    public static Partition[] getAvailablePartitions () throws RestAPIException {
 
         org.apache.stratos.cloud.controller.deployment.partition.Partition[] partitions = null;
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
         if (autoscalerServiceClient != null) {
             try {
-                partitions = autoscalerServiceClient.getPa;
+                partitions = autoscalerServiceClient.getAvailablePartitions();
 
             } catch (Exception e) {
                 String errorMsg = "Error getting available partitions";
@@ -116,9 +182,9 @@ public class ServiceUtils {
         }
 
         return PojoConverter.populatePartitionPojos(partitions);
-    }*/
+    }
 
-    /*public static Partition[] getPartitions (String deploymentPolicyId,
+    public static Partition[] getPartitions (String deploymentPolicyId,
                                                       String partitionGroupId) throws RestAPIException {
 
         org.apache.stratos.cloud.controller.deployment.partition.Partition[] partitions = null;
@@ -153,7 +219,7 @@ public class ServiceUtils {
         }
 
         return PojoConverter.populatePartitionPojo(partition);
-    }*/
+    }
 
     private static AutoscalerServiceClient getAutoscalerServiceClient () {
 
@@ -185,7 +251,7 @@ public class ServiceUtils {
         return PojoConverter.populateAutoscalePojos(autoscalePolicies);
     }
 
-    /*public static AutoscalePolicy getAutoScalePolicy (String autoscalePolicyId) throws RestAPIException {
+    public static AutoscalePolicy getAutoScalePolicy (String autoscalePolicyId) throws RestAPIException {
 
         org.apache.stratos.autoscaler.policy.model.AutoscalePolicy autoscalePolicy = null;
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
@@ -201,7 +267,7 @@ public class ServiceUtils {
         }
 
         return PojoConverter.populateAutoscalePojo(autoscalePolicy);
-    }*/
+    }
 
     public static DeploymentPolicy[] getDeploymentPolicies () throws RestAPIException {
 
@@ -239,7 +305,7 @@ public class ServiceUtils {
         return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
     }
 
-    /*public static DeploymentPolicy getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
+    public static DeploymentPolicy getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
 
         org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy deploymentPolicy = null;
         AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
@@ -274,7 +340,7 @@ public class ServiceUtils {
         }
 
         return PojoConverter.populatePartitionGroupPojos(partitionGroups);
-    }*/
+    }
 
     static List<Cartridge> getAvailableCartridges(String cartridgeSearchString, Boolean multiTenant, ConfigurationContext configurationContext) throws ADCException {
         List<Cartridge> cartridges = new ArrayList<Cartridge>();

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5629d1d9/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
index 67a48be..54e4845 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
@@ -91,7 +91,43 @@ public class StratosAdmin extends AbstractAdmin {
         ServiceUtils.undeployCartridge(cartridgeType);
     }
 
-    /*@GET
+    @POST
+    @Path("/policy/deployment/partition")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public boolean deployPartition (Partition partition)
+            throws RestAPIException {
+
+        return ServiceUtils.deployPartition(partition);
+    }
+
+    @POST
+    @Path("/policy/autoscale")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public boolean deployAutoscalingPolicyDefintion (AutoscalePolicy autoscalePolicy)
+            throws RestAPIException {
+
+        return ServiceUtils.deployAutoscalingPolicy(autoscalePolicy);
+    }
+
+    @POST
+    @Path("/policy/deployment")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    @SuperTenantService(true)
+    public boolean deployDeploymentPolicyDefinition (DeploymentPolicy deploymentPolicy)
+            throws RestAPIException {
+
+        return ServiceUtils.deployDeploymentPolicy(deploymentPolicy);
+    }
+
+    @GET
     @Path("/partition")
     @Produces("application/json")
     @Consumes("application/json")
@@ -99,7 +135,7 @@ public class StratosAdmin extends AbstractAdmin {
     public Partition[] getPartitions () throws RestAPIException {
 
         return ServiceUtils.getAvailablePartitions();
-    }*/
+    }
 
     @GET
     @Path("/partition/{partitionId}")
@@ -108,8 +144,7 @@ public class StratosAdmin extends AbstractAdmin {
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     public Partition getPartition (@PathParam("partitionId") String partitionId) throws RestAPIException {
 
-        //return ServiceUtils.getPartition(partitionId);
-        return null;
+        return ServiceUtils.getPartition(partitionId);
     }
 
     @GET
@@ -120,8 +155,7 @@ public class StratosAdmin extends AbstractAdmin {
     public PartitionGroup[] getPartitionGroups (@PathParam("deploymentPolicyId") String deploymentPolicyId)
             throws RestAPIException {
 
-        //return ServiceUtils.getPartitionGroups(deploymentPolicyId);
-        return null;
+        return ServiceUtils.getPartitionGroups(deploymentPolicyId);
     }
 
     @GET
@@ -132,8 +166,7 @@ public class StratosAdmin extends AbstractAdmin {
     public Partition [] getPartitions (@PathParam("deploymentPolicyId") String deploymentPolicyId,
                                        @PathParam("partitionGroupId") String partitionGroupId) throws RestAPIException {
 
-        //return ServiceUtils.getPartitions(deploymentPolicyId, partitionGroupId);
-        return null;
+        return ServiceUtils.getPartitions(deploymentPolicyId, partitionGroupId);
     }
 
     @GET
@@ -154,8 +187,7 @@ public class StratosAdmin extends AbstractAdmin {
     public AutoscalePolicy getAutoscalePolicies (@PathParam("autoscalePolicyId") String autoscalePolicyId)
             throws RestAPIException {
 
-        //return ServiceUtils.getAutoScalePolicy(autoscalePolicyId);
-        return null;
+        return ServiceUtils.getAutoScalePolicy(autoscalePolicyId);
     }
 
     @GET
@@ -176,8 +208,7 @@ public class StratosAdmin extends AbstractAdmin {
     public DeploymentPolicy getDeploymentPolicies (@PathParam("deploymentPolicyId") String deploymentPolicyId)
             throws RestAPIException {
 
-        //return ServiceUtils.getDeploymentPolicy(deploymentPolicyId);
-        return null;
+        return ServiceUtils.getDeploymentPolicy(deploymentPolicyId);
     }
 
     @GET
@@ -260,8 +291,6 @@ public class StratosAdmin extends AbstractAdmin {
         }
     }
 
-
-
     @POST
     @Path("/tenant")
     @Consumes("application/json")

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5629d1d9/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
----------------------------------------------------------------------
diff --git a/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml b/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
index ff2eb5e..523dc3f 100644
--- a/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
+++ b/service-stubs/org.apache.stratos.autoscaler.service.stub/pom.xml
@@ -47,7 +47,7 @@
                         <configuration>
                             <tasks>
                                 <java classname="org.apache.axis2.wsdl.WSDL2Java" fork="true">
-                                    <arg line="-uri src/main/resources/AutoScalerService.wsdl -u -uw -o target/generated-code -p org.apache.stratos.autoscaler.stub -ns2p http://policy.deployment.autoscaler.stratos.apache.org/xsd=org.apache.stratos.autoscaler.deployment.policy,http://model.policy.autoscaler.stratos.apache.org/xsd=org.apache.stratos.autoscaler.policy.model,http://exception.autoscaler.stratos.apache.org/xsd=org.apache.stratos.autoscaler.exception,http://partition.deployment.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.deployment.partition"/>
+                                    <arg line="-uri src/main/resources/AutoScalerService.wsdl -u -uw -o target/generated-code -p org.apache.stratos.autoscaler.stub -ns2p http://policy.deployment.autoscaler.stratos.apache.org/xsd=org.apache.stratos.autoscaler.deployment.policy,http://model.policy.autoscaler.stratos.apache.org/xsd=org.apache.stratos.autoscaler.policy.model,http://exception.autoscaler.stratos.apache.org/xsd=org.apache.stratos.autoscaler.exception,http://partition.deployment.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.deployment.partition,http://pojo.controller.cloud.stratos.apache.org/xsd=org.apache.stratos.cloud.controller.pojo"/>
                                     <classpath refid="maven.dependency.classpath"/>
                                     <classpath refid="maven.compile.classpath"/>
                                     <classpath refid="maven.runtime.classpath"/>


[2/2] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos into rest_api

Posted by is...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/incubator-stratos into rest_api


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

Branch: refs/heads/master
Commit: 522db60338ac468ba7ccf122075c1c8b8a01f57c
Parents: 5629d1d 19fc9f8
Author: Isuru <is...@wso2.com>
Authored: Mon Dec 9 20:59:30 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Mon Dec 9 20:59:30 2013 +0530

----------------------------------------------------------------------
 .../autoscaler/policy/PolicyManager.java        |  10 +-
 .../autoscaler/registry/RegistryManager.java    |   2 +-
 .../rule/AutoscalerRuleEvaluator.java           |  36 +++---
 .../messaging/domain/topology/Cloud.java        |  84 -------------
 .../messaging/domain/topology/Cluster.java      |  27 ----
 .../messaging/domain/topology/Region.java       |  79 ------------
 .../stratos/messaging/domain/topology/Zone.java |  55 --------
 .../ec2/load-balancer/start-load-balancer.sh    |  70 +++++++++++
 .../templates/loadbalancer.conf.template        | 126 +++++++++++++++++++
 9 files changed, 224 insertions(+), 265 deletions(-)
----------------------------------------------------------------------