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/05 13:58:44 UTC

git commit: committing retrieving autoscale policies through Rest API

Updated Branches:
  refs/heads/master 7a1a99989 -> b6591566f


committing retrieving autoscale policies through 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/b6591566
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/b6591566
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/b6591566

Branch: refs/heads/master
Commit: b6591566f4fb17ff5bb567ac0ff80719c42b9e1f
Parents: 7a1a999
Author: Isuru <is...@wso2.com>
Authored: Thu Dec 5 18:28:15 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Thu Dec 5 18:28:15 2013 +0530

----------------------------------------------------------------------
 .../bean/autoscaler/policy/AutoscalePolicy.java | 30 ++++++++++++++
 .../service/client/AutoscalerServiceClient.java | 16 ++++++++
 .../rest/endpoint/services/ServiceUtils.java    | 41 ++++++++++++++++++++
 .../rest/endpoint/services/StratosAdmin.java    | 11 ++++++
 4 files changed, 98 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b6591566/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/AutoscalePolicy.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/AutoscalePolicy.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/AutoscalePolicy.java
new file mode 100644
index 0000000..43c565f
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/autoscaler/policy/AutoscalePolicy.java
@@ -0,0 +1,30 @@
+/*
+ * 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.autoscaler.policy;
+
+import javax.xml.bind.annotation.XmlRootElement;
+
+@XmlRootElement
+public class AutoscalePolicy {
+
+    public String id;
+    public String displayName;
+    public String description;
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b6591566/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/AutoscalerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/AutoscalerServiceClient.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/AutoscalerServiceClient.java
index 8046953..571b89c 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/AutoscalerServiceClient.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/AutoscalerServiceClient.java
@@ -76,4 +76,20 @@ public class AutoscalerServiceClient {
 
         return partitions;
     }
+
+    public org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[] getAutoScalePolicies ()
+            throws Exception {
+
+        org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[] autoscalePolicies;
+        try {
+            autoscalePolicies = stub.getAllAutoScalingPolicy();
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in getting available partitions";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+
+        return autoscalePolicies;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/b6591566/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 2310255..4de74a8 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
@@ -36,6 +36,7 @@ import org.apache.stratos.adc.mgt.utils.PersistenceManager;
 import org.apache.stratos.adc.topology.mgt.service.TopologyManagementService;
 import org.apache.stratos.cloud.controller.pojo.*;
 import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
+import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.AutoscalePolicy;
 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.PortMappingBean;
@@ -275,6 +276,46 @@ public class ServiceUtils {
         return partitionBeans;
     }
 
+
+    public static AutoscalePolicy[] getAutoScalePolicies () throws RestAPIException {
+
+        org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[] autoscalePolicies = null;
+        AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+        if (autoscalerServiceClient != null) {
+            try {
+                autoscalePolicies = autoscalerServiceClient.getAutoScalePolicies();
+
+            } catch (Exception e) {
+                String errorMsg = "Error getting available partitions";
+                log.error(errorMsg, e);
+                throw new RestAPIException(errorMsg, e);
+            }
+        }
+
+        return populateAutoscalePojo(autoscalePolicies);
+    }
+
+    private static AutoscalePolicy[] populateAutoscalePojo(org.apache.stratos.autoscaler.policy.model.AutoscalePolicy[]
+                                                                   autoscalePolicies) {
+
+        AutoscalePolicy [] autoscalePolicyBeans;
+        if(autoscalePolicies == null) {
+            autoscalePolicyBeans = new AutoscalePolicy[0];
+            return autoscalePolicyBeans;
+        }
+
+        autoscalePolicyBeans = new AutoscalePolicy[autoscalePolicies.length];
+        for (int i = 0 ; i < autoscalePolicies.length ; i++) {
+            AutoscalePolicy autoscalePolicy = new AutoscalePolicy();
+            autoscalePolicy.id = autoscalePolicies[i].getId();
+            autoscalePolicy.displayName = autoscalePolicies[i].getDisplayName();
+            autoscalePolicy.description = autoscalePolicies[i].getDescription();
+            //other information are not added. TODO add if required
+            autoscalePolicyBeans[i] = autoscalePolicy;
+        }
+        return autoscalePolicyBeans;
+    }
+
     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/b6591566/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 707bd78..60688f5 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.policy.AutoscalePolicy;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
 import org.apache.stratos.tenant.mgt.util.TenantMgtUtil;
@@ -88,6 +89,16 @@ public class StratosAdmin extends AbstractAdmin {
     }
 
     @GET
+    @Path("/policy/autoscale")
+    @Produces("application/json")
+    @Consumes("application/json")
+    @AuthorizationAction("/permission/protected/manage/monitor/tenants")
+    public AutoscalePolicy[] getAutoscalePolicies () throws RestAPIException {
+
+        return ServiceUtils.getAutoScalePolicies();
+    }
+
+    @GET
     @Path("/cartridge/tenanted/list")
     @Produces("application/json")
     @Consumes("application/json")