Updated Branches:
  refs/heads/master c64642df4 -> 3ff07ad14

fixing STRATOS-428; adding LB cluster id to Subscriptions so that it is 
available in listing subscriptions


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

Branch: refs/heads/master
Commit: 09bfccf66d5534a8d238a77e1804a27ab0a15913
Parents: 033086a
Author: Isuru <[email protected]>
Authored: Tue Feb 11 11:57:01 2014 +0530
Committer: Isuru <[email protected]>
Committed: Tue Feb 11 11:57:01 2014 +0530

----------------------------------------------------------------------
 .../apache/stratos/manager/dto/Cartridge.java   | 16 ++++++++---
 .../manager/CartridgeSubscriptionManager.java   | 10 ++++---
 .../service/ApplicationManagementService.java   |  2 +-
 .../subscription/CartridgeSubscription.java     |  9 +++++++
 .../rest/endpoint/services/ServiceUtils.java    | 28 ++++++++++++++------
 5 files changed, 50 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/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 e435669..4460a7e 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
@@ -19,10 +19,10 @@
 
 package org.apache.stratos.manager.dto;
 
-import javax.xml.bind.annotation.XmlRootElement;
-
 import org.apache.stratos.cloud.controller.pojo.PortMapping;
 
+import javax.xml.bind.annotation.XmlRootElement;
+
 @XmlRootElement
 public class Cartridge implements Comparable<Cartridge> {
 
@@ -47,6 +47,9 @@ public class Cartridge implements Comparable<Cartridge> {
     private String dbUserName;
     private String password;
 
+    //LB cluster id
+    private String lbClusterId;
+
        private String[] accessURLs;
        private PortMapping[] portMappings;
 
@@ -221,5 +224,12 @@ public class Cartridge implements Comparable<Cartridge> {
        public void setPortMappings(PortMapping[] portMappings) {
                this.portMappings = portMappings;
        }
-    
+
+    public String getLbClusterId() {
+        return lbClusterId;
+    }
+
+    public void setLbClusterId(String lbClusterId) {
+        this.lbClusterId = lbClusterId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/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 2ceaffd..4daa668 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
@@ -85,7 +85,7 @@ public class CartridgeSubscriptionManager {
                                                   String tenantDomain, int 
tenantId,
                                                   String tenantAdminUsername, 
String repositoryType,
                                                   String repositoryURL, 
boolean isPrivateRepository,
-                                                  String repositoryUsername, 
String repositoryPassword)
+                                                  String repositoryUsername, 
String repositoryPassword, String lbClusterId)
 
             throws ADCException, InvalidCartridgeAliasException, 
DuplicateCartridgeAliasException, PolicyException,
             UnregisteredCartridgeException, RepositoryRequiredException, 
RepositoryCredentialsRequiredException,
@@ -94,13 +94,13 @@ public class CartridgeSubscriptionManager {
         return subscribeToCartridgeWithProperties(cartridgeType, 
subscriptionAlias, autoscalingPolicyName,
                                                   deploymentPolicyName, 
tenantDomain, tenantId, tenantAdminUsername, 
                                                   repositoryType, 
repositoryURL, isPrivateRepository, repositoryUsername, 
-                                                  repositoryPassword, null);
+                                                  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, Property[] props)
+        boolean isPrivateRepository, String repositoryUsername, String 
repositoryPassword, String lbClusterId, Property[] props)
 
     throws ADCException,
         InvalidCartridgeAliasException,
@@ -182,6 +182,10 @@ public class CartridgeSubscriptionManager {
         cartridgeSubscription.createSubscription(subscriber, cartridgeAlias, 
autoscalingPolicyName,
                                                  deploymentPolicyName, 
repository);
 
+        // set the lb cluster id if its available
+        if (lbClusterId != null && !lbClusterId.isEmpty()) {
+            cartridgeSubscription.setLbClusterId(lbClusterId);
+        }
 
         log.info("Tenant [" + tenantId + "] with username [" + 
tenantAdminUsername +
                  " subscribed to " + "] Cartridge Alias " + cartridgeAlias + 
", Cartridge Type: " +

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
index 4116b74..503bcec 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/service/ApplicationManagementService.java
@@ -388,7 +388,7 @@ public class ApplicationManagementService extends 
AbstractAdmin {
 
         CartridgeSubscription cartridgeSubscription = 
cartridgeSubsciptionManager.subscribeToCartridge(cartridgeType,
                 alias.trim(), "economyPolicy", "economy-deployment", 
getTenantDomain(), ApplicationManagementUtil.getTenantId(configurationContext),
-                getUsername(), "git", repoURL, privateRepo, repoUsername, 
repoPassword);
+                getUsername(), "git", repoURL, privateRepo, repoUsername, 
repoPassword, null);
 
         if(dataCartridgeAlias != null && !dataCartridgeAlias.trim().isEmpty()) 
{
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/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 241c02a..7f4019f 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
@@ -52,6 +52,7 @@ public abstract class CartridgeSubscription implements 
Serializable {
     private CartridgeInfo cartridgeInfo;
     private PayloadData payloadData;
     private Cluster cluster;
+    private String lbClusterId;
     private String subscriptionStatus;
     //private String serviceStatus;
     private String mappedDomain;
@@ -464,4 +465,12 @@ public abstract class CartridgeSubscription implements 
Serializable {
                ", repository=" + repository + ", cartridgeInfo=" + 
cartridgeInfo + ", payload=" +
                payloadData + ", cluster=" + cluster + "]";
     }
+
+    public String getLbClusterId() {
+        return lbClusterId;
+    }
+
+    public void setLbClusterId(String lbClusterId) {
+        this.lbClusterId = lbClusterId;
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/09bfccf6/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 7c89955..e34705a 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
@@ -607,6 +607,10 @@ public class ServiceUtils {
             cartridge.setPassword(dataCartridgeSubscription.getDBPassword());
         }
 
+        if (subscription.getLbClusterId() != null && 
!subscription.getLbClusterId().isEmpty()) {
+            cartridge.setLbClusterId(subscription.getLbClusterId());
+        }
+
         cartridge.setStatus(subscription.getSubscriptionStatus());
         
cartridge.setPortMappings(subscription.getCartridgeInfo().getPortMappings());
         return cartridge;
@@ -700,7 +704,7 @@ public class ServiceUtils {
                
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, 
alias, autoscalingPolicy, 
                                                                          
deploymentPolicy ,tenantDomain, 
                                                                          
ApplicationManagementUtil.getTenantId(configurationContext),
-                                                                         
userName, "git", repoURL, false, repoUsername, repoPassword, null);
+                                                                         
userName, "git", repoURL, false, repoUsername, repoPassword, null, null);
                log.info(" --- ** -- ");
               return 
cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
                        
@@ -710,6 +714,7 @@ public class ServiceUtils {
 
         // get lb config reference
         LoadbalancerConfig lbConfig = cartridgeInfo.getLbConfig();
+        String lbClusterId = null;
 
         if (lbConfig == null || lbConfig.getProperties() == null) {
             if (log.isDebugEnabled()) {
@@ -723,6 +728,7 @@ public class ServiceUtils {
             Property property = new Property();
             
property.setName(org.apache.stratos.messaging.util.Constants.LOAD_BALANCER_REF);
 
+
             for (org.apache.stratos.cloud.controller.pojo.Property prop : 
lbReferenceProperties.getProperties()) {
 
                 String name = prop.getName();
@@ -802,7 +808,7 @@ public class ServiceUtils {
                                             String lbAlias = "lb" + new 
Random().nextInt();
                                             if(lbCartridgeInfo != null) {
                                                
lbCartridgeInfo.addProperties(property);
-                                            subscribeToLb(lbCartridgeType, 
cartridgeType,
+                                            lbClusterId = 
subscribeToLb(lbCartridgeType, cartridgeType,
                                                           lbAlias,
                                                           
lbCartridgeInfo.getDefaultAutoscalingPolicy(),
                                                           deploymentPolicy, 
configurationContext,
@@ -880,7 +886,7 @@ public class ServiceUtils {
                                                 
lbCartridgeInfo.addProperties(property);
                                                 
lbCartridgeInfo.addProperties(loadBalancedServiceTypeProperty);
 
-                                                subscribeToLb(lbCartridgeType, 
cartridgeType,
+                                                lbClusterId = 
subscribeToLb(lbCartridgeType, cartridgeType,
                                                     lbAlias,
                                                     
lbCartridgeInfo.getDefaultAutoscalingPolicy(),
                                                     deploymentPolicy,
@@ -924,6 +930,7 @@ public class ServiceUtils {
                                                                                
                                      privateRepo,
                                                                                
                                      repoUsername,
                                                                                
                                      repoPassword,
+                                                                               
                                      lbClusterId,
                                                                                
                                      lbRefProp.toArray(new Property[0]));
 
         if (dataCartridgeAlias != null && 
!dataCartridgeAlias.trim().isEmpty()) {
@@ -1009,20 +1016,23 @@ public class ServiceUtils {
 
 
     }
-    
-    private static void subscribeToLb(String cartridgeType, String 
loadBalancedCartridgeType, String lbAlias,
+
+    // return the cluster id for the lb. This is a temp fix.
+    private static String subscribeToLb(String cartridgeType, String 
loadBalancedCartridgeType, String lbAlias,
         String defaultAutoscalingPolicy, String deploymentPolicy,
         ConfigurationContext configurationContext, String userName, String 
tenantDomain, Property[] props) throws ADCException {
-        
+
+        CartridgeSubscription cartridgeSubscription;
+
         try {
             if(log.isDebugEnabled()) {
                 log.debug("Subscribing to a load balancer [cartridge] 
"+cartridgeType+" [alias] "+lbAlias);
             }
-            CartridgeSubscription cartridgeSubscription = 
+            cartridgeSubscription =
                     
cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, 
lbAlias.trim(), defaultAutoscalingPolicy, 
                                                                      
deploymentPolicy ,tenantDomain, 
                                                                      
ApplicationManagementUtil.getTenantId(configurationContext),
-                                                                     userName, 
"git", null, false, null, null, props);
+                                                                     userName, 
"git", null, false, null, null, null, props);
 
             //set a payload parameter to indicate the load balanced cartridge 
type
             
cartridgeSubscription.getPayloadData().add("LOAD_BALANCED_SERVICE_TYPE", 
loadBalancedCartridgeType);
@@ -1037,6 +1047,8 @@ public class ServiceUtils {
             log.error(msg, e);
             throw new ADCException(msg, e);
         }
+
+        return cartridgeSubscription.getClusterDomain();
     }
 
     static void unsubscribe(String alias, String tenantDomain) throws 
RestAPIException {

Reply via email to