You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ni...@apache.org on 2013/12/11 18:51:25 UTC

[2/4] git commit: setting lb reference type property

setting lb reference type property


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

Branch: refs/heads/master
Commit: 1ebe79859455446b96d20af676d70735179c2d60
Parents: 8d42814
Author: Nirmal Fernando <ni...@apache.org>
Authored: Wed Dec 11 23:18:49 2013 +0530
Committer: Nirmal Fernando <ni...@apache.org>
Committed: Wed Dec 11 23:21:01 2013 +0530

----------------------------------------------------------------------
 .../apache/stratos/rest/endpoint/Constants.java |  5 +-
 .../rest/endpoint/services/ServiceUtils.java    | 53 +++++++++++++-------
 2 files changed, 35 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ebe7985/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java
index 5719dd2..b4a42c5 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/Constants.java
@@ -24,8 +24,5 @@ package org.apache.stratos.rest.endpoint;
 public class Constants {
 
     public static final String SUPER_TENANT_SERVICE = "super.tenant.service";
-    public static final String SERVICE_AWARE_LOAD_BALANCER = "service.aware.load.balancer";
-    public static final String DEFAULT_LOAD_BALANCER = "default.load.balancer";
-    public static final String NO_LOAD_BALANCER = "no.load.balancer";
-    public static final String EXISTING_LOAD_BALANCERS = "existing.load.balancers";
+    
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1ebe7985/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 7c7cb84..82ca3fc 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/services/ServiceUtils.java
@@ -42,7 +42,6 @@ import org.apache.stratos.cloud.controller.pojo.CartridgeInfo;
 import org.apache.stratos.cloud.controller.pojo.LoadbalancerConfig;
 import org.apache.stratos.cloud.controller.pojo.Properties;
 import org.apache.stratos.messaging.domain.topology.Cluster;
-import org.apache.stratos.rest.endpoint.Constants;
 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;
@@ -50,8 +49,9 @@ import org.apache.stratos.rest.endpoint.bean.cartridge.definition.CartridgeDefin
 import org.apache.stratos.rest.endpoint.bean.util.converter.PojoConverter;
 import org.apache.stratos.rest.endpoint.exception.RestAPIException;
 import org.wso2.carbon.context.PrivilegedCarbonContext;
+import org.apache.stratos.cloud.controller.pojo.Property;
+import org.apache.stratos.messaging.util.Constants;
 
-import java.beans.PropertyVetoException;
 import java.util.*;
 import java.util.regex.Pattern;
 
@@ -642,7 +642,7 @@ public class ServiceUtils {
             }
         }
         
-        org.apache.stratos.cloud.controller.pojo.Property lbRefProp = null; 
+        List<Property> lbRefProp = new ArrayList<Property>(); 
         
         if (!isLb) {
             // if not an LB Cartridge
@@ -667,21 +667,27 @@ public class ServiceUtils {
 
                 Properties lbProperties = lbConfig.getProperties();
 
+                Property property = new Property();
+                property.setName(org.apache.stratos.messaging.util.Constants.LOAD_BALANCER_REF);
+                
                 for (org.apache.stratos.cloud.controller.pojo.Property prop : lbProperties.getProperties()) {
-                    // lb ref prop
-                    lbRefProp = prop;
+                    
+                    String name = prop.getName();
+                    String value = prop.getValue();
                     
                     // TODO make following a chain of responsibility pattern
-                    if (Constants.NO_LOAD_BALANCER.equals(prop.getName())) {
-                        if ("true".equals(prop.getValue())) {
+                    if (Constants.NO_LOAD_BALANCER.equals(name)) {
+                        if ("true".equals(value)) {
                             if (log.isDebugEnabled()) {
                                 log.debug("This cartridge does not require a load balancer. " +
                                           "[Type] " + cartridgeType);
                             }
+                            property.setValue(name);
+                            lbRefProp.add(property);
                             break;
                         }
-                    } else if (Constants.EXISTING_LOAD_BALANCERS.equals(prop.getName())) {
-                        String clusterIdsVal = prop.getValue();
+                    } else if (Constants.EXISTING_LOAD_BALANCERS.equals(name)) {
+                        String clusterIdsVal = value;
                         if (log.isDebugEnabled()) {
                             log.debug("This cartridge refers to existing load balancers. " +
                                       "[Type] " + cartridgeType + "[Referenced Cluster Ids] " +
@@ -700,10 +706,14 @@ public class ServiceUtils {
                                 }
                             }
                         }
+                        
+                        property.setValue(name);
+                        lbRefProp.add(property);
                         break;
 
-                    } else if (Constants.DEFAULT_LOAD_BALANCER.equals(prop.getName())) {
-                        if ("true".equals(prop.getValue())) {
+                    } else if (Constants.DEFAULT_LOAD_BALANCER.equals(name)) {
+                        if ("true".equals(value)) {
+                            property.setValue(name);
                             if (log.isDebugEnabled()) {
                                 log.debug("This cartridge uses default load balancer. " +
                                           "[Type] " + cartridgeType);
@@ -726,7 +736,7 @@ public class ServiceUtils {
                                                           lbAlias,
                                                           lbCartridgeInfo.getDefaultAutoscalingPolicy(),
                                                           deploymentPolicy, configurationContext,
-                                                          userName, tenantDomain);
+                                                          userName, tenantDomain, new Property[]{property});
                                             }
                                         }
                                     }
@@ -736,9 +746,12 @@ public class ServiceUtils {
                                     log.error(ex.getMessage(), ex);
                                 }
                             }
+                            
+                            lbRefProp.add(property);
                             break;
-                        } else if (Constants.SERVICE_AWARE_LOAD_BALANCER.equals(prop.getName())) {
-                            if ("true".equals(prop.getValue())) {
+                        } else if (Constants.SERVICE_AWARE_LOAD_BALANCER.equals(name)) {
+                            if ("true".equals(value)) {
+                                property.setValue(name);
                                 if (log.isDebugEnabled()) {
                                     log.debug("This cartridge uses a service aware load balancer. " +
                                               "[Type] " + cartridgeType);
@@ -762,7 +775,7 @@ public class ServiceUtils {
                                                               lbAlias,
                                                               lbCartridgeInfo.getDefaultAutoscalingPolicy(),
                                                               deploymentPolicy, configurationContext,
-                                                              userName, tenantDomain);
+                                                              userName, tenantDomain, new Property[]{property});
                                                 }
                                             }
                                         }
@@ -772,6 +785,8 @@ public class ServiceUtils {
                                         log.error(ex.getMessage(), ex);
                                     }
                                 }
+                                
+                                lbRefProp.add(property);
                                 break;
                             }
                         }
@@ -783,7 +798,7 @@ public class ServiceUtils {
         CartridgeSubscription cartridgeSubscription = cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType,
                 alias.trim(), autoscalingPolicy, deploymentPolicy ,tenantDomain, ApplicationManagementUtil.getTenantId(configurationContext),
                 userName, "git", repoURL, privateRepo, repoUsername, repoPassword, 
-                lbRefProp != null ? new org.apache.stratos.cloud.controller.pojo.Property[]{lbRefProp}:null);
+                lbRefProp.toArray(new Property[0]));
 
         if(dataCartridgeAlias != null && !dataCartridgeAlias.trim().isEmpty()) {
 
@@ -847,14 +862,14 @@ public class ServiceUtils {
     
     private static void subscribeToLb(String cartridgeType, String lbAlias,
         String defaultAutoscalingPolicy, String deploymentPolicy,
-        ConfigurationContext configurationContext, String userName, String tenantDomain) throws ADCException {
+        ConfigurationContext configurationContext, String userName, String tenantDomain, Property[] props) throws ADCException {
         
         try {
             CartridgeSubscription cartridgeSubscription = 
-                    cartridgeSubsciptionManager.subscribeToCartridge(cartridgeType, lbAlias.trim(), defaultAutoscalingPolicy, 
+                    cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(cartridgeType, lbAlias.trim(), defaultAutoscalingPolicy, 
                                                                      deploymentPolicy ,tenantDomain, 
                                                                      ApplicationManagementUtil.getTenantId(configurationContext),
-                                                                     userName, "git", null, false, null, null);
+                                                                     userName, "git", null, false, null, null, props);
             
             cartridgeSubsciptionManager.registerCartridgeSubscription(cartridgeSubscription);
         } catch (Exception e) {