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/02/13 11:05:56 UTC
[4/7] git commit: Adding persistance mapping when subscribing for a
cartridge
Adding persistance mapping when subscribing for a cartridge
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/116d4868
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/116d4868
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/116d4868
Branch: refs/heads/master
Commit: 116d48689784e7e5baf45efb7c6ff1bd262cca25
Parents: 1018805
Author: Udara Liyanage <ud...@wso2.com>
Authored: Wed Feb 12 11:52:56 2014 -0500
Committer: Udara Liyanage <ud...@wso2.com>
Committed: Wed Feb 12 11:52:56 2014 -0500
----------------------------------------------------------------------
.../client/CloudControllerServiceClient.java | 9 +---
.../manager/CartridgeSubscriptionManager.java | 11 ++--
.../subscription/CartridgeSubscription.java | 28 +++++------
.../manager/subscription/SubscriptionData.java | 9 ++++
.../utils/ApplicationManagementUtil.java | 3 +-
.../rest/endpoint/bean/CartridgeInfoBean.java | 39 +++-----------
.../rest/endpoint/services/ServiceUtils.java | 53 +++++++++++++++++---
7 files changed, 89 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/116d4868/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 9603e96..1344d35 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
@@ -24,17 +24,13 @@ import org.apache.axis2.context.ConfigurationContext;
import org.apache.axis2.transport.http.HTTPConstants;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.stratos.cloud.controller.pojo.*;
import org.apache.stratos.manager.exception.UnregisteredCartridgeException;
import org.apache.stratos.manager.internal.DataHolder;
import org.apache.stratos.manager.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.Properties;
-import org.apache.stratos.cloud.controller.pojo.Registrant;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceIllegalArgumentExceptionException;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceStub;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceUnregisteredCartridgeExceptionException;
-import org.apache.stratos.cloud.controller.pojo.Property;
import java.rmi.RemoteException;
import java.util.Iterator;
@@ -108,7 +104,7 @@ public class CloudControllerServiceClient {
public boolean register(String clusterId, String cartridgeType,
String payload, String tenantRange,
String hostName, Properties properties,
- String autoscalorPolicyName, String deploymentPolicyName, boolean isPersistant) throws RemoteException,
+ String autoscalorPolicyName, String deploymentPolicyName) throws RemoteException,
CloudControllerServiceUnregisteredCartridgeExceptionException,
CloudControllerServiceIllegalArgumentExceptionException {
Registrant registrant = new Registrant();
@@ -120,7 +116,6 @@ public class CloudControllerServiceClient {
registrant.setPayload(payload);
registrant.setAutoScalerPolicyName(autoscalorPolicyName);
registrant.setDeploymentPolicyName(deploymentPolicyName);
- registrant.setPersistant(isPersistant);
return stub.registerService(registrant);
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/116d4868/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 00a1757..0fc44cc 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
@@ -22,6 +22,7 @@ package org.apache.stratos.manager.manager;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.Properties;
import org.apache.stratos.cloud.controller.pojo.Property;
import org.apache.stratos.manager.client.CloudControllerServiceClient;
import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
@@ -85,6 +86,7 @@ public class CartridgeSubscriptionManager {
try {
cartridgeInfo =
CloudControllerServiceClient.getServiceClient().getCartridgeInfo(cartridgeType);
+ /*
if (props != null) {
// TODO: temp fix, need to do a proper fix
Property[] cartridgeInfoProperties = cartridgeInfo.getProperties();
@@ -99,7 +101,7 @@ public class CartridgeSubscriptionManager {
}
}
-
+ */
} catch (UnregisteredCartridgeException e) {
String message =
cartridgeType +
@@ -145,6 +147,9 @@ public class CartridgeSubscriptionManager {
//Set the key
cartridgeSubscription.setSubscriptionKey(subscriptionKey);
+ // Set persistance mappings
+ cartridgeSubscription.setPersistanceMapping(subscriptionData.getPersistanceMapping());
+
//create subscription
cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, autoscalingPolicyName,
deploymentPolicyName, repository);
@@ -176,10 +181,10 @@ public class CartridgeSubscriptionManager {
* @throws ADCException
* @throws UnregisteredCartridgeException
*/
- public SubscriptionInfo registerCartridgeSubscription(CartridgeSubscription cartridgeSubscription)
+ public SubscriptionInfo registerCartridgeSubscription(CartridgeSubscription cartridgeSubscription, Properties properties)
throws ADCException, UnregisteredCartridgeException {
- CartridgeSubscriptionInfo cartridgeSubscriptionInfo = cartridgeSubscription.registerSubscription(null);
+ CartridgeSubscriptionInfo cartridgeSubscriptionInfo = cartridgeSubscription.registerSubscription(properties);
//set status as 'SUBSCRIBED'
cartridgeSubscription.setSubscriptionStatus(CartridgeConstants.SUBSCRIBED);
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/116d4868/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 9375829..678925f 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
@@ -25,6 +25,7 @@ import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.PersistanceMapping;
import org.apache.stratos.cloud.controller.pojo.Properties;
import org.apache.stratos.manager.dao.CartridgeSubscriptionInfo;
import org.apache.stratos.manager.dao.Cluster;
@@ -68,8 +69,7 @@ public abstract class CartridgeSubscription implements Serializable {
//private List<String> connectedSubscriptionAliases;
private String subscriptionKey;
private SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
-
- private String nothing;
+ private PersistanceMapping persistanceMapping;
/**
@@ -124,16 +124,8 @@ public abstract class CartridgeSubscription implements Serializable {
setAutoscalingPolicyName(autoscalingPolicy);
setDeploymentPolicyName(deploymentPolicyName);
setRepository(repository);
- setNothing(nothing);
- getSubscriptionTenancyBehaviour().createSubscription(this);
- }
-
- public void setNothing(String nothing) {
- this.nothing=nothing;
- }
- public String getNothing(){
- return nothing;
+ getSubscriptionTenancyBehaviour().createSubscription(this);
}
/**
@@ -160,10 +152,10 @@ public abstract class CartridgeSubscription implements Serializable {
public CartridgeSubscriptionInfo registerSubscription(Properties properties)
throws ADCException, UnregisteredCartridgeException {
- Properties props = new Properties();
- props.setProperties(getCartridgeInfo().getProperties());
+ // Properties props = new Properties();
+ //props.setProperties(getCartridgeInfo().getProperties());
- getSubscriptionTenancyBehaviour().registerSubscription(this, props);
+ getSubscriptionTenancyBehaviour().registerSubscription(this, properties);
return ApplicationManagementUtil.createCartridgeSubscription(getCartridgeInfo(), getAutoscalingPolicyName(),
getType(), getAlias(), getSubscriber().getTenantId(), getSubscriber().getTenantDomain(),
@@ -447,4 +439,12 @@ public abstract class CartridgeSubscription implements Serializable {
public void setLbClusterId(String lbClusterId) {
this.lbClusterId = lbClusterId;
}
+
+ public PersistanceMapping getPersistanceMapping() {
+ return persistanceMapping;
+ }
+
+ public void setPersistanceMapping(PersistanceMapping persistanceMapping) {
+ this.persistanceMapping = persistanceMapping;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/116d4868/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 b6adf69..3185254 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
@@ -1,5 +1,6 @@
package org.apache.stratos.manager.subscription;
+import org.apache.stratos.cloud.controller.pojo.PersistanceMapping;
import org.apache.stratos.cloud.controller.pojo.Property;
/**
@@ -25,6 +26,7 @@ public class SubscriptionData {
private Property[] properties;
private String dataCartridgeAlias;
private String lbAlias;
+ private PersistanceMapping persistanceMapping;
public String getCartridgeType() {
return cartridgeType;
@@ -150,4 +152,11 @@ public class SubscriptionData {
this.lbAlias = lbAlias;
}
+ public PersistanceMapping getPersistanceMapping() {
+ return persistanceMapping;
+ }
+
+ public void setPersistanceMapping(PersistanceMapping persistanceMapping) {
+ this.persistanceMapping = persistanceMapping;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/116d4868/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 9cc1903..4a0f557 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.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.pojo.PersistanceMapping;
import org.apache.stratos.cloud.controller.pojo.Properties;
import org.apache.stratos.cloud.controller.pojo.Property;
import org.apache.stratos.cloud.controller.stub.CloudControllerServiceIllegalArgumentExceptionException;
@@ -256,7 +257,7 @@ public class ApplicationManagementUtil {
log.info("Register service..");
try {
CloudControllerServiceClient.getServiceClient().register(domain, cartridgeType, payload.toString(), tenantRange,
- hostName, properties, autoscalingPoliyName, deploymentPolicyName, );
+ hostName, properties, autoscalingPoliyName, deploymentPolicyName );
} catch (CloudControllerServiceIllegalArgumentExceptionException 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/116d4868/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 43e80c5..498bf55 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
@@ -17,6 +17,8 @@
*/
package org.apache.stratos.rest.endpoint.bean;
+import org.apache.stratos.rest.endpoint.bean.cartridge.definition.PersistanceMappingBean;
+
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
@@ -31,11 +33,8 @@ public class CartridgeInfoBean {
String repoPassword;
String dataCartridgeType;
String dataCartridgeAlias;
+ PersistanceMappingBean persistanceMappingBean;
- boolean persistanceRequired;
- int persistaneVolumeSize;
- boolean deleteOnTermination;
- String devicetoMap;
public String getCartridgeType() {
@@ -118,35 +117,11 @@ public class CartridgeInfoBean {
this.deploymentPolicy = deploymentPolicy;
}
- public boolean isPersistanceRequired() {
- return persistanceRequired;
- }
-
- public void setPersistanceRequired(boolean persistanceRequired) {
- this.persistanceRequired = persistanceRequired;
- }
-
- public int getPersistaneVolumeSize() {
- return persistaneVolumeSize;
- }
-
- public void setPersistaneVolumeSize(int persistaneVolumeSize) {
- this.persistaneVolumeSize = persistaneVolumeSize;
- }
-
- public boolean isDeleteOnTermination() {
- return deleteOnTermination;
- }
-
- public void setDeleteOnTermination(boolean deleteOnTermination) {
- this.deleteOnTermination = deleteOnTermination;
- }
-
- public String getDevicetoMap() {
- return devicetoMap;
+ public PersistanceMappingBean getPersistanceMappingBean() {
+ return persistanceMappingBean;
}
- public void setDevicetoMap(String devicetoMap) {
- this.devicetoMap = devicetoMap;
+ public void setPersistanceMappingBean(PersistanceMappingBean persistanceMappingBean) {
+ this.persistanceMappingBean = persistanceMappingBean;
}
}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/116d4868/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 b07b3ec..0099416 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
@@ -49,6 +49,7 @@ 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.PersistanceMappingBean;
import org.apache.stratos.rest.endpoint.bean.cartridge.definition.ServiceDefinitionBean;
import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
import org.apache.stratos.rest.endpoint.exception.RestAPIException;
@@ -792,6 +793,40 @@ public class ServiceUtils {
subscriptionData.setRepositoryUsername(cartridgeInfoBean.getRepoURL());
subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword());
+ Properties properties = new Properties();
+ if(cartridgeInfoBean.getPersistanceMappingBean() != null){
+ PersistanceMappingBean persistanceMappingBean = cartridgeInfoBean.getPersistanceMappingBean();
+ /*
+ PersistanceMapping persistanceMapping = new PersistanceMapping();
+ persistanceMapping.setPersistanceRequired(persistanceMappingBean.persistanceRequired);
+ persistanceMapping.setSize(persistanceMappingBean.size);
+ persistanceMapping.setDevice(persistanceMappingBean.device);
+ persistanceMapping.setRemoveOntermination(persistanceMappingBean.removeOnTermination);
+ subscriptionData.setPersistanceMapping(persistanceMapping);
+ */
+ Property persistanceRequiredProperty = new Property();
+ persistanceRequiredProperty.setName("is-required");
+ persistanceRequiredProperty.setValue(String.valueOf(persistanceMappingBean.persistanceRequired));
+
+ Property sizeProperty = new Property();
+ persistanceRequiredProperty.setName("is-required");
+ persistanceRequiredProperty.setValue(String.valueOf(persistanceMappingBean.size));
+
+ Property deviceProperty = new Property();
+ persistanceRequiredProperty.setName("is-required");
+ persistanceRequiredProperty.setValue(String.valueOf(persistanceMappingBean.device));
+
+ Property deleteOnTerminationProperty = new Property();
+ persistanceRequiredProperty.setName("is-required");
+ persistanceRequiredProperty.setValue(String.valueOf(persistanceMappingBean.removeOnTermination));
+
+ Properties props = new Properties();
+ props.setProperties(new Property[]{persistanceRequiredProperty,sizeProperty, deviceProperty, deleteOnTerminationProperty});
+ }
+
+
+
+
// If multitenant, return for now. TODO -- fix properly
if(cartridgeInfo != null && cartridgeInfo.getMultiTenant()) {
log.info(" ******* MT cartridge ******* ");
@@ -803,7 +838,7 @@ public class ServiceUtils {
CartridgeSubscription cartridgeSubscription =
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData);
log.info(" --- ** -- ");
- return cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
+ return cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription, properties);
}
@@ -1052,8 +1087,12 @@ public class ServiceUtils {
" with alias " + alias);
}*/
}
-
- SubscriptionInfo registerCartridgeSubscription = cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
+
+ for (Property lbRefProperty : lbRefProp) {
+ properties.addProperties(lbRefProperty);
+ }
+
+ SubscriptionInfo registerCartridgeSubscription = cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription, properties);
return registerCartridgeSubscription;
@@ -1126,7 +1165,7 @@ public class ServiceUtils {
subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext));
subscriptionData.setTenantAdminUsername(userName);
subscriptionData.setRepositoryType("git");
- subscriptionData.setProperties(props);
+ //subscriptionData.setProperties(props);
subscriptionData.setPrivateRepository(false);
cartridgeSubscription =
@@ -1134,8 +1173,10 @@ public class ServiceUtils {
//set a payload parameter to indicate the load balanced cartridge type
cartridgeSubscription.getPayloadData().add("LOAD_BALANCED_SERVICE_TYPE", loadBalancedCartridgeType);
-
- cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
+
+ Properties lbProperties = new Properties();
+ lbProperties.setProperties(props);
+ cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription, lbProperties);
if(log.isDebugEnabled()) {
log.debug("Successfully subscribed to a load balancer [cartridge] "+cartridgeType+" [alias] "+lbAlias);