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")