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 <[email protected]> Authored: Wed Dec 4 23:09:06 2013 +0530 Committer: Isuru <[email protected]> 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")
