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