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/04 18:57:20 UTC

[3/4] git commit: completed cartridge deployment through rest api

completed cartridge deployment 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/5660364c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/5660364c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/5660364c

Branch: refs/heads/master
Commit: 5660364c929181a82fa79405cdccd9d0a844ee06
Parents: 685bd11
Author: Isuru <is...@wso2.com>
Authored: Wed Dec 4 23:09:06 2013 +0530
Committer: Isuru <is...@wso2.com>
Committed: Wed Dec 4 23:09:06 2013 +0530

----------------------------------------------------------------------
 .../client/CloudControllerServiceClient.java    | 27 ++++++++++++
 .../org.apache.stratos.rest.endpoint/pom.xml    |  6 +--
 .../definition/CartridgeDefinitionBean.java     | 12 +++++-
 .../cartridge/definition/IaasProviderBean.java  | 15 ++++++-
 .../cartridge/definition/LoadBalancerBean.java  | 44 ++++++++++++++++++++
 .../client/CartridgeMgtServiceClient.java       | 14 +------
 .../rest/endpoint/services/ServiceUtils.java    | 38 +++++++++++++----
 .../rest/endpoint/services/StratosAdmin.java    |  1 -
 8 files changed, 129 insertions(+), 28 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5660364c/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/CloudControllerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/CloudControllerServiceClient.java b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/CloudControllerServiceClient.java
index 703f467..4434625 100644
--- a/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/CloudControllerServiceClient.java
+++ b/components/org.apache.stratos.adc.mgt/src/main/java/org/apache/stratos/adc/mgt/client/CloudControllerServiceClient.java
@@ -26,6 +26,7 @@ import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.adc.mgt.exception.UnregisteredCartridgeException;
 import org.apache.stratos.adc.mgt.internal.DataHolder;
 import org.apache.stratos.adc.mgt.utils.CartridgeConstants;
+import org.apache.stratos.cloud.controller.pojo.CartridgeConfig;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 import org.apache.stratos.cloud.controller.pojo.Registrant;
 import org.apache.stratos.cloud.controller.stub.CloudControllerServiceIllegalArgumentExceptionException;
@@ -71,6 +72,32 @@ public class CloudControllerServiceClient {
         return serviceClient;
     }
 
+    public void deployCartridgeDefinition (CartridgeConfig cartridgeConfig)
+            throws Exception {
+
+        try {
+            stub.deployCartridgeDefinition(cartridgeConfig);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in deploying cartridge definition";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+    }
+
+    public void unDeployCartridgeDefinition (String cartridgeType)
+            throws Exception {
+
+        try {
+            stub.undeployCartridgeDefinition(cartridgeType);
+
+        } catch (RemoteException e) {
+            String errorMsg = "Error in deploying cartridge definition";
+            log.error(errorMsg, e);
+            throw new Exception(errorMsg, e);
+        }
+    }
+
 	public boolean register(String clusterId, String cartridgeType,
 	                        String payload, String tenantRange,
                             String hostName, Properties properties,

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5660364c/components/org.apache.stratos.rest.endpoint/pom.xml
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/pom.xml b/components/org.apache.stratos.rest.endpoint/pom.xml
index e226a8f..71bb563 100644
--- a/components/org.apache.stratos.rest.endpoint/pom.xml
+++ b/components/org.apache.stratos.rest.endpoint/pom.xml
@@ -97,14 +97,14 @@
         <dependency>
             <groupId>org.apache.stratos</groupId>
             <artifactId>org.apache.stratos.cloud.controller.service.stub</artifactId>
-            <version>${project.version}</version>
+            <version>4.0.0-SNAPSHOT</version>
             <scope>provided</scope>
         </dependency>
-        <dependency>
+        <!--dependency>
             <groupId>org.apache.stratos</groupId>
             <artifactId>org.apache.stratos.cartridge.mgt.service.stub</artifactId>
             <version>4.0.0-SNAPSHOT</version>
             <scope>provided</scope>
-        </dependency>
+        </dependency-->
     </dependencies>
 </project>

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5660364c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
index 68840dd..318e347 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/CartridgeDefinitionBean.java
@@ -45,6 +45,8 @@ public class CartridgeDefinitionBean {
 
     public List<IaasProviderBean> iaasProvider;
 
+    public LoadBalancerBean loadBalancer;
+
     public List<PropertyBean> property;
 
     public String toString () {
@@ -52,7 +54,7 @@ public class CartridgeDefinitionBean {
         return "Type: " + type + ", Provider: " + provider + ", Host: " + host + ", Display Name: " + displayName +
                 ", Description: " + description +  ", Version: " + version + ", Multitenant " + multiTenant + "\n" +
                 getDeploymentDetails() + "\n PortMapping: " + getPortMappings() + "\n IaaS: " + getIaasProviders() +
-                "\n Properties: " + getProperties();
+                "\n LoadBalancer: " + getLoadBalancerInfo() + "\n Properties: " + getProperties();
     }
 
     private String getDeploymentDetails () {
@@ -63,6 +65,14 @@ public class CartridgeDefinitionBean {
         return null;
     }
 
+    private String getLoadBalancerInfo() {
+
+        if(loadBalancer != null) {
+            return loadBalancer.toString();
+        }
+        return null;
+    }
+
     private String getPortMappings () {
 
         StringBuilder portMappingBuilder = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5660364c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/IaasProviderBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/IaasProviderBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/IaasProviderBean.java
index 5cd0667..0ccb33c 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/IaasProviderBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/IaasProviderBean.java
@@ -27,15 +27,26 @@ public class IaasProviderBean {
 
     public String type;
 
+    public String name;
+
+    public String className;
+
     public String imageId;
 
     public int maxInstanceLimit;
 
+    public String provider;
+
+    public String identity;
+
+    public String credential;
+
     public List<PropertyBean> property;
 
     public String toString () {
-        return " [ Type: " + type + ", Image Id: " + imageId + ", Max Instance Limit: " + maxInstanceLimit +
-                " Properties: " + getIaasProperties() + " ] ";
+        return " [ Type: " + type + ", Name: " + name + ", Class Name: " + className + ", Image Id: " + imageId +
+                ", Max Instance Limit: " + maxInstanceLimit + ", Provider: " + provider + ", Identity: " + identity +
+                ", Credentials: " + credential + ", Properties: " + getIaasProperties() + " ] ";
     }
 
     private String getIaasProperties () {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5660364c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/LoadBalancerBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/LoadBalancerBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/LoadBalancerBean.java
new file mode 100644
index 0000000..c21c867
--- /dev/null
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/LoadBalancerBean.java
@@ -0,0 +1,44 @@
+/*
+ * 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.cartridge.definition;
+
+import javax.xml.bind.annotation.XmlRootElement;
+import java.util.List;
+
+@XmlRootElement(name = "loadBalancer")
+public class LoadBalancerBean {
+
+    public String type;
+
+    public List<PropertyBean> property;
+
+    public String toString () {
+
+        StringBuilder lbBuilder = new StringBuilder();
+        lbBuilder.append(" Type: " + type);
+        if(property != null && !property.isEmpty()) {
+            lbBuilder.append(" Properties: ");
+            for(PropertyBean propertyBean : property) {
+                lbBuilder.append(propertyBean.name + " : " + propertyBean.value + " | ");
+            }
+        }
+        return lbBuilder.toString();
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5660364c/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/CartridgeMgtServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/CartridgeMgtServiceClient.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/CartridgeMgtServiceClient.java
index 086c172..4b497cf 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/CartridgeMgtServiceClient.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/service/client/CartridgeMgtServiceClient.java
@@ -19,19 +19,9 @@
 
 package org.apache.stratos.rest.endpoint.service.client;
 
-import org.apache.axis2.AxisFault;
-import org.apache.axis2.context.ConfigurationContext;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.apache.stratos.cartridge.mgt.stub.CartridgeMgtServiceStub;
-import org.apache.stratos.cloud.controller.pojo.CartridgeConfig;
-import org.apache.stratos.rest.endpoint.ServiceHolder;
-
-import java.rmi.RemoteException;
-
 public class CartridgeMgtServiceClient {
 
-    private CartridgeMgtServiceStub cartridgeMgtServiceStub;
+    /*private CartridgeMgtServiceStub cartridgeMgtServiceStub;
     private static final Log log = LogFactory.getLog(CartridgeMgtServiceClient.class);
     private static volatile CartridgeMgtServiceClient serviceClient;
     private static final String CARTRIDGE_MGT_EPR = "cartridge.mgt.epr";
@@ -85,5 +75,5 @@ public class CartridgeMgtServiceClient {
             log.error(errorMsg, e);
             throw new Exception(errorMsg, e);
         }
-    }
+    } */
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/5660364c/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 9ab0828..3dfb32e 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
@@ -40,7 +40,6 @@ import org.apache.stratos.rest.endpoint.bean.cartridge.definition.IaasProviderBe
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PortMappingBean;
 import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PropertyBean;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
-import org.apache.stratos.rest.endpoint.service.client.CartridgeMgtServiceClient;
 import org.wso2.carbon.context.PrivilegedCarbonContext;
 
 import java.util.ArrayList;
@@ -56,8 +55,8 @@ public class ServiceUtils {
 
         log.info("***** " + cartridgeDefinitionBean.toString() + " *****");
 
-        CartridgeMgtServiceClient cartridgeMgtServiceClient = getCartridgeMgtServiceClient();
-        if (cartridgeMgtServiceClient != null) {
+        CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+        if (cloudControllerServiceClient != null) {
 
             CartridgeConfig cartridgeConfig = populateCartridgeConfigPojo(cartridgeDefinitionBean);
 
@@ -66,7 +65,7 @@ public class ServiceUtils {
             }
 
             try {
-                cartridgeMgtServiceClient.deployCartridgedefinition(cartridgeConfig);
+                cloudControllerServiceClient.deployCartridgeDefinition(cartridgeConfig);
 
             } catch (Exception e) {
                 throw new RestAPIException(e);
@@ -101,6 +100,10 @@ public class ServiceUtils {
         if(cartridgeDefinitionBean.iaasProvider != null & !cartridgeDefinitionBean.iaasProvider.isEmpty()) {
             cartridgeConfig.setIaasConfigs(getIaasConfigsAsArray(cartridgeDefinitionBean.iaasProvider));
         }
+        //LB
+        if(cartridgeDefinitionBean.loadBalancer != null) {
+            //cartridgeConfig.set
+        }
         //Properties
         if(cartridgeDefinitionBean.property != null && !cartridgeDefinitionBean.property.isEmpty()) {
             cartridgeConfig.setProperties(getProperties(cartridgeDefinitionBean.property));
@@ -139,6 +142,11 @@ public class ServiceUtils {
             iaasConfig.setType(iaasProviderBeansArray[i].type);
             iaasConfig.setImageId(iaasProviderBeansArray[i].imageId);
             iaasConfig.setMaxInstanceLimit(iaasProviderBeansArray[i].maxInstanceLimit);
+            iaasConfig.setName(iaasProviderBeansArray[i].name);
+            iaasConfig.setClassName(iaasProviderBeansArray[i].className);
+            iaasConfig.setCredential(iaasProviderBeansArray[i].credential);
+            iaasConfig.setIdentity(iaasProviderBeansArray[i].identity);
+            iaasConfig.setProvider(iaasProviderBeansArray[i].provider);
 
             if(iaasProviderBeansArray[i].property != null && !iaasProviderBeansArray[i].property.isEmpty()) {
                 //set the Properties instance to IaasConfig instance
@@ -170,10 +178,10 @@ public class ServiceUtils {
 
     static void undeployCartridge (String cartridgeType) throws RestAPIException {
 
-        CartridgeMgtServiceClient cartridgeMgtServiceClient = getCartridgeMgtServiceClient();
-        if (cartridgeMgtServiceClient != null) {
+        CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
+        if (cloudControllerServiceClient != null) {
             try {
-                cartridgeMgtServiceClient.undeployCartridgeDefinition(cartridgeType);
+                cloudControllerServiceClient.unDeployCartridgeDefinition(cartridgeType);
 
             } catch (Exception e) {
                 throw new RestAPIException(e);
@@ -181,7 +189,19 @@ public class ServiceUtils {
         }
     }
 
-    private static CartridgeMgtServiceClient getCartridgeMgtServiceClient () {
+    private static CloudControllerServiceClient getCloudControllerServiceClient () {
+
+        try {
+            return CloudControllerServiceClient.getServiceClient();
+
+        } catch (AxisFault axisFault) {
+            String errorMsg = "Error in getting CloudControllerServiceClient instance";
+            log.error(errorMsg, axisFault);
+        }
+        return null;
+    }
+
+    /*private static CartridgeMgtServiceClient getCartridgeMgtServiceClient () {
 
         try {
             return CartridgeMgtServiceClient.getServiceClient();
@@ -191,7 +211,7 @@ public class ServiceUtils {
             log.error(errorMsg, axisFault);
         }
         return null;
-    }
+    }*/
 
     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/5660364c/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 06f447f..cd82c07 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
@@ -198,7 +198,6 @@ public class StratosAdmin extends AbstractAdmin {
     }
 
 
-
     @PUT
     @Path("/tenant")
     @Consumes("application/json")