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