Updated Branches:
  refs/heads/master 704661adb -> 3999dc5d5

refactor subscription call which has many method parameters.

Introduce a class SubscriptionData calss which holds the data such as 
cartridgetype, repoURL..... SO we don't need to send all
the paramertes to method calls, just send the SubscriptionData object


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/680e592b
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/680e592b
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/680e592b

Branch: refs/heads/master
Commit: 680e592ba1b0f2d13878ddbf269942ae6e7a5532
Parents: 3bea806
Author: Udara Liyanage <[email protected]>
Authored: Wed Feb 12 06:23:37 2014 -0500
Committer: Udara Liyanage <[email protected]>
Committed: Wed Feb 12 06:23:37 2014 -0500

----------------------------------------------------------------------
 .../cloud/controller/pojo/Registrant.java       |   9 ++
 .../client/CloudControllerServiceClient.java    |   3 +-
 .../apache/stratos/manager/dto/Cartridge.java   |   8 +
 .../manager/CartridgeSubscriptionManager.java   |  91 ++++-------
 .../manager/service/RepositoryInfoBean.java     |   3 +-
 .../subscription/CartridgeSubscription.java     |  11 ++
 .../manager/subscription/SubscriptionData.java  | 153 +++++++++++++++++++
 .../utils/ApplicationManagementUtil.java        |   2 +-
 .../rest/endpoint/bean/CartridgeInfoBean.java   |  37 +++++
 .../rest/endpoint/services/ServiceUtils.java    |  84 ++++++----
 .../rest/endpoint/services/StratosAdmin.java    |  11 +-
 11 files changed, 305 insertions(+), 107 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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..aa429a1 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 boolean isPersistant;
     
     public String getTenantRange() {
         return tenantRange;
@@ -91,4 +92,12 @@ public class Registrant {
                properties + ", autoScalerPolicyName=" + autoScalerPolicyName +
                ", deploymentPolicyName=" + deploymentPolicyName + "]";
     }
+
+    public boolean isPersistant() {
+        return isPersistant;
+    }
+
+    public void setPersistant(boolean isPersistant) {
+        this.isPersistant = isPersistant;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 42b7521..9603e96 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
@@ -108,7 +108,7 @@ public class CloudControllerServiceClient {
        public boolean register(String clusterId, String cartridgeType,
                                String payload, String tenantRange,
                             String hostName, Properties properties,
-                            String autoscalorPolicyName, String 
deploymentPolicyName) throws RemoteException,
+                            String autoscalorPolicyName, String 
deploymentPolicyName, boolean isPersistant) throws RemoteException,
                             
CloudControllerServiceUnregisteredCartridgeExceptionException, 
                             
CloudControllerServiceIllegalArgumentExceptionException {          
            Registrant registrant = new Registrant();
@@ -120,6 +120,7 @@ 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/680e592b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
index de610c6..40f4475 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/dto/Cartridge.java
@@ -58,6 +58,7 @@ public class Cartridge implements Comparable<Cartridge> {
 
     private String defaultDeploymentPolicy;
 
+    private boolean isPersistant;
 
        public String getDisplayName() {
                return displayName;
@@ -261,5 +262,12 @@ public class Cartridge implements Comparable<Cartridge> {
 
     public void setDefaultDeploymentPolicy(String defaultDeploymentPolicy) {
         this.defaultDeploymentPolicy = defaultDeploymentPolicy;
+}
+    public boolean isPersistant() {
+        return isPersistant;
+    }
+
+    public void setPersistant(boolean isPersistant) {
+        this.isPersistant = isPersistant;
     }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 1b63890..00a1757 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
@@ -31,6 +31,7 @@ import org.apache.stratos.manager.repository.Repository;
 import org.apache.stratos.manager.retriever.DataInsertionAndRetrievalManager;
 import org.apache.stratos.manager.subscriber.Subscriber;
 import org.apache.stratos.manager.subscription.CartridgeSubscription;
+import org.apache.stratos.manager.subscription.SubscriptionData;
 import 
org.apache.stratos.manager.subscription.factory.CartridgeSubscriptionFactory;
 import 
org.apache.stratos.manager.subscription.tenancy.SubscriptionMultiTenantBehaviour;
 import 
org.apache.stratos.manager.subscription.tenancy.SubscriptionSingleTenantBehaviour;
@@ -51,67 +52,31 @@ public class CartridgeSubscriptionManager {
 
     private static Log log = 
LogFactory.getLog(CartridgeSubscriptionManager.class);
     //private static DataInsertionAndRetrievalManager 
dataInsertionAndRetrievalManager = new DataInsertionAndRetrievalManager();
-
-    /**
-     * Subscribes to a cartridge
-     *
-     * @param cartridgeType Cartridge type
-     * @param subscriptionAlias Cartridge alias
-     * @param autoscalingPolicyName Autoscaling policy name
-     * @param deploymentPolicyName Deployment Policy name
-     * @param tenantDomain Subscriing tenant's domain
-     * @param tenantId Subscribing tenant's Id
-     * @param tenantAdminUsername Subscribing tenant's admin user name
-     * @param repositoryType Type of repository
-     * @param repositoryURL Repository URL
-     * @param isPrivateRepository If a private or a public repository
-     * @param repositoryUsername Repository username
-     * @param repositoryPassword Repository password
-     *
-     * @return Subscribed CartridgeSubscription object
-     * @throws ADCException
-     * @throws InvalidCartridgeAliasException
-     * @throws DuplicateCartridgeAliasException
-     * @throws PolicyException
-     * @throws UnregisteredCartridgeException
-     * @throws RepositoryRequiredException
-     * @throws RepositoryCredentialsRequiredException
-     * @throws RepositoryTransportException
-     * @throws AlreadySubscribedException
-     * @throws InvalidRepositoryException
-     */
-    public CartridgeSubscription subscribeToCartridge (String cartridgeType, 
String subscriptionAlias,
-                                                  String 
autoscalingPolicyName, String deploymentPolicyName,
-                                                  String tenantDomain, int 
tenantId,
-                                                  String tenantAdminUsername, 
String repositoryType,
-                                                  String repositoryURL, 
boolean isPrivateRepository,
-                                                  String repositoryUsername, 
String repositoryPassword, String lbClusterId)
-
-            throws ADCException, InvalidCartridgeAliasException, 
DuplicateCartridgeAliasException, PolicyException,
-            UnregisteredCartridgeException, RepositoryRequiredException, 
RepositoryCredentialsRequiredException,
-            RepositoryTransportException, AlreadySubscribedException, 
InvalidRepositoryException {
-
-        return subscribeToCartridgeWithProperties(cartridgeType, 
subscriptionAlias, autoscalingPolicyName,
-                                                  deploymentPolicyName, 
tenantDomain, tenantId, tenantAdminUsername, 
-                                                  repositoryType, 
repositoryURL, isPrivateRepository, repositoryUsername, 
-                                                  repositoryPassword, 
lbClusterId, null);
-    }
     
-    public CartridgeSubscription subscribeToCartridgeWithProperties(String 
cartridgeType, String cartridgeAlias,
-        String autoscalingPolicyName, String deploymentPolicyName, String 
tenantDomain,
-        int tenantId, String tenantAdminUsername, String repositoryType, 
String repositoryURL,
-        boolean isPrivateRepository, String repositoryUsername, String 
repositoryPassword, String lbClusterId, Property[] props)
-
-    throws ADCException,
-        InvalidCartridgeAliasException,
-        DuplicateCartridgeAliasException,
-        PolicyException,
-        UnregisteredCartridgeException,
-        RepositoryRequiredException,
-        RepositoryCredentialsRequiredException,
-        RepositoryTransportException,
-        AlreadySubscribedException,
-        InvalidRepositoryException {
+    public CartridgeSubscription 
subscribeToCartridgeWithProperties(SubscriptionData subscriptionData)  throws 
ADCException,
+                                                                               
             InvalidCartridgeAliasException,
+                                                                               
             DuplicateCartridgeAliasException,
+                                                                               
             PolicyException,
+                                                                               
             UnregisteredCartridgeException,
+                                                                               
             RepositoryRequiredException,
+                                                                               
             RepositoryCredentialsRequiredException,
+                                                                               
             RepositoryTransportException,
+                                                                               
             AlreadySubscribedException,
+                                                                               
             InvalidRepositoryException {
+
+        int tenantId = subscriptionData.getTenantId();
+        String cartridgeType = subscriptionData.getCartridgeType();
+        String cartridgeAlias =  subscriptionData.getCartridgeAlias();
+        Property [] props = subscriptionData.getProperties();
+        String repositoryPassword = subscriptionData.getRepositoryPassword();
+        String repositoryUsername = subscriptionData.getRepositoryUsername();
+        boolean isPrivateRepository = subscriptionData.isPrivateRepository();
+        String repositoryURL = subscriptionData.getRepositoryURL();
+        String tenantDomain = subscriptionData.getTenantDomain();
+        String tenantAdminUsername = subscriptionData.getTenantAdminUsername();
+        String autoscalingPolicyName = 
subscriptionData.getAutoscalingPolicyName();
+        String deploymentPolicyName = 
subscriptionData.getDeploymentPolicyName();
+        String lbClusterId = subscriptionData.getLbClusterId();
 
         // validate cartridge alias
         CartridgeSubscriptionUtils.validateCartridgeAlias(tenantId, 
cartridgeType, cartridgeAlias);
@@ -159,8 +124,10 @@ public class CartridgeSubscriptionManager {
         //Create the CartridgeSubscription instance
         CartridgeSubscription cartridgeSubscription = 
CartridgeSubscriptionFactory.
                 getCartridgeSubscriptionInstance(cartridgeInfo, 
tenancyBehaviour);
-        
+
+
         String subscriptionKey = 
CartridgeSubscriptionUtils.generateSubscriptionKey();
+
         String encryptedRepoPassword = repositoryPassword != null && 
!repositoryPassword.isEmpty() ?
                 RepoPasswordMgtUtil.encryptPassword(repositoryPassword, 
subscriptionKey) : "";
         
@@ -180,7 +147,7 @@ public class CartridgeSubscriptionManager {
 
         //create subscription
         cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, 
autoscalingPolicyName,
-                                                 deploymentPolicyName, 
repository);
+                                                deploymentPolicyName, 
repository);
 
         // set the lb cluster id if its available
         if (lbClusterId != null && !lbClusterId.isEmpty()) {

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java
index 3ee4d83..bfd4c11 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/RepositoryInfoBean.java
@@ -24,6 +24,7 @@ package org.apache.stratos.manager.service;
 */
 
 
+import org.apache.stratos.cloud.controller.pojo.CartridgeConfig;
 import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 
 /**
@@ -37,7 +38,7 @@ public class RepositoryInfoBean {
        private String userName;
        private String password;
        private String[] dirArray;
-       private CartridgeInfo cartridgeInfo;    
+       private CartridgeInfo cartridgeInfo;
        
        
        public RepositoryInfoBean(String repoURL, String cartridgeAlias, String 
tenantDomain,

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 e8245d3..9375829 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
@@ -69,6 +69,8 @@ public abstract class CartridgeSubscription implements 
Serializable {
     private String subscriptionKey;
     private SubscriptionTenancyBehaviour subscriptionTenancyBehaviour;
 
+    private String nothing;
+
     
     /**
      * Constructor
@@ -122,9 +124,18 @@ 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;
+    }
+
     /**
      * Unsubscribe from this cartridge subscription
      *

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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
new file mode 100644
index 0000000..b6adf69
--- /dev/null
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/subscription/SubscriptionData.java
@@ -0,0 +1,153 @@
+package org.apache.stratos.manager.subscription;
+
+import org.apache.stratos.cloud.controller.pojo.Property;
+
+/**
+ * This holds the data that are gathered at the time of subscription. This is 
usefull when passing subscription details to the method calls.
+ */
+public class SubscriptionData {
+
+
+    private String cartridgeType;
+    private String cartridgeAlias;
+
+    private String autoscalingPolicyName;
+    private String deploymentPolicyName;
+    private String tenantDomain;
+    private int tenantId;
+    private String tenantAdminUsername;
+    private String repositoryType = "git";
+    private String repositoryURL;
+    private boolean isPrivateRepository;
+    private String repositoryUsername;
+    private String repositoryPassword;
+    private String lbClusterId;
+    private Property[] properties;
+    private String dataCartridgeAlias;
+    private String lbAlias;
+
+    public String getCartridgeType() {
+        return cartridgeType;
+    }
+
+    public void setCartridgeType(String cartridgeType) {
+        this.cartridgeType = cartridgeType;
+    }
+
+    public String getCartridgeAlias() {
+        return cartridgeAlias;
+    }
+
+    public void setCartridgeAlias(String cartridgeAlias) {
+        this.cartridgeAlias = cartridgeAlias;
+    }
+
+    public String getAutoscalingPolicyName() {
+        return autoscalingPolicyName;
+    }
+
+    public void setAutoscalingPolicyName(String autoscalingPolicyName) {
+        this.autoscalingPolicyName = autoscalingPolicyName;
+    }
+
+    public String getDeploymentPolicyName() {
+        return deploymentPolicyName;
+    }
+
+    public void setDeploymentPolicyName(String deploymentPolicyName) {
+        this.deploymentPolicyName = deploymentPolicyName;
+    }
+
+    public String getTenantDomain() {
+        return tenantDomain;
+    }
+
+    public void setTenantDomain(String tenantDomain) {
+        this.tenantDomain = tenantDomain;
+    }
+
+    public int getTenantId() {
+        return tenantId;
+    }
+
+    public void setTenantId(int tenantId) {
+        this.tenantId = tenantId;
+    }
+
+    public String getTenantAdminUsername() {
+        return tenantAdminUsername;
+    }
+
+    public void setTenantAdminUsername(String tenantAdminUsername) {
+        this.tenantAdminUsername = tenantAdminUsername;
+    }
+
+    public String getRepositoryType() {
+        return repositoryType;
+    }
+
+    public void setRepositoryType(String repositoryType) {
+        this.repositoryType = repositoryType;
+    }
+
+    public String getRepositoryURL() {
+        return repositoryURL;
+    }
+
+    public void setRepositoryURL(String repositoryURL) {
+        this.repositoryURL = repositoryURL;
+    }
+
+    public boolean isPrivateRepository() {
+        return isPrivateRepository;
+    }
+
+    public void setPrivateRepository(boolean isPrivateRepository) {
+        this.isPrivateRepository = isPrivateRepository;
+    }
+
+    public String getRepositoryUsername() {
+        return repositoryUsername;
+    }
+
+    public void setRepositoryUsername(String repositoryUsername) {
+        this.repositoryUsername = repositoryUsername;
+    }
+
+    public String getRepositoryPassword() {
+        return repositoryPassword;
+    }
+
+    public void setRepositoryPassword(String repositoryPassword) {
+        this.repositoryPassword = repositoryPassword;
+    }
+
+    public String getLbClusterId() {
+        return lbClusterId;
+    }
+
+    public void setLbClusterId(String lbClusterId) {
+        this.lbClusterId = lbClusterId;
+    }
+
+    public Property[] getProperties() {
+        return properties;
+    }
+
+    public void setProperties(Property[] properties) {
+        this.properties = properties;
+    }
+
+    public void setDataCartridgeAlias(String dataCartridgeAlias) 
{this.dataCartridgeAlias = dataCartridgeAlias; }
+
+    public String getDataCartridgeAlias() {return dataCartridgeAlias;}
+
+    public String getLbAlias() {
+        return lbAlias;
+    }
+
+    public void setLbAlias(String lbAlias) {
+        this.lbAlias = lbAlias;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 10d16d1..9cc1903 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
@@ -256,7 +256,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/680e592b/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 7ff19b3..43e80c5 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
@@ -32,6 +32,11 @@ public class CartridgeInfoBean {
     String dataCartridgeType;
     String dataCartridgeAlias;
 
+    boolean persistanceRequired;
+    int persistaneVolumeSize;
+    boolean deleteOnTermination;
+    String devicetoMap;
+
 
     public String getCartridgeType() {
         return cartridgeType;
@@ -112,4 +117,36 @@ public class CartridgeInfoBean {
     public void setDeploymentPolicy(String deploymentPolicy) {
         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 void setDevicetoMap(String devicetoMap) {
+        this.devicetoMap = devicetoMap;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/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 49afe32..207d0d6 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
@@ -35,6 +35,7 @@ import org.apache.stratos.manager.exception.*;
 import org.apache.stratos.manager.manager.CartridgeSubscriptionManager;
 import org.apache.stratos.manager.subscription.CartridgeSubscription;
 import org.apache.stratos.manager.subscription.DataCartridgeSubscription;
+import org.apache.stratos.manager.subscription.SubscriptionData;
 import 
org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
 import 
org.apache.stratos.manager.topology.model.TopologyClusterInformationModel;
 import org.apache.stratos.manager.utils.ApplicationManagementUtil;
@@ -43,6 +44,7 @@ import org.apache.stratos.messaging.domain.topology.Cluster;
 import org.apache.stratos.messaging.domain.topology.Member;
 import org.apache.stratos.messaging.domain.topology.MemberStatus;
 import org.apache.stratos.messaging.util.Constants;
+import org.apache.stratos.rest.endpoint.bean.CartridgeInfoBean;
 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;
@@ -746,19 +748,16 @@ public class ServiceUtils {
     }
 
 
-    static SubscriptionInfo subscribe(String cartridgeType, String alias, 
String autoscalingPolicy, String deploymentPolicy, String repoURL,
-                               boolean privateRepo, String repoUsername, 
String repoPassword, String dataCartridgeType,
-                               String dataCartridgeAlias, ConfigurationContext 
configurationContext, String userName, String tenantDomain) 
+    static SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean, 
ConfigurationContext configurationContext, String tenantUsername, String 
tenantDomain)
                                        throws ADCException, PolicyException, 
UnregisteredCartridgeException,
             InvalidCartridgeAliasException, DuplicateCartridgeAliasException, 
RepositoryRequiredException,
             AlreadySubscribedException, 
RepositoryCredentialsRequiredException, InvalidRepositoryException,
             RepositoryTransportException {
-
         // LB cartridges won't go thru this method.
 
         //TODO: this is a temp fix. proper fix is to move this logic to 
CartridgeSubscriptionManager
         // validate cartridge alias
-        
CartridgeSubscriptionUtils.validateCartridgeAlias(ApplicationManagementUtil.getTenantId(configurationContext),
 cartridgeType, alias);
+        
CartridgeSubscriptionUtils.validateCartridgeAlias(ApplicationManagementUtil.getTenantId(configurationContext),
 cartridgeInfoBean.getCartridgeType(), cartridgeInfoBean.getAlias());
 
         AutoscalerServiceClient autoscalerServiceClient = 
getAutoscalerServiceClient();
         CloudControllerServiceClient cloudControllerServiceClient =
@@ -766,22 +765,42 @@ public class ServiceUtils {
         CartridgeInfo cartridgeInfo;
 
         try {
-            cartridgeInfo = 
cloudControllerServiceClient.getCartridgeInfo(cartridgeType);
+            cartridgeInfo = 
cloudControllerServiceClient.getCartridgeInfo(cartridgeInfoBean.getCartridgeType());
         } catch (Exception e) {
-            String msg = "Cannot get cartridge info: " + cartridgeType;
+            String msg = "Cannot get cartridge info: " + 
cartridgeInfoBean.getCartridgeType();
             log.error(msg, e);
             throw new ADCException(msg, e);
         }
 
+        String cartridgeType = cartridgeInfoBean.getCartridgeType();
+        String deploymentPolicy = cartridgeInfoBean.getDeploymentPolicy();
+        String autoscalingPolicy = cartridgeInfoBean.getAutoscalePolicy();
+        String dataCartridgeAlias = cartridgeInfoBean.getDataCartridgeAlias();
+
+        SubscriptionData subscriptionData = new SubscriptionData();
+        subscriptionData.setCartridgeType(cartridgeType);
+        
subscriptionData.setCartridgeAlias(cartridgeInfoBean.getAlias().trim());
+        subscriptionData.setDataCartridgeAlias(dataCartridgeAlias);
+        subscriptionData.setAutoscalingPolicyName(autoscalingPolicy);
+        subscriptionData.setDeploymentPolicyName(deploymentPolicy);
+        subscriptionData.setTenantDomain(tenantDomain);
+        
subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext));
+        subscriptionData.setTenantAdminUsername(tenantUsername);
+        subscriptionData.setRepositoryType("git");
+        subscriptionData.setRepositoryURL(cartridgeInfoBean.getRepoURL());
+        subscriptionData.setRepositoryUsername(cartridgeInfoBean.getRepoURL());
+        
subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword());
+
         // If multitenant, return for now. TODO -- fix properly
         if(cartridgeInfo != null && cartridgeInfo.getMultiTenant()) {
                log.info(" ******* MT cartridge ******* ");
+
+            subscriptionData.setPrivateRepository(false);
+            subscriptionData.setLbClusterId(null);
+            subscriptionData.setProperties(null);
                        
-               CartridgeSubscription cartridgeSubscription = 
-               
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, 
alias, autoscalingPolicy, 
-                                                                         
deploymentPolicy ,tenantDomain, 
-                                                                         
ApplicationManagementUtil.getTenantId(configurationContext),
-                                                                         
userName, "git", repoURL, false, repoUsername, repoPassword, null, null);
+            CartridgeSubscription cartridgeSubscription =
+                                        
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData);
                log.info(" --- ** -- ");
               return 
cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
                        
@@ -889,7 +908,7 @@ public class ServiceUtils {
                                                           lbAlias,
                                                           
lbCartridgeInfo.getDefaultAutoscalingPolicy(),
                                                           deploymentPolicy, 
configurationContext,
-                                                          userName, 
tenantDomain,
+                                                    tenantUsername, 
tenantDomain,
                                                           
lbCartridgeInfo.getProperties());
                                             } else {
                                                 String msg = "Please specify a 
LB cartridge type for the cartridge: "
@@ -967,7 +986,7 @@ public class ServiceUtils {
                                                     lbAlias,
                                                     
lbCartridgeInfo.getDefaultAutoscalingPolicy(),
                                                     deploymentPolicy,
-                                                    configurationContext, 
userName,
+                                                    configurationContext, 
tenantUsername,
                                                     tenantDomain,
                                                     
lbCartridgeInfo.getProperties());
                                             } else {
@@ -994,21 +1013,12 @@ public class ServiceUtils {
             }
         }
 
+        
subscriptionData.setPrivateRepository(cartridgeInfoBean.isPrivateRepo());
+        subscriptionData.setLbClusterId(lbClusterId);
+        subscriptionData.setProperties(lbRefProp.toArray(new Property[0]));
         CartridgeSubscription cartridgeSubscription =
-                                                      
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType,
-                                                                               
                                      alias.trim(),
-                                                                               
                                      autoscalingPolicy,
-                                                                               
                                      deploymentPolicy,
-                                                                               
                                      tenantDomain,
-                                                                               
                                      
ApplicationManagementUtil.getTenantId(configurationContext),
-                                                                               
                                      userName,
-                                                                               
                                      "git",
-                                                                               
                                      repoURL,
-                                                                               
                                      privateRepo,
-                                                                               
                                      repoUsername,
-                                                                               
                                      repoPassword,
-                                                                               
                                      lbClusterId,
-                                                                               
                                      lbRefProp.toArray(new Property[0]));
+                                                      
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData);
+
 
         if (dataCartridgeAlias != null && 
!dataCartridgeAlias.trim().isEmpty()) {
 
@@ -1105,11 +1115,21 @@ public class ServiceUtils {
             if(log.isDebugEnabled()) {
                 log.debug("Subscribing to a load balancer [cartridge] 
"+cartridgeType+" [alias] "+lbAlias);
             }
+
+            SubscriptionData subscriptionData = new SubscriptionData();
+            subscriptionData.setCartridgeType(cartridgeType);
+            subscriptionData.setLbAlias(lbAlias.trim());
+            
subscriptionData.setAutoscalingPolicyName(defaultAutoscalingPolicy);
+            subscriptionData.setDeploymentPolicyName(deploymentPolicy);
+            subscriptionData.setTenantDomain(tenantDomain);
+            
subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext));
+            subscriptionData.setTenantAdminUsername(userName);
+            subscriptionData.setRepositoryType("git");
+            subscriptionData.setProperties(props);
+            subscriptionData.setPrivateRepository(false);
+
             cartridgeSubscription =
-                    
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, 
lbAlias.trim(), defaultAutoscalingPolicy, 
-                                                                     
deploymentPolicy ,tenantDomain, 
-                                                                     
ApplicationManagementUtil.getTenantId(configurationContext),
-                                                                     userName, 
"git", null, false, null, null, null, props);
+                    
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData);
 
             //set a payload parameter to indicate the load balanced cartridge 
type
             
cartridgeSubscription.getPayloadData().add("LOAD_BALANCED_SERVICE_TYPE", 
loadBalancedCartridgeType);

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/680e592b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
index 4437a75..d36f271 100644
--- 
a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
+++ 
b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/StratosAdmin.java
@@ -342,16 +342,7 @@ public class StratosAdmin extends AbstractAdmin {
     @AuthorizationAction("/permission/protected/manage/monitor/tenants")
     public SubscriptionInfo subscribe(CartridgeInfoBean cartridgeInfoBean) {
         try {
-            return ServiceUtils.subscribe(cartridgeInfoBean.getCartridgeType(),
-                    cartridgeInfoBean.getAlias(),
-                    cartridgeInfoBean.getAutoscalePolicy(),
-                    cartridgeInfoBean.getDeploymentPolicy(),
-                    cartridgeInfoBean.getRepoURL(),
-                    cartridgeInfoBean.isPrivateRepo(),
-                    cartridgeInfoBean.getRepoUsername(),
-                    cartridgeInfoBean.getRepoPassword(),
-                    cartridgeInfoBean.getDataCartridgeType(),
-                    cartridgeInfoBean.getDataCartridgeAlias(),
+            return ServiceUtils.subscribe(cartridgeInfoBean,
                     getConfigContext(),
                     getUsername(),
                     getTenantDomain());

Reply via email to