Add the rest api operation for list cartridges based on the provider

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

Branch: refs/heads/master
Commit: ac4928f8ca00ad11de6af3b42c99ec4beee2eb24
Parents: efd079d
Author: gayan <[email protected]>
Authored: Thu Dec 4 20:51:08 2014 +0530
Committer: gayan <[email protected]>
Committed: Thu Dec 4 21:33:39 2014 +0530

----------------------------------------------------------------------
 .../cloud/controller/domain/Cartridge.java      |    9 +
 .../cloud/controller/domain/CartridgeInfo.java  |   10 +
 .../controller/util/CloudControllerUtil.java    |    1 +
 .../apache/stratos/manager/dto/Cartridge.java   |    8 +
 .../rest/endpoint/api/StratosApiV41.java        |   12 +
 .../rest/endpoint/api/StratosApiV41Utils.java   |   88 +-
 .../AverageInFlightRequestsFinder.xml           |    2 +-
 .../main/resources/CloudControllerService.wsdl  | 2244 +++++++++---------
 8 files changed, 1303 insertions(+), 1071 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/ac4928f8/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
index da92b12..4303fc0 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/Cartridge.java
@@ -39,6 +39,8 @@ public class Cartridge implements Serializable{
     private String hostName;
     
     private String provider;
+
+       private String category;
     
     private String displayName;
     
@@ -401,4 +403,11 @@ public class Cartridge implements Serializable{
         this.exportingProperties = exportingProperties;
     }
 
+       public String getCategory() {
+               return category;
+       }
+
+       public void setCategory(String category) {
+               this.category = category;
+       }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ac4928f8/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInfo.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInfo.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInfo.java
index e35f357..a9c3ed0 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInfo.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/CartridgeInfo.java
@@ -44,6 +44,8 @@ public class CartridgeInfo {
     private AppType[] appTypes;
     
     private String provider;
+
+       private String category;
     
     private String version;
     
@@ -229,4 +231,12 @@ public class CartridgeInfo {
     public void setServiceGroup(String serviceGroup) {
         this.serviceGroup = serviceGroup;
     }
+
+       public String getCategory() {
+               return category;
+       }
+
+       public void setCategory(String category) {
+               this.category = category;
+       }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ac4928f8/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
index e6c8d6f..2e4e505 100644
--- 
a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
+++ 
b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/util/CloudControllerUtil.java
@@ -192,6 +192,7 @@ public class CloudControllerUtil {
                carInfo.setHostName(cartridge.getHostName());
                carInfo.setDeploymentDirs(cartridge.getDeploymentDirs());
                carInfo.setProvider(cartridge.getProvider());
+           carInfo.setCategory(cartridge.getCategory());
                carInfo.setVersion(cartridge.getVersion());
                carInfo.setMultiTenant(cartridge.isMultiTenant());
                carInfo.setBaseDir(cartridge.getBaseDir());

http://git-wip-us.apache.org/repos/asf/stratos/blob/ac4928f8/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
index 94efad9..6bcd740 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
@@ -39,6 +39,7 @@ public class Cartridge implements Comparable<Cartridge> {
        private String status;
        //private String ip;
        private String provider;
+       private String category;
        private String version;
        private boolean multiTenant;
     private boolean isLoadBalancer;
@@ -323,4 +324,11 @@ public class Cartridge implements Comparable<Cartridge> {
                this.clusterId = clusterId;
        }
 
+       public String getCategory() {
+               return category;
+       }
+
+       public void setCategory(String category) {
+               this.category = category;
+       }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/ac4928f8/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
index a8eab46..fcc128d 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41.java
@@ -162,6 +162,18 @@ public class StratosApiV41 extends AbstractApi {
         return Response.noContent().build();
     }
 
+       @GET
+       @Path("/cartridges/{provider}")
+       @Produces("application/json")
+       @Consumes("application/json")
+       @AuthorizationAction("/permission/admin/manage/view/cartridge")
+       public Response getCartridgesByProvider(@PathParam("provider") String 
provider) throws RestAPIException {
+               List<Cartridge> cartridges = 
StratosApiV41Utils.getAvailableCartridgesByProvider(provider, 
getConfigContext());
+               ResponseBuilder rb = Response.ok();
+               rb.entity(cartridges.isEmpty() ? new Cartridge[0] : 
cartridges.toArray(new Cartridge[cartridges.size()]));
+               return rb.build();
+       }
+
     @GET
     @Path("/cartridges/singleTenant")
     @Produces("application/json")

http://git-wip-us.apache.org/repos/asf/stratos/blob/ac4928f8/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
index 08ef896..2ad9a11 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/api/StratosApiV41Utils.java
@@ -725,6 +725,91 @@ public class StratosApiV41Utils {
         return lbCartridges;
     }
 
+       static List<Cartridge> getAvailableCartridgesByProvider(String 
provider, ConfigurationContext configurationContext) throws RestAPIException {
+               List<Cartridge> cartridges = new ArrayList<Cartridge>();
+
+               if (log.isDebugEnabled()) {
+                       log.debug("Getting available cartridges. Privider name 
: " + provider );
+               }
+
+               boolean allowMultipleSubscription = new Boolean(
+                               
System.getProperty(CartridgeConstants.FEATURE_MULTI_TENANT_MULTIPLE_SUBSCRIPTION_ENABLED));
+
+               try {
+
+
+                       String[] availableCartridges = 
CloudControllerServiceClient.getServiceClient().getRegisteredCartridges();
+
+                       if (availableCartridges != null) {
+                               for (String cartridgeType : 
availableCartridges) {
+                                       CartridgeInfo cartridgeInfo = null;
+                                       try {
+                                               cartridgeInfo = 
CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
+                                       } catch (Exception e) {
+                                               if (log.isWarnEnabled()) {
+                                                       log.warn("Error when 
calling getCartridgeInfo for " + cartridgeType + ", Error: "
+                                                                + 
e.getMessage());
+                                               }
+                                       }
+                                       if (cartridgeInfo == null) {
+                                               // This cannot happen. But 
continue
+                                               if (log.isDebugEnabled()) {
+                                                       log.debug("Cartridge 
Info not found: " + cartridgeType);
+                                               }
+                                               continue;
+                                       }
+
+
+                                       if 
(!cartridgeInfo.getProvider().equals(provider)) {
+                                               continue;
+                                       }
+
+                                       Cartridge cartridge = new Cartridge();
+                                       
cartridge.setCartridgeType(cartridgeType);
+                                       
cartridge.setProvider(cartridgeInfo.getProvider());
+                                       
cartridge.setDisplayName(cartridgeInfo.getDisplayName());
+                                       
cartridge.setDescription(cartridgeInfo.getDescription());
+                                       
cartridge.setVersion(cartridgeInfo.getVersion());
+                                       
cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());
+                                       
cartridge.setHostName(cartridgeInfo.getHostName());
+                                       
cartridge.setDefaultAutoscalingPolicy(cartridgeInfo.getDefaultAutoscalingPolicy());
+                                       
cartridge.setDefaultDeploymentPolicy(cartridgeInfo.getDefaultDeploymentPolicy());
+                                       
//cartridge.setStatus(CartridgeConstants.NOT_SUBSCRIBED);
+                                       cartridge.setCartridgeAlias("-");
+                                       
cartridge.setPersistence(cartridgeInfo.getPersistence());
+                                       
cartridge.setServiceGroup(cartridgeInfo.getServiceGroup());
+
+                                       if (cartridgeInfo.getProperties() != 
null) {
+                                               for 
(org.apache.stratos.cloud.controller.stub.Property property : cartridgeInfo
+                                                               
.getProperties()) {
+                                                       if 
(property.getName().equals("load.balancer")) {
+                                                               
cartridge.setLoadBalancer(true);
+                                                       }
+                                               }
+                                       }
+                                       //cartridge.setActiveInstances(0);
+                                       cartridges.add(cartridge);
+                               }
+                       } else {
+                               if (log.isDebugEnabled()) {
+                                       log.debug("There are no available 
cartridges");
+                               }
+                       }
+               } catch (Exception e) {
+                       String msg = "Error while getting available cartridges. 
Cause: " + e.getMessage();
+                       log.error(msg, e);
+                       throw new RestAPIException(msg, e);
+               }
+
+               Collections.sort(cartridges);
+
+               if (log.isDebugEnabled()) {
+                       log.debug("Returning available cartridges " + 
cartridges.size());
+               }
+
+               return cartridges;
+    }
+
     static List<Cartridge> getAvailableCartridges(String 
cartridgeSearchString, Boolean multiTenant, ConfigurationContext 
configurationContext) throws RestAPIException {
         List<Cartridge> cartridges = new ArrayList<Cartridge>();
 
@@ -774,7 +859,8 @@ public class StratosApiV41Utils {
                     Cartridge cartridge = new Cartridge();
                     cartridge.setCartridgeType(cartridgeType);
                     cartridge.setProvider(cartridgeInfo.getProvider());
-                    cartridge.setDisplayName(cartridgeInfo.getDisplayName());
+                       cartridge.setCategory(cartridgeInfo.getCategory());
+                       
cartridge.setDisplayName(cartridgeInfo.getDisplayName());
                     cartridge.setDescription(cartridgeInfo.getDescription());
                     cartridge.setVersion(cartridgeInfo.getVersion());
                     cartridge.setMultiTenant(cartridgeInfo.getMultiTenant());

http://git-wip-us.apache.org/repos/asf/stratos/blob/ac4928f8/extensions/cep/artifacts/executionplans/AverageInFlightRequestsFinder.xml
----------------------------------------------------------------------
diff --git 
a/extensions/cep/artifacts/executionplans/AverageInFlightRequestsFinder.xml 
b/extensions/cep/artifacts/executionplans/AverageInFlightRequestsFinder.xml
index e8cd8f6..fbc605d 100644
--- a/extensions/cep/artifacts/executionplans/AverageInFlightRequestsFinder.xml
+++ b/extensions/cep/artifacts/executionplans/AverageInFlightRequestsFinder.xml
@@ -33,7 +33,7 @@
   <queryExpressions><![CDATA[ 
        from avg_rif_stat
                select cluster_id, instance_id, 
network_partition_id,active_instances_count, 
in_flight_request_count,served_request_count,
-               stratos:concat(cluster_id, '-' , network_partition_id) as 
avg_rif_cluster_network
+               stratos:concat(cluster_id, '-' ,instance_id) as 
avg_rif_cluster_network
                insert into avg_rif_concat;
        define partition avg_rif_cluster_partition by  
avg_rif_concat.avg_rif_cluster_network;
        from avg_rif_concat#window.timeBatch(1 min)

Reply via email to