Updated Branches:
  refs/heads/master 830590280 -> 3cc377d28

committing various methods relevant to DeploymentPolicies, PartitionGroups and 
Partitions in 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/e8d08860
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/e8d08860
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/e8d08860

Branch: refs/heads/master
Commit: e8d088602cfdff0baa99a04bd5f4899c565bb6b1
Parents: 28cc614
Author: Isuru <[email protected]>
Authored: Fri Dec 6 20:06:11 2013 +0530
Committer: Isuru <[email protected]>
Committed: Fri Dec 6 20:06:11 2013 +0530

----------------------------------------------------------------------
 .../adc/mgt/client/AutoscalerServiceClient.java | 101 ++++++++++++++-
 .../bean/util/converter/PojoConverter.java      | 122 +++++++++++++++----
 .../rest/endpoint/services/ServiceUtils.java    | 119 +++++++++++++++++-
 .../rest/endpoint/services/StratosAdmin.java    |  68 ++++++++++-
 4 files changed, 381 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e8d08860/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 43ae838..7fbc8c5 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
@@ -61,12 +61,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.getAllAvailablePartitions();
+            partitions = stub.get;
 
         } catch (RemoteException e) {
             String errorMsg = "Error in getting available partitions";
@@ -75,6 +75,55 @@ public class AutoscalerServiceClient {
         }
 
         return partitions;
+    }*/
+
+    public org.apache.stratos.cloud.controller.deployment.partition.Partition 
getPartition (String partitionId)
+            throws Exception{
+
+        org.apache.stratos.cloud.controller.deployment.partition.Partition 
partition;
+        try {
+            partition = stub.getPartition(partitionId);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in getting available partitions";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+
+        return partition;
+    }
+
+    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);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in getting available partitions";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+
+        return partitions;
+    }
+
+    public org.apache.stratos.autoscaler.partition.xsd.PartitionGroup [] 
getPartitionGroups (String deploymentPolicyId)
+            throws Exception{
+
+        org.apache.stratos.autoscaler.partition.xsd.PartitionGroup [] 
partitionGroups;
+        try {
+            partitionGroups = stub.getPartitionGroups(deploymentPolicyId);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in getting available partitions";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+
+        return partitionGroups;
     }
 
     public org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[] 
getAutoScalePolicies ()
@@ -93,6 +142,22 @@ public class AutoscalerServiceClient {
         return autoscalePolicies;
     }
 
+    public org.apache.stratos.autoscaler.policy.model.AutoscalePolicy 
getAutoScalePolicy (String autoscalingPolicyId)
+            throws Exception {
+
+        org.apache.stratos.autoscaler.policy.model.AutoscalePolicy 
autoscalePolicy;
+        try {
+            autoscalePolicy = stub.getAutoscalingPolicy(autoscalingPolicyId);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in getting available partitions";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+
+        return autoscalePolicy;
+    }
+
     public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy [] 
getDeploymentPolicies()
             throws Exception {
 
@@ -108,4 +173,36 @@ public class AutoscalerServiceClient {
 
         return deploymentPolicies;
     }
+
+    public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy [] 
getDeploymentPolicies(String cartridgeType)
+            throws Exception {
+
+        org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy[] 
deploymentPolicies;
+        try {
+            deploymentPolicies = 
stub.getValidDeploymentPoliciesforCartridge(cartridgeType);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in getting available deployment policies";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+
+        return deploymentPolicies;
+    }
+
+    public org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy 
getDeploymentPolicy (String deploymentPolicyId)
+            throws Exception {
+
+        org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy 
deploymentPolicy;
+        try {
+            deploymentPolicy = stub.getDeploymentPolicy(deploymentPolicyId);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in getting available deployment policies";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+
+        return deploymentPolicy;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e8d08860/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 13766a6..4860b28 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,8 +137,8 @@ public class PojoConverter {
         return properties;
     }
 
-    public static Partition[] populatePartitionPojo 
(org.apache.stratos.cloud.controller.deployment.partition.Partition[]
-                                                              partitions) {
+    public static Partition[] populatePartitionPojos 
(org.apache.stratos.cloud.controller.deployment.partition.Partition[]
+                                                             partitions) {
 
         Partition [] partitionBeans;
         if(partitions == null) {
@@ -148,21 +148,42 @@ public class PojoConverter {
 
         partitionBeans = new Partition[partitions.length];
         for (int i = 0 ; i < partitions.length ; i++) {
-            Partition partition = new Partition();
+            /*Partition partition = new Partition();
             partition.id = partitions[i].getId();
             partition.provider = partitions[i].getProvider();
             partition.partitionMin = partitions[i].getPartitionMin();
-            partition.partitionMax = partitions[i].getPartitionMax();
+            partition.partitionMax = partitions[i].getPartitionMax();*/
             //properties are not added currently, TODO if required
             //if(partitions[i].getProperties() != null) {
             //    List<PropertyBean> propertyBeans = 
getPropertyBeans(partitions[i].getProperties());
             //    partition.property = propertyBeans;
             //}
-            partitionBeans[i] = partition;
+            partitionBeans[i] = populatePartitionPojo(partitions[i]);
         }
         return partitionBeans;
     }
 
+    public static Partition populatePartitionPojo 
(org.apache.stratos.cloud.controller.deployment.partition.Partition
+                                                             partition) {
+
+        Partition partitionBeans = new Partition();
+        if(partition == null) {
+            return partitionBeans;
+        }
+
+        partitionBeans.id = partition.getId();
+        partitionBeans.provider = partition.getProvider();
+        partitionBeans.partitionMin = partition.getPartitionMin();
+        partitionBeans.partitionMax = partition.getPartitionMax();
+        //properties are not added currently, TODO if required
+        //if(partition[i].getProperties() != null) {
+        //    List<PropertyBean> propertyBeans = 
getPropertyBeans(partition[i].getProperties());
+        //    partition.property = propertyBeans;
+        //}
+
+        return partitionBeans;
+    }
+
     private static List<PropertyBean> getPropertyBeans (Properties properties) 
{
 
         List<PropertyBean> propertyBeans = null;
@@ -179,7 +200,7 @@ public class PojoConverter {
         return propertyBeans;
     }
 
-    public static AutoscalePolicy[] 
populateAutoscalePojo(org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[]
+    public static AutoscalePolicy[] 
populateAutoscalePojos(org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[]
                                                                    
autoscalePolicies) {
 
         AutoscalePolicy [] autoscalePolicyBeans;
@@ -190,18 +211,36 @@ public class PojoConverter {
 
         autoscalePolicyBeans = new AutoscalePolicy[autoscalePolicies.length];
         for (int i = 0 ; i < autoscalePolicies.length ; i++) {
-            AutoscalePolicy autoscalePolicy = new AutoscalePolicy();
+            /*AutoscalePolicy autoscalePolicy = new AutoscalePolicy();
             autoscalePolicy.id = autoscalePolicies[i].getId();
             autoscalePolicy.displayName = 
autoscalePolicies[i].getDisplayName();
             autoscalePolicy.description = 
autoscalePolicies[i].getDescription();
             if(autoscalePolicies[i].getLoadThresholds() != null) {
                 autoscalePolicy.loadThresholds = 
populateLoadThresholds(autoscalePolicies[i].getLoadThresholds());
-            }
-            autoscalePolicyBeans[i] = autoscalePolicy;
+            }*/
+            autoscalePolicyBeans[i] = 
populateAutoscalePojo(autoscalePolicies[i]);
         }
         return autoscalePolicyBeans;
     }
 
+    public static AutoscalePolicy 
populateAutoscalePojo(org.apache.stratos.autoscaler.policy.model.AutoscalePolicy
+                                                                   
autoscalePolicy) {
+
+        AutoscalePolicy autoscalePolicyBean = new AutoscalePolicy();
+        if(autoscalePolicy == null) {
+            return autoscalePolicyBean;
+        }
+
+        autoscalePolicyBean.id = autoscalePolicy.getId();
+        autoscalePolicyBean.displayName = autoscalePolicy.getDisplayName();
+        autoscalePolicyBean.description = autoscalePolicy.getDescription();
+        if(autoscalePolicy.getLoadThresholds() != null) {
+            autoscalePolicyBean.loadThresholds = 
populateLoadThresholds(autoscalePolicy.getLoadThresholds());
+        }
+
+        return autoscalePolicyBean;
+    }
+
     private static LoadThresholds populateLoadThresholds 
(org.apache.stratos.autoscaler.policy.model.LoadThresholds
                                                                   
loadThresholds) {
 
@@ -242,8 +281,8 @@ public class PojoConverter {
         return loadThresholdBean;
     }
 
-    public static DeploymentPolicy[] populateDeploymentPolicyPojo 
(org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy []
-                                                                            
deploymentPolicies) {
+    public static DeploymentPolicy[] 
populateDeploymentPolicyPojos(org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy[]
+                                                                           
deploymentPolicies) {
         DeploymentPolicy[] deploymentPolicyBeans;
         if(deploymentPolicies == null) {
             deploymentPolicyBeans = new DeploymentPolicy[0];
@@ -252,42 +291,81 @@ public class PojoConverter {
 
         deploymentPolicyBeans = new 
DeploymentPolicy[deploymentPolicies.length];
         for (int i = 0 ; i < deploymentPolicies.length ; i++) {
-            DeploymentPolicy deploymentPolicy = new DeploymentPolicy();
-            deploymentPolicy.id = deploymentPolicies[i].getId();
+            //DeploymentPolicy deploymentPolicy = new DeploymentPolicy();
+            //deploymentPolicy.id = deploymentPolicies[i].getId();
 
             //if(deploymentPolicies[i].getPartitionGroups() != null &&
             //        deploymentPolicies[i].getPartitionGroups().length > 0) {
             //    deploymentPolicy.partitionGroup = 
getPartitionGroups(deploymentPolicies[i].getPartitionGroups());
             //}
 
-            deploymentPolicyBeans[i] = deploymentPolicy;
+            deploymentPolicyBeans[i] = 
populateDeploymentPolicyPojo(deploymentPolicies[i]);
         }
 
         return deploymentPolicyBeans;
     }
 
-    private static List<PartitionGroup> getPartitionGroups 
(org.apache.stratos.autoscaler.partition.xsd.PartitionGroup[] partitionGroups) {
+    public static DeploymentPolicy populateDeploymentPolicyPojo 
(org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy
+                                                                 
deploymentPolicy) {
 
-        List<PartitionGroup> partitionGroupList = new 
ArrayList<PartitionGroup>();
+        DeploymentPolicy deploymentPolicyBean = new DeploymentPolicy();
+        if(deploymentPolicy == null) {
+            return deploymentPolicyBean;
+        }
+
+        deploymentPolicyBean.id = deploymentPolicy.getId();
+        //if(deploymentPolicy.getPartitionGroups() != null &&
+        //        deploymentPolicy.getPartitionGroups().length > 0) {
+        //    deploymentPolicy.partitionGroup = 
getPartitionGroups(deploymentPolicy.getPartitionGroups());
+        //}
+
+        return deploymentPolicyBean;
+    }
+
+    public static PartitionGroup populatePartitionGroupPojo 
(org.apache.stratos.autoscaler.partition.xsd.PartitionGroup
+                                                                         
partitionGroup) {
+
+        PartitionGroup partitionGroupBean = new PartitionGroup();
+        if(partitionGroup == null){
+            return partitionGroupBean;
+        }
+
+        partitionGroupBean.id = partitionGroup.getId();
+        partitionGroupBean.partitionAlgo = partitionGroup.getPartitionAlgo();
+        if(partitionGroup.getPartitions() != null && 
partitionGroup.getPartitions().length > 0) {
+            partitionGroupBean.partition = 
getPartitionIdsList(partitionGroup.getPartitions());
+        }
+
+        return partitionGroupBean;
+    }
+
+    public static PartitionGroup [] populatePartitionGroupPojos 
(org.apache.stratos.autoscaler.partition.xsd.PartitionGroup[] partitionGroups) {
+
+        PartitionGroup[] partitionGroupsBeans;
+        if(partitionGroups == null) {
+            partitionGroupsBeans = new PartitionGroup[0];
+            return partitionGroupsBeans;
+        }
+
+        partitionGroupsBeans = new PartitionGroup[partitionGroups.length];
         for (int i = 0 ; i < partitionGroups.length ; i ++) {
-            PartitionGroup partitionGroup = new PartitionGroup();
+            /*PartitionGroup partitionGroup = new PartitionGroup();
             partitionGroup.id = partitionGroups[i].getId();
             partitionGroup.partitionAlgo = 
partitionGroups[i].getPartitionAlgo();
 
             if(partitionGroups[i].getPartitions() != null && 
partitionGroups[i].getPartitions().length > 0){
                 partitionGroup.partition = 
getPartitionIdsList(partitionGroups[i].getPartitions());
-            }
-
-            partitionGroupList.add(partitionGroup);
+            }*/
+            partitionGroupsBeans[i] = 
populatePartitionGroupPojo(partitionGroups[i]);
         }
 
-        return partitionGroupList;
+        return partitionGroupsBeans;
     }
 
     private static List<String> 
getPartitionIdsList(org.apache.stratos.cloud.controller.deployment.partition.Partition[]
                                                             partitions) {
 
-        ArrayList<String> partitionIdList = new ArrayList<String>();
+        List<String> partitionIdList = new ArrayList<String>();
         for (int i = 0 ; i < partitions.length ; i++) {
             partitionIdList.add(partitions[i].getId());
         }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e8d08860/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 49f2f85..a7f8225 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
@@ -38,6 +38,7 @@ 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;
@@ -101,7 +102,7 @@ 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();
@@ -116,7 +117,44 @@ public class ServiceUtils {
             }
         }
 
-        return PojoConverter.populatePartitionPojo(partitions);
+        return PojoConverter.populatePartitionPojos(partitions);
+    }*/
+
+    public static Partition[] getPartitions (String deploymentPolicyId,
+                                                      String partitionGroupId) 
throws RestAPIException {
+
+        org.apache.stratos.cloud.controller.deployment.partition.Partition[] 
partitions = null;
+        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+            try {
+                partitions = 
autoscalerServiceClient.getPartitions(deploymentPolicyId, partitionGroupId);
+
+            } catch (Exception e) {
+                String errorMsg = "Error getting available partitions";
+                log.error(errorMsg, e);
+                throw new RestAPIException(errorMsg, e);
+            }
+        }
+
+        return PojoConverter.populatePartitionPojos(partitions);
+    }
+
+    public static Partition getPartition (String partitionId) throws 
RestAPIException {
+
+        org.apache.stratos.cloud.controller.deployment.partition.Partition 
partition = null;
+        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+            try {
+                partition = autoscalerServiceClient.getPartition(partitionId);
+
+            } catch (Exception e) {
+                String errorMsg = "Error getting available partition";
+                log.error(errorMsg, e);
+                throw new RestAPIException(errorMsg, e);
+            }
+        }
+
+        return PojoConverter.populatePartitionPojo(partition);
     }
 
     private static AutoscalerServiceClient getAutoscalerServiceClient () {
@@ -146,7 +184,25 @@ public class ServiceUtils {
             }
         }
 
-        return PojoConverter.populateAutoscalePojo(autoscalePolicies);
+        return PojoConverter.populateAutoscalePojos(autoscalePolicies);
+    }
+
+    public static AutoscalePolicy getAutoScalePolicy (String 
autoscalePolicyId) throws RestAPIException {
+
+        org.apache.stratos.autoscaler.policy.model.AutoscalePolicy 
autoscalePolicy = null;
+        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+            try {
+                autoscalePolicy = 
autoscalerServiceClient.getAutoScalePolicy(autoscalePolicyId);
+
+            } catch (Exception e) {
+                String errorMsg = "Error getting available autoscaling 
policies";
+                log.error(errorMsg, e);
+                throw new RestAPIException(errorMsg, e);
+            }
+        }
+
+        return PojoConverter.populateAutoscalePojo(autoscalePolicy);
     }
 
     public static DeploymentPolicy[] getDeploymentPolicies () throws 
RestAPIException {
@@ -164,7 +220,62 @@ public class ServiceUtils {
             }
         }
 
-        return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicies);
+        return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
+    }
+
+    public static DeploymentPolicy[] getDeploymentPolicies (String 
cartridgeType) throws RestAPIException {
+
+        org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy [] 
deploymentPolicies = null;
+        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+            try {
+                deploymentPolicies = 
autoscalerServiceClient.getDeploymentPolicies(cartridgeType);
+
+            } catch (Exception e) {
+                String errorMsg = "Error getting available deployment 
policies";
+                log.error(errorMsg, e);
+                throw new RestAPIException(errorMsg, e);
+            }
+        }
+
+        return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
+    }
+
+    public static DeploymentPolicy getDeploymentPolicy(String 
deploymentPolicyId) throws RestAPIException {
+
+        org.apache.stratos.autoscaler.deployment.policy.DeploymentPolicy 
deploymentPolicy = null;
+        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+            try {
+                deploymentPolicy = 
autoscalerServiceClient.getDeploymentPolicy(deploymentPolicyId);
+
+            } catch (Exception e) {
+                String errorMsg = "Error getting available deployment 
policies";
+                log.error(errorMsg, e);
+                throw new RestAPIException(errorMsg, e);
+            }
+        }
+
+        return PojoConverter.populateDeploymentPolicyPojo(deploymentPolicy);
+    }
+
+    public static PartitionGroup[] getPartitionGroups (String 
deploymentPolicyId)
+            throws RestAPIException{
+
+        org.apache.stratos.autoscaler.partition.xsd.PartitionGroup [] 
partitionGroups = null;
+        AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+            try {
+                partitionGroups = 
autoscalerServiceClient.getPartitionGroups(deploymentPolicyId);
+
+            } catch (Exception e) {
+                String errorMsg = "Error getting available partition groups";
+                log.error(errorMsg, e);
+                throw new RestAPIException(errorMsg, e);
+            }
+        }
+
+        return PojoConverter.populatePartitionGroupPojos(partitionGroups);
     }
 
     static List<Cartridge> getAvailableCartridges(String 
cartridgeSearchString, Boolean multiTenant, ConfigurationContext 
configurationContext) throws ADCException {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/e8d08860/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 92967a1..7ed26e6 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
@@ -32,6 +32,7 @@ import 
org.apache.stratos.rest.endpoint.annotation.AuthorizationAction;
 import org.apache.stratos.rest.endpoint.annotation.SuperTenantService;
 import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
 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;
@@ -90,7 +91,7 @@ public class StratosAdmin extends AbstractAdmin {
         ServiceUtils.undeployCartridge(cartridgeType);
     }
 
-    @GET
+    /*@GET
     @Path("/partition")
     @Produces("application/json")
     @Consumes("application/json")
@@ -98,6 +99,38 @@ public class StratosAdmin extends AbstractAdmin {
     public Partition[] getPartitions () throws RestAPIException {
 
         return ServiceUtils.getAvailablePartitions();
+    }*/
+
+    @GET
+    @Path("/partition/{partitionId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Partition getPartition (@PathParam("partitionId") String 
partitionId) throws RestAPIException {
+
+        return ServiceUtils.getPartition(partitionId);
+    }
+
+    @GET
+    @Path("/partition/group/{deploymentPolicyId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public PartitionGroup[] getPartitionGroups 
(@PathParam("deploymentPolicyId") String deploymentPolicyId)
+            throws RestAPIException {
+
+        return ServiceUtils.getPartitionGroups(deploymentPolicyId);
+    }
+
+    @GET
+    @Path("/partition/{deploymentPolicyId}/{partitionGroupId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public Partition [] getPartitions (@PathParam("deploymentPolicyId") String 
deploymentPolicyId,
+                                       @PathParam("partitionGroupId") String 
partitionGroupId) throws RestAPIException {
+
+        return ServiceUtils.getPartitions(deploymentPolicyId, 
partitionGroupId);
     }
 
     @GET
@@ -111,6 +144,17 @@ public class StratosAdmin extends AbstractAdmin {
     }
 
     @GET
+    @Path("/policy/autoscale/{autoscalePolicyId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public AutoscalePolicy getAutoscalePolicies 
(@PathParam("autoscalePolicyId") String autoscalePolicyId)
+            throws RestAPIException {
+
+        return ServiceUtils.getAutoScalePolicy(autoscalePolicyId);
+    }
+
+    @GET
     @Path("/policy/deployment")
     @Produces("application/json")
     @Consumes("application/json")
@@ -121,6 +165,28 @@ public class StratosAdmin extends AbstractAdmin {
     }
 
     @GET
+    @Path("/policy/deployment/{deploymentPolicyId}")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public DeploymentPolicy getDeploymentPolicies 
(@PathParam("deploymentPolicyId") String deploymentPolicyId)
+            throws RestAPIException {
+
+        return ServiceUtils.getDeploymentPolicy(deploymentPolicyId);
+    }
+
+    @GET
+    @Path("{cartridgeType}/policy/deployment")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public DeploymentPolicy[] getValidDeploymentPolicies 
(@PathParam("cartridgeType") String cartridgeType)
+            throws RestAPIException {
+
+        return ServiceUtils.getDeploymentPolicies(cartridgeType);
+    }
+
+    @GET
     @Path("/cartridge/tenanted/list")
     @Produces("application/json")
     @Consumes("application/json")

Reply via email to