You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ud...@apache.org on 2014/05/22 21:50:10 UTC
[2/3] git commit: adding capability to provide persistence mapping at
the subscription time
adding capability to provide persistence mapping at the subscription time
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/8717b318
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/8717b318
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/8717b318
Branch: refs/heads/master
Commit: 8717b3185a4190da326e84c5f73b56937f983914
Parents: ab383d8
Author: Udara Liyanage <ud...@wso2.com>
Authored: Fri May 23 00:59:57 2014 +0530
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Fri May 23 00:59:57 2014 +0530
----------------------------------------------------------------------
.../impl/CloudControllerServiceImpl.java | 48 +-
.../cloud/controller/pojo/Registrant.java | 9 +
.../behaviour/CartridgeMgtBehaviour.java | 6 +-
.../client/CloudControllerServiceClient.java | 5 +-
.../stratos/manager/deploy/service/Service.java | 2 +-
.../multitenant/lb/MultiTenantLBService.java | 2 +-
.../category/DefaultLoadBalancerCategory.java | 5 +-
.../category/ExistingLoadBalancerCategory.java | 3 +-
.../ServiceLevelLoadBalancerCategory.java | 5 +-
.../manager/CartridgeSubscriptionManager.java | 13 +-
.../subscription/CartridgeSubscription.java | 6 +-
.../subscription/DataCartridgeSubscription.java | 5 +-
.../subscription/LBCartridgeSubscription.java | 5 +-
.../manager/subscription/SubscriptionData.java | 11 +
.../SubscriptionMultiTenantBehaviour.java | 5 +-
.../utils/ApplicationManagementUtil.java | 9 +-
.../rest/endpoint/bean/CartridgeInfoBean.java | 41 +-
.../bean/cartridge/definition/VolumeBean.java | 2 +
.../bean/util/converter/PojoConverter.java | 12 +-
.../rest/endpoint/services/ServiceUtils.java | 9 +-
.../main/resources/CloudControllerService.wsdl | 675 ++++++++++---------
21 files changed, 457 insertions(+), 421 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
index c40c8f0..2bc8f78 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/impl/CloudControllerServiceImpl.java
@@ -859,7 +859,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
boolean isLb = property != null ? Boolean.parseBoolean(property) : false;
ClusterContext ctxt = buildClusterContext(cartridge, clusterId,
- payload, hostName, props, isLb);
+ payload, hostName, props, isLb, registrant.getPersistence());
dataHolder.addClusterContext(ctxt);
@@ -873,8 +873,8 @@ public class CloudControllerServiceImpl implements CloudControllerService {
}
private ClusterContext buildClusterContext(Cartridge cartridge,
- String clusterId, String payload, String hostName,
- Properties props, boolean isLb) {
+ String clusterId, String payload, String hostName,
+ Properties props, boolean isLb, Persistence persistence) {
// initialize ClusterContext
@@ -884,16 +884,27 @@ public class CloudControllerServiceImpl implements CloudControllerService {
String property;
property = props.getProperty(Constants.GRACEFUL_SHUTDOWN_TIMEOUT);
long timeout = property != null ? Long.parseLong(property) : 30000;
-
- property = props.getProperty(Constants.IS_VOLUME_REQUIRED);
- boolean isVolumeRequired = property != null ? Boolean.parseBoolean(property) : false;
-
- if(isVolumeRequired) {
+
+ boolean persistanceRequired = false;
+ if(persistence != null){
+ persistanceRequired = persistence.isPersistanceRequired();
+ }
+
+ if(persistanceRequired){
+ ctxt.setVolumes(persistence.getVolumes());
+ ctxt.setVolumeRequired(true);
+ }else{
+ ctxt.setVolumeRequired(false);
+ }
+ /*
+ if(persistanceRequired) {
Persistence persistenceData = cartridge.getPersistence();
-
+
if(persistenceData != null) {
Volume[] cartridge_volumes = persistenceData.getVolumes();
-
+
+
+ Volume[] volumestoCreate = overideVolumes(cartridge_volumes, persistence.getVolumes());
property = props.getProperty(Constants.SHOULD_DELETE_VOLUME);
String property_volume_zize = props.getProperty(Constants.VOLUME_SIZE);
String property_volume_id = props.getProperty(Constants.VOLUME_ID);
@@ -914,21 +925,24 @@ public class CloudControllerServiceImpl implements CloudControllerService {
volume_cluster.setVolumeId(volumeID);
cluster_volume_list.add(volume_cluster);
}
- ctxt.setVolumes(cluster_volume_list.toArray(new Volume[cluster_volume_list.size()]));
+ //ctxt.setVolumes(cluster_volume_list.toArray(new Volume[cluster_volume_list.size()]));
+ ctxt.setVolumes(persistence.getVolumes());
+ ctxt.setVolumeRequired(true);
} else {
// if we cannot find necessary data, we would not consider
// this as a volume required instance.
- isVolumeRequired = false;
- }
-
- ctxt.setVolumeRequired(isVolumeRequired);
+ //isVolumeRequired = false;
+ ctxt.setVolumeRequired(false);
+ }
+
+ //ctxt.setVolumeRequired(isVolumeRequired);
}
-
+ */
ctxt.setTimeoutInMillis(timeout);
return ctxt;
}
- @Override
+ @Override
public String[] getRegisteredCartridges() {
// get the list of cartridges registered
List<Cartridge> cartridges = dataHolder
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java
index fe7a7e9..2c3458a 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/pojo/Registrant.java
@@ -33,6 +33,7 @@ public class Registrant {
private Properties properties;
private String autoScalerPolicyName;
private String deploymentPolicyName;
+ private Persistence persistence;
public String getTenantRange() {
return tenantRange;
@@ -91,4 +92,12 @@ public class Registrant {
properties + ", autoScalerPolicyName=" + autoScalerPolicyName +
", deploymentPolicyName=" + deploymentPolicyName + "]";
}
+
+ public Persistence getPersistence() {
+ return persistence;
+ }
+
+ public void setPersistence(Persistence persistence) {
+ this.persistence = persistence;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
index 56f7e10..40f61b2 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
@@ -21,6 +21,7 @@ package org.apache.stratos.manager.behaviour;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.cloud.controller.stub.pojo.Property;
import org.apache.stratos.manager.client.CloudControllerServiceClient;
@@ -114,7 +115,7 @@ public abstract class CartridgeMgtBehaviour implements Serializable {
return payloadData;
}
- public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties) throws ADCException, UnregisteredCartridgeException {
+ public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties, Persistence persistence) throws ADCException, UnregisteredCartridgeException {
if(payloadData != null) {
log.info("Payload: " + payloadData.getCompletePayloadData().toString());
}else {
@@ -129,7 +130,8 @@ public abstract class CartridgeMgtBehaviour implements Serializable {
cluster.getHostName(),
autoscalePolicyName,
deploymentPolicyName,
- properties);
+ properties,
+ persistence);
}
public void remove(String clusterId, String alias) throws ADCException, NotSubscribedException {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
index df6625e..1cc2338 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/client/CloudControllerServiceClient.java
@@ -93,9 +93,9 @@ public class CloudControllerServiceClient {
}
public boolean register(String clusterId, String cartridgeType,
- String payload, String tenantRange,
+ String payload, String tenantRange,
String hostName, Properties properties,
- String autoscalorPolicyName, String deploymentPolicyName) throws RemoteException,
+ String autoscalorPolicyName, String deploymentPolicyName, Persistence persistence) throws RemoteException,
CloudControllerServiceUnregisteredCartridgeExceptionException {
Registrant registrant = new Registrant();
registrant.setClusterId(clusterId);
@@ -106,6 +106,7 @@ public class CloudControllerServiceClient {
registrant.setPayload(payload);
registrant.setAutoScalerPolicyName(autoscalorPolicyName);
registrant.setDeploymentPolicyName(deploymentPolicyName);
+ registrant.setPersistence(persistence);
return stub.registerService(registrant);
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
index adfe60f..b73ccf6 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/Service.java
@@ -81,7 +81,7 @@ public abstract class Service extends CartridgeMgtBehaviour {
public void deploy (Properties properties) throws ADCException, UnregisteredCartridgeException {
- register(getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(), getDeploymentPolicyName(), properties);
+ register(getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(), getDeploymentPolicyName(), properties, null);
}
public void undeploy () throws ADCException, NotSubscribedException {
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java
index 5a16fc5..ec200f3 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/deploy/service/multitenant/lb/MultiTenantLBService.java
@@ -46,6 +46,6 @@ public class MultiTenantLBService extends Service {
//register the service
loadBalancerCategory.register(getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(), getDeploymentPolicyName(),
- properties);
+ properties, null);
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
index e49dbde..e124883 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
@@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
import org.apache.stratos.cloud.controller.stub.pojo.ClusterContext;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.manager.client.AutoscalerServiceClient;
import org.apache.stratos.manager.client.CloudControllerServiceClient;
@@ -94,13 +95,13 @@ public class DefaultLoadBalancerCategory extends LoadBalancerCategory {
}
}
- public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties) throws ADCException, UnregisteredCartridgeException {
+ public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties, Persistence persistence) throws ADCException, UnregisteredCartridgeException {
log.info("Register service with payload data ["+payloadData+"] ");
if (!isDefaultLBExists()) {
if(payloadData != null) {
log.info("Payload: " + payloadData.getCompletePayloadData().toString());
}
- super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties);
+ super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties, persistence);
}else {
log.info(" Default LB exists... Not registering...");
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ExistingLoadBalancerCategory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ExistingLoadBalancerCategory.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ExistingLoadBalancerCategory.java
index b6ecfac..594ad4c 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ExistingLoadBalancerCategory.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ExistingLoadBalancerCategory.java
@@ -20,6 +20,7 @@
package org.apache.stratos.manager.lb.category;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.manager.dao.Cluster;
import org.apache.stratos.manager.exception.ADCException;
@@ -41,7 +42,7 @@ public class ExistingLoadBalancerCategory extends LoadBalancerCategory {
return null;
}
- public void register (CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties) throws ADCException, UnregisteredCartridgeException {
+ public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties, Persistence persistence) throws ADCException, UnregisteredCartridgeException {
//TODO
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java
index fc47261..e713d7d 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/ServiceLevelLoadBalancerCategory.java
@@ -23,6 +23,7 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
import org.apache.stratos.cloud.controller.stub.pojo.ClusterContext;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.manager.client.AutoscalerServiceClient;
import org.apache.stratos.manager.client.CloudControllerServiceClient;
@@ -102,7 +103,7 @@ public class ServiceLevelLoadBalancerCategory extends LoadBalancerCategory {
}
}
- public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties) throws ADCException, UnregisteredCartridgeException {
+ public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName, String deploymentPolicyName, Properties properties, Persistence persistence) throws ADCException, UnregisteredCartridgeException {
if (!serviceLbExists) {
@@ -110,7 +111,7 @@ public class ServiceLevelLoadBalancerCategory extends LoadBalancerCategory {
log.info("Payload: " + payloadData.getCompletePayloadData().toString());
}
- super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties);
+ super.register(cartridgeInfo, cluster, payloadData, autoscalePolicyName, deploymentPolicyName, properties, persistence);
}else {
log.info("Service LB already exists for cartridge type: " + getLoadBalancedServiceType() + ", deployment policy: " + getDeploymentPolicyName());
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
index 01a972c..9d1ae68 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/manager/CartridgeSubscriptionManager.java
@@ -23,10 +23,8 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.openjpa.util.java$util$ArrayList$proxy;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceUnregisteredCartridgeExceptionException;
-import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
-import org.apache.stratos.cloud.controller.stub.pojo.LoadbalancerConfig;
+import org.apache.stratos.cloud.controller.stub.pojo.*;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
-import org.apache.stratos.cloud.controller.stub.pojo.Property;
import org.apache.stratos.manager.client.CloudControllerServiceClient;
import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
import org.apache.stratos.manager.dto.SubscriptionInfo;
@@ -168,11 +166,11 @@ public class CartridgeSubscriptionManager {
if(log.isDebugEnabled()) {
log.debug(" Registering LB Cartridge subscription ");
}
- registerCartridgeSubscription(lbCartridgeSubscription, lbCartridgeSubscriptionProperties);
+ registerCartridgeSubscription(lbCartridgeSubscription, lbCartridgeSubscriptionProperties, subscriptionData.getPersistence());
}
// register service cartridge subscription
- return registerCartridgeSubscription(serviceCartridgeSubscription, serviceCartridgeSubscriptionProperties);
+ return registerCartridgeSubscription(serviceCartridgeSubscription, serviceCartridgeSubscriptionProperties, subscriptionData.getPersistence());
}
private boolean activeInstancesAvailable(SubscriptionData subscriptionData) {
@@ -356,14 +354,15 @@ public class CartridgeSubscriptionManager {
*
* @param cartridgeSubscription CartridgeSubscription subscription
*
+ * @param persistence
* @return SubscriptionInfo object populated with relevant information
* @throws ADCException
* @throws UnregisteredCartridgeException
*/
- private SubscriptionInfo registerCartridgeSubscription(CartridgeSubscription cartridgeSubscription, Properties properties)
+ private SubscriptionInfo registerCartridgeSubscription(CartridgeSubscription cartridgeSubscription, Properties properties, Persistence persistence)
throws ADCException, UnregisteredCartridgeException {
- CartridgeSubscriptionInfo cartridgeSubscriptionInfo = cartridgeSubscription.registerSubscription(properties);
+ CartridgeSubscriptionInfo cartridgeSubscriptionInfo = cartridgeSubscription.registerSubscription(properties, persistence);
//set status as 'SUBSCRIBED'
cartridgeSubscription.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
index ebf7276..a5d901d 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/CartridgeSubscription.java
@@ -22,6 +22,7 @@ package org.apache.stratos.manager.subscription;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
import org.apache.stratos.manager.dao.Cluster;
@@ -162,18 +163,19 @@ public abstract class CartridgeSubscription implements Serializable {
*
* @param properties Any additional properties needed
*
+ * @param persistence
* @return CartridgeSubscriptionInfo subscription populated with relevant data
* @throws ADCException
* @throws UnregisteredCartridgeException
*/
- public CartridgeSubscriptionInfo registerSubscription(Properties properties)
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties, Persistence persistence)
throws ADCException, UnregisteredCartridgeException {
// Properties props = new Properties();
//props.setProperties(getCartridgeInfo().getProperties());
getSubscriptionTenancyBehaviour().register (getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(),
- getDeploymentPolicyName(), properties);
+ getDeploymentPolicyName(), properties, persistence);
return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicyName(),
getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
index 4cefa45..c97bcd3 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/DataCartridgeSubscription.java
@@ -19,6 +19,7 @@
package org.apache.stratos.manager.subscription;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
import org.apache.stratos.manager.dao.DataCartridge;
import org.apache.stratos.manager.exception.ADCException;
@@ -54,11 +55,11 @@ public class DataCartridgeSubscription extends CartridgeSubscription {
}
@Override
- public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException,
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties, Persistence persistence) throws ADCException,
UnregisteredCartridgeException {
getSubscriptionTenancyBehaviour().register (getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(),
- getDeploymentPolicyName(), properties);
+ getDeploymentPolicyName(), properties, persistence);
DataCartridge dataCartridge = new DataCartridge();
dataCartridge.setUserName(getDBUsername());
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
index 3bad5fd..f6555f8 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/LBCartridgeSubscription.java
@@ -22,6 +22,7 @@ package org.apache.stratos.manager.subscription;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
import org.apache.stratos.manager.exception.ADCException;
@@ -80,13 +81,13 @@ public class LBCartridgeSubscription extends CartridgeSubscription {
@Override
- public CartridgeSubscriptionInfo registerSubscription(Properties properties) throws ADCException, UnregisteredCartridgeException {
+ public CartridgeSubscriptionInfo registerSubscription(Properties properties, Persistence persistence) throws ADCException, UnregisteredCartridgeException {
if(!loadBalancerCategory.isLoadBalancedServiceMultiTenant()) {
if(log.isDebugEnabled()) {
log.debug("Loadbalanced service is single tenant.");
}
getLoadBalancerCategory().register (getCartridgeInfo(), getCluster(), getPayloadData(), getAutoscalingPolicyName(),
- getDeploymentPolicyName(), properties);
+ getDeploymentPolicyName(), properties, persistence);
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
index cf4d91b..7b26063 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.manager.subscription;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Property;
import java.util.Collections;
@@ -46,6 +47,7 @@ public class SubscriptionData {
private boolean isCommitsEnabled;
private String serviceGroup;
private Set<String> domains;
+ private Persistence persistence;
public SubscriptionData() {
this.domains = new HashSet<String>();
@@ -194,4 +196,13 @@ public class SubscriptionData {
public Set<String> getDomains() {
return Collections.unmodifiableSet(domains);
}
+
+ public Persistence getPersistence() {
+ return persistence;
+ }
+
+ public void setPersistence(Persistence persistence) {
+ this.persistence = persistence;
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
index 1b96734..664a2b3 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/tenancy/SubscriptionMultiTenantBehaviour.java
@@ -22,6 +22,7 @@ package org.apache.stratos.manager.subscription.tenancy;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.manager.dao.Cluster;
import org.apache.stratos.manager.deploy.service.Service;
@@ -111,8 +112,8 @@ public class SubscriptionMultiTenantBehaviour extends SubscriptionTenancyBehavio
return null;
}
- public void register (CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName,
- String deploymentPolicyName, Properties properties)
+ public void register(CartridgeInfo cartridgeInfo, Cluster cluster, PayloadData payloadData, String autoscalePolicyName,
+ String deploymentPolicyName, Properties properties, Persistence persistence)
throws ADCException, UnregisteredCartridgeException {
//nothing to do
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java
index d0136f5..7282253 100644
--- a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java
+++ b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/utils/ApplicationManagementUtil.java
@@ -36,6 +36,7 @@ import org.apache.axis2.engine.AxisConfiguration;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.stub.pojo.Persistence;
import org.apache.stratos.cloud.controller.stub.pojo.Properties;
import org.apache.stratos.cloud.controller.stub.pojo.Property;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceUnregisteredCartridgeExceptionException;
@@ -247,14 +248,14 @@ public class ApplicationManagementUtil {
public static void registerService(String cartridgeType, String domain, String subDomain,
- StringBuilder payload, String tenantRange, String hostName,
- String autoscalingPoliyName, String deploymentPolicyName,
- Properties properties)
+ StringBuilder payload, String tenantRange, String hostName,
+ String autoscalingPoliyName, String deploymentPolicyName,
+ Properties properties, Persistence persistence)
throws ADCException, UnregisteredCartridgeException {
log.info("Register service..");
try {
CloudControllerServiceClient.getServiceClient().register(domain, cartridgeType, payload.toString(), tenantRange,
- hostName, properties, autoscalingPoliyName, deploymentPolicyName );
+ hostName, properties, autoscalingPoliyName, deploymentPolicyName, persistence );
} catch (CloudControllerServiceUnregisteredCartridgeExceptionException e) {
String msg = "Exception is occurred in register service operation. Reason :" + e.getMessage();
log.error(msg, e);
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
index 0f971c5..e011edc 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/CartridgeInfoBean.java
@@ -18,6 +18,7 @@
*/
package org.apache.stratos.rest.endpoint.bean;
+import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PersistenceBean;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.ArrayList;
import java.util.List;
@@ -35,12 +36,8 @@ public class CartridgeInfoBean {
String dataCartridgeType;
String dataCartridgeAlias;
boolean commitsEnabled;
-
- private boolean persistanceRequired;
- private String size;
- private String volumeId;
- private boolean removeOnTermination;
private String serviceGroup;
+ private PersistenceBean persistence;
public CartridgeInfoBean() {
}
@@ -125,31 +122,7 @@ public class CartridgeInfoBean {
this.deploymentPolicy = deploymentPolicy;
}
- public boolean isPersistanceRequired() {
- return persistanceRequired;
- }
-
- public void setPersistanceRequired(boolean persistanceRequired) {
- this.persistanceRequired = persistanceRequired;
- }
-
- public String getSize() {
- return size;
- }
-
- public void setSize(String size) {
- this.size = size;
- }
-
- public boolean isRemoveOnTermination() {
- return removeOnTermination;
- }
-
- public void setRemoveOnTermination(boolean removeOnTermination) {
- this.removeOnTermination = removeOnTermination;
- }
-
- public boolean isCommitsEnabled() {
+ public boolean isCommitsEnabled() {
return commitsEnabled;
}
@@ -165,7 +138,11 @@ public class CartridgeInfoBean {
this.serviceGroup = serviceGroup;
}
- public String getVolumeId() {return volumeId;}
+ public PersistenceBean getPersistence() {
+ return persistence;
+ }
- public void setVolumeId(String volumeId) {this.volumeId = volumeId;}
+ public void setPersistence(PersistenceBean persistence) {
+ this.persistence = persistence;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/VolumeBean.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/VolumeBean.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/VolumeBean.java
index a3a985a..a9d7441 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/VolumeBean.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/cartridge/definition/VolumeBean.java
@@ -23,6 +23,8 @@ import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class VolumeBean {
+ public String id;
+
public String size;
public String device;
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
index 91f7aa7..0a0fec7 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/bean/util/converter/PojoConverter.java
@@ -19,6 +19,7 @@
package org.apache.stratos.rest.endpoint.bean.util.converter;
+import org.apache.commons.lang.StringUtils;
import org.apache.stratos.cloud.controller.stub.pojo.*;
import org.apache.stratos.manager.deploy.service.Service;
import org.apache.stratos.manager.subscription.SubscriptionDomain;
@@ -147,7 +148,7 @@ public class PojoConverter {
return iaasConfigsArray;
}
- private static Persistence getPersistence(PersistenceBean persistenceBean) {
+ public static Persistence getPersistence(PersistenceBean persistenceBean) {
Persistence persistence = new Persistence();
persistence.setPersistanceRequired(persistenceBean.isRequired);
VolumeBean[] volumeBean = new VolumeBean[persistenceBean.volume.size()];
@@ -155,12 +156,17 @@ public class PojoConverter {
Volume[] volumes = new Volume[persistenceBean.volume.size()];
for (int i = 0 ; i < volumes.length ; i++) {
Volume volume = new Volume();
- volume.setSize(Integer.parseInt(volumeBean[i].size));
+ volume.setId(volumeBean[i].id);
+ volume.setVolumeId(volumeBean[i].volumeId);
+ if(StringUtils.isEmpty(volume.getVolumeId())){
+ volume.setSize(Integer.parseInt(volumeBean[i].size));
+ }
+
volume.setDevice(volumeBean[i].device);
volume.setRemoveOntermination(volumeBean[i].removeOnTermination);
volume.setMappingPath(volumeBean[i].mappingPath);
volume.setSnapshotId(volumeBean[i].snapshotId);
- volume.setVolumeId(volumeBean[i].volumeId);
+
volumes[i] = volume;
}
persistence.setVolumes(volumes);
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/8717b318/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 424304a..a0f7f76 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
@@ -42,7 +42,6 @@ import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
import org.apache.stratos.manager.repository.RepositoryNotification;
import org.apache.stratos.manager.subscription.CartridgeSubscription;
import org.apache.stratos.manager.subscription.DataCartridgeSubscription;
-import org.apache.stratos.manager.subscription.PersistenceContext;
import org.apache.stratos.manager.subscription.SubscriptionData;
import org.apache.stratos.manager.subscription.SubscriptionDomain;
import org.apache.stratos.manager.topology.model.TopologyClusterInformationModel;
@@ -60,11 +59,13 @@ import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.Partition;
import org.apache.stratos.rest.endpoint.bean.autoscaler.partition.PartitionGroup;
import org.apache.stratos.rest.endpoint.bean.autoscaler.policy.autoscale.AutoscalePolicy;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefinitionBean;
+import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PersistenceBean;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
import org.apache.stratos.rest.endpoint.bean.repositoryNotificationInfoBean.Payload;
import org.apache.stratos.rest.endpoint.bean.subscription.domain.SubscriptionDomainBean;
import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
import org.apache.stratos.rest.endpoint.exception.RestAPIException;
+import org.apache.stratos.cloud.controller.stub.pojo.*;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.Response.Status;
@@ -984,6 +985,10 @@ public class ServiceUtils {
subscriptionData.setCommitsEnabled(cartridgeInfoBean.isCommitsEnabled());
subscriptionData.setServiceGroup(cartridgeInfoBean.getServiceGroup());
+ PersistenceBean persistenceBean = cartridgeInfoBean.getPersistence();
+ subscriptionData.setPersistence(PojoConverter.getPersistence(persistenceBean));
+
+ /*
if (cartridgeInfoBean.isPersistanceRequired()) {
// Add persistence related properties to PersistenceContext
PersistenceContext persistenceContext = new PersistenceContext();
@@ -995,7 +1000,7 @@ public class ServiceUtils {
}
subscriptionData.setPersistanceCtxt(persistenceContext);
}
-
+ */
//subscribe
SubscriptionInfo subscriptionInfo = null;
try{