You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2014/12/15 19:17:21 UTC
[3/4] stratos git commit: Refining application deployment process
http://git-wip-us.apache.org/repos/asf/stratos/blob/fbcf3847/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 8a2f8a7..274dd8f 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
@@ -26,6 +26,7 @@ import org.apache.commons.logging.LogFactory;
import org.apache.stratos.autoscaler.stub.*;
import org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy;
import org.apache.stratos.autoscaler.stub.pojo.ApplicationContext;
+import org.apache.stratos.autoscaler.stub.pojo.ApplicationContextStatus;
import org.apache.stratos.cloud.controller.stub.*;
import org.apache.stratos.cloud.controller.stub.domain.CartridgeConfig;
import org.apache.stratos.cloud.controller.stub.domain.CartridgeInfo;
@@ -82,6 +83,7 @@ public class StratosApiV41Utils {
public static final String DEVICE_NAME = "volume.device.name";
public static final String VOLUME_ID = "volume.id";
public static final String TENANT_RANGE_ALL = "*";
+ public static final String APPLICATION_STATUS_DEPLOYED = "Deployed";
private static Log log = LogFactory.getLog(StratosApiV41Utils.class);
private static CartridgeSubscriptionManager cartridgeSubsciptionManager = new CartridgeSubscriptionManager();
@@ -108,7 +110,7 @@ public class StratosApiV41Utils {
}
log.info("Successfully deployed cartridge: [type] " + cartridgeDefinitionBean.getType());
}
-
+
public static void deleteCartridgeDefinition(String cartridgeType) throws RestAPIException {
CloudControllerServiceClient cloudControllerServiceClient = getCloudControllerServiceClient();
@@ -185,11 +187,11 @@ public class StratosApiV41Utils {
throw new RestAPIException(msg, e);
}
}
-
+
public static List<CartridgeDefinitionBean> getCartridgesByFilter(String filter, String criteria, ConfigurationContext configurationContext)
throws RestAPIException {
List<CartridgeDefinitionBean> cartridges = null;
-
+
if (filter.equals("singleTenant")) {
cartridges = getAvailableCartridges(null, false, configurationContext);
} else if (filter.equals("multiTenant")) {
@@ -199,14 +201,14 @@ public class StratosApiV41Utils {
} else if (filter.equals("provider")) {
cartridges = getAvailableCartridgesByProvider(criteria, configurationContext);
}
-
+
return cartridges;
}
-
+
public static CartridgeDefinitionBean getCartridgeByFilter(String filter, String cartridgeType, ConfigurationContext configurationContext)
throws RestAPIException {
List<CartridgeDefinitionBean> cartridges = getCartridgesByFilter(filter, null, configurationContext);
-
+
for (CartridgeDefinitionBean cartridge : cartridges) {
if (cartridge.getType().equals(cartridgeType)) {
return cartridge;
@@ -216,7 +218,7 @@ public class StratosApiV41Utils {
log.error(msg);
throw new RestAPIException(msg);
}
-
+
private static List<CartridgeDefinitionBean> getAvailableLbCartridges(Boolean multiTenant,
ConfigurationContext configurationContext) throws RestAPIException {
List<CartridgeDefinitionBean> cartridges = getAvailableCartridges(null, multiTenant,
@@ -496,9 +498,9 @@ public class StratosApiV41Utils {
}
return true;
}
-
+
// Util methods to get the service clients
-
+
private static CloudControllerServiceClient getCloudControllerServiceClient() throws RestAPIException {
try {
@@ -610,28 +612,8 @@ public class StratosApiV41Utils {
return PojoConverter.populateAutoscalePojo(autoscalePolicy);
}
-
- // Util methods for Deployment policies
-
- public static org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy[]
- getDeploymentPolicies() throws RestAPIException {
-
- DeploymentPolicy[] deploymentPolicies = null;
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
- try {
- deploymentPolicies = autoscalerServiceClient.getDeploymentPolicies();
- } catch (RemoteException e) {
- String errorMsg = "Error getting available deployment policies. Cause : " + e.getMessage();
- log.error(errorMsg, e);
- throw new RestAPIException(errorMsg, e);
- }
- }
-
-
- return PojoConverter.populateDeploymentPolicyPojos(deploymentPolicies);
- }
+ // Util methods for Deployment policies
public static org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy
getDeploymentPolicy(String deploymentPolicyId) throws RestAPIException {
@@ -677,7 +659,7 @@ public class StratosApiV41Utils {
return PojoConverter.populatePartitionGroupPojos(partitionGroups);
}
-
+
// Util methods for services and subscriptions
public static List<Cartridge> getSubscriptions(String cartridgeSearchString, String serviceGroup, ConfigurationContext configurationContext) throws RestAPIException {
@@ -756,7 +738,7 @@ public class StratosApiV41Utils {
return cartridges;
}
-
+
private static Cartridge getCartridgeFromSubscription(CartridgeSubscription subscription) throws RestAPIException {
if (subscription == null) {
@@ -824,9 +806,9 @@ public class StratosApiV41Utils {
public static CartridgeSubscription getCartridgeSubscription(String alias, ConfigurationContext configurationContext) {
return CartridgeSubscriptionManager.getCartridgeSubscription(ApplicationManagementUtil.getTenantId(configurationContext), alias);
}
-
+
// Util methods for clusters
-
+
public static org.apache.stratos.common.beans.topology.Cluster[] getClustersForTenant(ConfigurationContext configurationContext) {
Set<Cluster> clusterSet = TopologyClusterInformationModel.getInstance().getClusters(ApplicationManagementUtil.
@@ -887,7 +869,7 @@ public class StratosApiV41Utils {
}
// Util methods for service groups
-
+
public static void createServiceGroupDefinition(ServiceGroupDefinition serviceGroupDefinition) throws RestAPIException {
try {
@@ -944,27 +926,29 @@ public class StratosApiV41Utils {
// Util methods for Applications
- public static void createApplicationDefinition(ApplicationDefinition appDefinition, ConfigurationContext ctxt,
+ /**
+ * Verify the existence of the application and add it.
+ * @param appDefinition
+ * @param ctxt
+ * @param userName
+ * @param tenantDomain
+ * @throws RestAPIException
+ */
+ public static void addApplication(ApplicationDefinition appDefinition, ConfigurationContext ctxt,
String userName, String tenantDomain)
throws RestAPIException {
// check if an application with same id already exists
- // check if application with same appId / tenant already exists
- CartridgeSubscriptionManager subscriptionMgr = new CartridgeSubscriptionManager();
- int tenantId = ApplicationManagementUtil.getTenantId(ctxt);
- String appId = appDefinition.getApplicationId();
-
try {
- if (subscriptionMgr.getApplicationSubscription(appId, tenantId) != null) {
- String msg = "Duplicate application appId: " + appId + " for tenant " + tenantId;
+ if (AutoscalerServiceClient.getServiceClient().getApplication(appDefinition.getApplicationId()) != null) {
+ String msg = "Application already exists: [application-id]" + appDefinition.getApplicationId();
throw new RestAPIException(msg);
}
- } catch (ApplicationSubscriptionException e1) {
- throw new RestAPIException(e1);
+ } catch (RemoteException e) {
+ throw new RestAPIException("Could not read application", e);
}
- ApplicationContext applicationContext =
- PojoConverter.convertApplicationBeanToApplicationContext(appDefinition);
+ ApplicationContext applicationContext = PojoConverter.convertApplicationDefinitionToApplicationContext(appDefinition);
applicationContext.setTenantId(ApplicationManagementUtil.getTenantId(ctxt));
applicationContext.setTenantDomain(tenantDomain);
applicationContext.setTeantAdminUsername(userName);
@@ -981,7 +965,7 @@ public class StratosApiV41Utils {
}
try {
- AutoscalerServiceClient.getServiceClient().deployApplication(applicationContext);
+ AutoscalerServiceClient.getServiceClient().addApplication(applicationContext);
} catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
throw new RestAPIException(e);
} catch (RemoteException e) {
@@ -991,38 +975,60 @@ public class StratosApiV41Utils {
/**
* Deploy application with a deployment policy.
- * @param deploymentPolicyBean
+ *
+ * @param applicationId
+ * @param deploymentPolicy
* @throws RestAPIException
*/
public static void deployApplication(
- org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicyBean)
+ String applicationId,
+ org.apache.stratos.common.beans.autoscaler.policy.deployment.DeploymentPolicy deploymentPolicy)
throws RestAPIException {
- if (log.isInfoEnabled()) {
- log.info(String.format("Starting to deploy application: [application-id] %s",
- deploymentPolicyBean.getApplicationId()));
- }
+ try {
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Starting to deploy application: [application-id] %s", applicationId));
+ }
- AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
- if (autoscalerServiceClient != null) {
+ AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
+ ApplicationContext application = autoscalerServiceClient.getApplication(applicationId);
+ if(application == null) {
+ String message = String.format("Application is not found: [application-id] %s", applicationId);
+ log.error(message);
+ throw new RestAPIException(message);
+ }
+ if ((application != null) && (application.getStatus().equals(APPLICATION_STATUS_DEPLOYED))) {
+ String message = String.format("Application is already deployed: [application-id] %s", applicationId);
+ log.error(message);
+ throw new RestAPIException(message);
+ }
- org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy deploymentPolicy =
- PojoConverter.convetToASDeploymentPolicyPojo(deploymentPolicyBean);
+ if (!applicationId.equals(deploymentPolicy.getApplicationPolicy().getApplicationId())) {
+ String message = String.format("Application id %s does not match with the deployment policy",
+ applicationId);
+ log.error(message);
+ throw new RestAPIException(message);
+ }
- try {
- autoscalerServiceClient.deployDeploymentPolicy(deploymentPolicy);
- if(log.isInfoEnabled()) {
- log.info(String.format("Application deployed successfully: [application-id] %s [deployment-policy-id] %s",
- deploymentPolicy.getApplicationId(), deploymentPolicy.getApplicationId()));
- }
- } catch (RemoteException e) {
- log.error(e.getMessage(), e);
- throw new RestAPIException(e.getMessage(), e);
- } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
- String message = e.getFaultMessage().getInvalidPolicyException().getMessage();
- log.error(message, e);
- throw new RestAPIException(message, e);
+ org.apache.stratos.autoscaler.stub.deployment.policy.DeploymentPolicy stubDeploymentPolicy =
+ PojoConverter.convetToASDeploymentPolicyPojo(deploymentPolicy);
+
+ autoscalerServiceClient.deployApplication(applicationId, stubDeploymentPolicy);
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Application deployed successfully: [application-id] %s [deployment-policy-id] %s",
+ stubDeploymentPolicy.getApplicationId(), stubDeploymentPolicy.getId()));
}
+ } catch (RemoteException e) {
+ log.error(e.getMessage(), e);
+ throw new RestAPIException(e.getMessage(), e);
+ } catch (AutoScalerServiceInvalidPolicyExceptionException e) {
+ String message = e.getFaultMessage().getInvalidPolicyException().getMessage();
+ log.error(message, e);
+ throw new RestAPIException(message, e);
+ } catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
+ String message = e.getMessage();
+ log.error(message, e);
+ throw new RestAPIException(message, e);
}
}
@@ -1035,34 +1041,62 @@ public class StratosApiV41Utils {
}
}
- public static void removeApplicationDefinition(String appId, ConfigurationContext ctxt,
- String userName, String tenantDomain) throws RestAPIException {
+ public static void deleteApplication(String applicationId) throws RestAPIException {
try {
- int tenantId = ApplicationManagementUtil.getTenantId(ctxt);
- AutoscalerServiceClient.getServiceClient().undeployApplication(appId, tenantId, tenantDomain);
+ AutoscalerServiceClient.getServiceClient().deleteApplication(applicationId);
+ } catch (RemoteException e) {
+ String message = "Could not delete application: [application-id] " + applicationId;
+ log.error(message, e);
+ throw new RestAPIException(message, e);
+ }
+ }
+ public static ApplicationDefinition getApplication(String applicationId) throws RestAPIException {
+ try {
+ return PojoConverter.convertApplicationContextToApplicationDefinition(
+ AutoscalerServiceClient.getServiceClient().getApplication(applicationId));
} catch (RemoteException e) {
- throw new RestAPIException(e);
- } catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
- throw new RestAPIException(e);
+ String message = "Could not read application: [application-id] " + applicationId;
+ log.error(message, e);
+ throw new RestAPIException(message, e);
}
+ }
+ public static List<ApplicationDefinition> getApplications() throws RestAPIException {
+ try {
+ List<ApplicationDefinition> applicationDefinitions = new ArrayList<ApplicationDefinition>();
+ ApplicationContext[] applicationContexts = AutoscalerServiceClient.getServiceClient().getApplications();
+ for(ApplicationContext applicationContext : applicationContexts) {
+ ApplicationDefinition applicationDefinition =
+ PojoConverter.convertApplicationContextToApplicationDefinition(applicationContext);
+ }
+ return applicationDefinitions;
+ } catch (RemoteException e) {
+ String message = "Could not read applications";
+ log.error(message, e);
+ throw new RestAPIException(message, e);
+ }
}
public static void undeployApplication(String applicationId) throws RestAPIException {
AutoscalerServiceClient autoscalerServiceClient = getAutoscalerServiceClient();
if (autoscalerServiceClient != null) {
try {
- autoscalerServiceClient.unDeployDeploymentPolicy(applicationId);
+ autoscalerServiceClient.undeployApplication(applicationId);
} catch (RemoteException e) {
- log.error("Error while unDeploying the Deployment Policy for " + applicationId);
- throw new RestAPIException(e);
+ String message = "Could not undeploy application: [application-id] " + applicationId;
+ log.error(message, e);
+ throw new RestAPIException(message, e);
+ } catch (AutoScalerServiceApplicationDefinitionExceptionException e) {
+ String message = "Could not undeploy application: [application-id] " + applicationId;
+ log.error(message, e);
+ throw new RestAPIException(message, e);
}
}
}
- public static ApplicationBean[] getApplications() {
+ public static ApplicationBean[] getApplicationRuntimes() {
List<ApplicationBean> applicationBeanList = new ArrayList<ApplicationBean>();
try {
ApplicationManager.acquireReadLockForApplications();
@@ -1080,7 +1114,7 @@ public class StratosApiV41Utils {
return applicationBeanList.toArray(new ApplicationBean[applicationBeanList.size()]);
}
- public static ApplicationBean getApplication(String applicationId) {
+ public static ApplicationBean getApplicationRuntime(String applicationId) {
ApplicationBean applicationBean = null;
try {
ApplicationManager.acquireReadLockForApplication(applicationId);
http://git-wip-us.apache.org/repos/asf/stratos/blob/fbcf3847/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
index ec4ef53..6c45c58 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/PojoConverter.java
@@ -47,10 +47,7 @@ import org.apache.stratos.cloud.controller.stub.domain.ServiceGroup;
import org.apache.stratos.cloud.controller.stub.domain.Volume;
import org.apache.stratos.common.Properties;
import org.apache.stratos.common.Property;
-import org.apache.stratos.manager.composite.application.beans.ApplicationDefinition;
-import org.apache.stratos.manager.composite.application.beans.CartridgeDefinition;
-import org.apache.stratos.manager.composite.application.beans.GroupDefinition;
-import org.apache.stratos.manager.composite.application.beans.SubscribableInfo;
+import org.apache.stratos.manager.composite.application.beans.*;
import org.apache.stratos.manager.deploy.service.Service;
import org.apache.stratos.manager.grouping.definitions.DependencyDefinitions;
import org.apache.stratos.manager.grouping.definitions.ServiceGroupDefinition;
@@ -1060,7 +1057,7 @@ public class PojoConverter {
return portRangeBean;
}
- public static ApplicationContext convertApplicationBeanToApplicationContext(ApplicationDefinition compositeAppDefinition) {
+ public static ApplicationContext convertApplicationDefinitionToApplicationContext(ApplicationDefinition compositeAppDefinition) {
org.apache.stratos.autoscaler.stub.pojo.ApplicationContext applicationContext =
new org.apache.stratos.autoscaler.stub.pojo.ApplicationContext();
@@ -1075,25 +1072,133 @@ public class PojoConverter {
// top level Groups
if (compositeAppDefinition.getComponents().getGroups() != null) {
- componentContext.setGroupContexts(getgroupContextArrayFromGroupDefinitions(compositeAppDefinition.getComponents().getGroups()));
+ componentContext.setGroupContexts(
+ convertGroupDefinitionsToGroupContexts(compositeAppDefinition.getComponents().getGroups()));
}
// top level dependency information
if (compositeAppDefinition.getComponents().getDependencies() != null) {
- componentContext.setDependencyContext(getDependencyContextFromDependencyDefinition(compositeAppDefinition.getComponents().getDependencies()));
+ componentContext.setDependencyContext(
+ convertDependencyDefinitionsToDependencyContexts(compositeAppDefinition.getComponents().getDependencies()));
}
// top level cartridge context information
if (compositeAppDefinition.getComponents().getCartridges() != null) {
- componentContext.setCartridgeContexts(getCartridgeContextArrayFromCartridgeDefinition(compositeAppDefinition.getComponents().getCartridges()));
+ componentContext.setCartridgeContexts(
+ convertCartridgeDefinitionsToCartridgeContexts(compositeAppDefinition.getComponents().getCartridges()));
}
-
applicationContext.setComponents(componentContext);
}
-
-
return applicationContext;
}
- private static CartridgeContext[] getCartridgeContextArrayFromCartridgeDefinition(
+ public static ApplicationDefinition convertApplicationContextToApplicationDefinition(ApplicationContext applicationContext) {
+ ApplicationDefinition applicationDefinition = new ApplicationDefinition();
+ applicationDefinition.setApplicationId(applicationContext.getApplicationId());
+ applicationDefinition.setAlias(applicationContext.getAlias());
+
+ // convert and set components
+ if (applicationContext.getComponents() != null) {
+ // top level Groups
+ if (applicationContext.getComponents().getGroupContexts() != null) {
+ applicationDefinition.getComponents().setGroups(
+ convertGroupContextsToGroupDefinitions(applicationContext.getComponents().getGroupContexts()));
+ }
+ // top level dependency information
+ if (applicationContext.getComponents().getDependencyContext() != null) {
+ applicationDefinition.getComponents().setDependencies(
+ convertDependencyContextsToDependencyDefinitions(applicationContext.getComponents().getDependencyContext()));
+ }
+ // top level cartridge context information
+ if (applicationContext.getComponents().getCartridgeContexts() != null) {
+ applicationDefinition.getComponents().setCartridges(
+ convertCartridgeContextsToCartridgeDefinitions(applicationContext.getComponents().getCartridgeContexts()));
+ }
+ }
+ return applicationDefinition;
+ }
+
+ private static List<GroupDefinition> convertGroupContextsToGroupDefinitions(GroupContext[] groupContexts) {
+ List<GroupDefinition> groupDefinitions = new ArrayList<GroupDefinition>();
+ for(GroupContext groupContext : groupContexts) {
+ GroupDefinition groupDefinition = new GroupDefinition();
+ groupDefinition.setAlias(groupContext.getAlias());
+ groupDefinition.setGroupMaxInstances(groupContext.getGroupMaxInstances());
+ groupDefinition.setGroupMinInstances(groupContext.getGroupMinInstances());
+ groupDefinition.setGroupScalingEnabled(groupContext.getGroupScalingEnabled());
+ groupDefinition.setName(groupContext.getName());
+ groupDefinition.setGroups(convertGroupContextsToGroupDefinitions(groupContext.getGroupContexts()));
+ groupDefinition.setCartridges(convertCartridgeContextsToCartridgeDefinitions(
+ groupContext.getCartridgeContexts()));
+ groupDefinitions.add(groupDefinition);
+ }
+ return groupDefinitions;
+ }
+
+ private static DependencyDefinitions convertDependencyContextsToDependencyDefinitions(DependencyContext dependencyContext) {
+ DependencyDefinitions dependencyDefinitions = new DependencyDefinitions();
+ dependencyDefinitions.setTerminationBehaviour(dependencyContext.getTerminationBehaviour());
+
+ if(dependencyContext.getStartupOrdersContexts() != null) {
+ List<String> startupOrders = new ArrayList<String>();
+ for(String item : dependencyContext.getStartupOrdersContexts()) {
+ startupOrders.add(item);
+ }
+ dependencyDefinitions.setStartupOrders(startupOrders);
+ }
+ if (dependencyContext.getScalingDependents() != null) {
+ List<String> scalingDependents = new ArrayList<String>();
+ for(String item : dependencyContext.getScalingDependents()) {
+ scalingDependents.add(item);
+ }
+ dependencyDefinitions.setScalingDependants(scalingDependents);
+ }
+ return dependencyDefinitions;
+ }
+
+ private static List<CartridgeDefinition> convertCartridgeContextsToCartridgeDefinitions(CartridgeContext[] cartridgeContexts) {
+ List<CartridgeDefinition> cartridgeDefinitions = new ArrayList<CartridgeDefinition>();
+ for(CartridgeContext cartridgeContext : cartridgeContexts) {
+ CartridgeDefinition cartridgeDefinition = new CartridgeDefinition();
+ cartridgeDefinition.setType(cartridgeContext.getType());
+ cartridgeDefinition.setCartridgeMin(cartridgeContext.getCartridgeMin());
+ cartridgeDefinition.setCartridgeMax(cartridgeContext.getCartridgeMax());
+ cartridgeDefinition.setSubscribableInfo(convertSubscribableInfoContextToSubscribableInfo(cartridgeContext.getSubscribableInfoContext()));
+ cartridgeDefinitions.add(cartridgeDefinition);
+ }
+ return cartridgeDefinitions;
+ }
+
+ private static SubscribableInfo convertSubscribableInfoContextToSubscribableInfo(
+ SubscribableInfoContext subscribableInfoContext) {
+ SubscribableInfo subscribableInfo = new SubscribableInfo();
+ subscribableInfo.setAlias(subscribableInfoContext.getAlias());
+ subscribableInfo.setAutoscalingPolicy(subscribableInfoContext.getAutoscalingPolicy());
+ subscribableInfo.setDependencyAliases(subscribableInfoContext.getDependencyAliases());
+ subscribableInfo.setDeploymentPolicy(subscribableInfoContext.getDeploymentPolicy());
+ subscribableInfo.setMinMembers(subscribableInfoContext.getMinMembers());
+ subscribableInfo.setMaxMembers(subscribableInfoContext.getMaxMembers());
+ subscribableInfo.setPrivateRepo(subscribableInfoContext.getPrivateRepo());
+ subscribableInfo.setProperty(convertPropertiesToPropertyBeansList(subscribableInfoContext.getProperties()));
+ subscribableInfo.setRepoPassword(subscribableInfoContext.getRepoPassword());
+ subscribableInfo.setRepoUsername(subscribableInfoContext.getRepoUsername());
+ subscribableInfo.setRepoUrl(subscribableInfoContext.getRepoUrl());
+ return subscribableInfo;
+ }
+
+ private static List<org.apache.stratos.manager.composite.application.beans.PropertyBean>
+ convertPropertiesToPropertyBeansList(org.apache.stratos.autoscaler.stub.Properties properties) {
+ List<org.apache.stratos.manager.composite.application.beans.PropertyBean> propertyBeanList =
+ new ArrayList<org.apache.stratos.manager.composite.application.beans.PropertyBean>();
+ for(org.apache.stratos.autoscaler.stub.Property property : properties.getProperties()) {
+ org.apache.stratos.manager.composite.application.beans.PropertyBean propertyBean =
+ new org.apache.stratos.manager.composite.application.beans.PropertyBean();
+ propertyBean.setName(property.getName());
+ propertyBean.setValue(property.getValue());
+ propertyBeanList.add(propertyBean);
+ }
+ return propertyBeanList;
+ }
+
+ private static CartridgeContext[] convertCartridgeDefinitionsToCartridgeContexts(
List<CartridgeDefinition> cartridges) {
CartridgeContext[] cartridgeContextArray = new CartridgeContext[cartridges.size()];
@@ -1143,13 +1248,11 @@ public class PojoConverter {
}
- private static DependencyContext getDependencyContextFromDependencyDefinition(DependencyDefinitions dependencyDefinitions) {
-
+ private static DependencyContext convertDependencyDefinitionsToDependencyContexts(DependencyDefinitions dependencyDefinitions) {
DependencyContext dependencyContext = new DependencyContext();
dependencyContext.setTerminationBehaviour(dependencyDefinitions.getTerminationBehaviour());
if (dependencyDefinitions != null){
-
if(dependencyDefinitions.getStartupOrders() != null) {
String[] startupOrders = new String[dependencyDefinitions.getStartupOrders().size()];
startupOrders = dependencyDefinitions.getStartupOrders().toArray(startupOrders);
@@ -1161,14 +1264,11 @@ public class PojoConverter {
dependencyContext.setScalingDependents(scalingDependents);
}
}
-
-
-
return dependencyContext;
}
private static org.apache.stratos.autoscaler.stub.pojo.GroupContext[]
- getgroupContextArrayFromGroupDefinitions(List<GroupDefinition> groupDefinitions) {
+ convertGroupDefinitionsToGroupContexts(List<GroupDefinition> groupDefinitions) {
GroupContext[] groupContexts = new GroupContext[groupDefinitions.size()];
int i = 0;
@@ -1182,10 +1282,10 @@ public class PojoConverter {
// Groups
if (groupDefinition.getGroups() != null) {
- groupContext.setGroupContexts(getgroupContextArrayFromGroupDefinitions(groupDefinition.getGroups()));
+ groupContext.setGroupContexts(convertGroupDefinitionsToGroupContexts(groupDefinition.getGroups()));
}
- groupContext.setCartridgeContexts(getCartridgeContextArrayFromCartridgeDefinition(groupDefinition.getCartridges()));
+ groupContext.setCartridgeContexts(convertCartridgeDefinitionsToCartridgeContexts(groupDefinition.getCartridges()));
groupContexts[i++] = groupContext;
}
@@ -1200,6 +1300,8 @@ public class PojoConverter {
ApplicationBean applicationBean = new ApplicationBean();
applicationBean.setId(application.getUniqueIdentifier());
+ applicationBean.setName(application.getName());
+ applicationBean.setDescription(application.getDescription());
applicationBean.setTenantDomain(application.getTenantDomain());
applicationBean.setTenantAdminUsername(application.getTenantAdminUserName());
applicationBean.setInstances(setApplicationInstances(application));