Repository: incubator-stratos
Updated Branches:
  refs/heads/master 60b2f3fac -> 2651d6aab


setting cluster id to subscription from existing default LB


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

Branch: refs/heads/master
Commit: 0a06ab55fffdfb7cc24d02b7eded9f544f97d698
Parents: 75d5b26
Author: Sajith Kariyawasam <[email protected]>
Authored: Fri Mar 28 14:32:25 2014 +0530
Committer: Sajith Kariyawasam <[email protected]>
Committed: Fri Mar 28 14:32:25 2014 +0530

----------------------------------------------------------------------
 .../behaviour/CartridgeMgtBehaviour.java        | 21 +++++++---
 .../client/CloudControllerServiceClient.java    |  4 ++
 .../category/DefaultLoadBalancerCategory.java   | 43 +++++++++++++-------
 .../lb/category/LoadBalancerCategory.java       | 17 +++-----
 4 files changed, 52 insertions(+), 33 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0a06ab55/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
index 3de87eb..b083d56 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/behaviour/CartridgeMgtBehaviour.java
@@ -18,7 +18,6 @@ package org.apache.stratos.manager.behaviour;
  * under the License.
  */
 
-import org.apache.axis2.AxisFault;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
@@ -53,18 +52,28 @@ public abstract class CartridgeMgtBehaviour implements 
Serializable {
     public PayloadData create (String alias, Cluster cluster, Subscriber 
subscriber, Repository repository, CartridgeInfo cartridgeInfo,
                                String subscriptionKey, Map<String, String> 
customPayloadEntries) throws ADCException, AlreadySubscribedException {
 
+        // set cluster domain
+        cluster.setClusterDomain(generateClusterId(alias, 
cartridgeInfo.getType()));
+        // set hostname
+        cluster.setHostName(generateHostName(alias, 
cartridgeInfo.getHostName()));
 
-        String clusterId = alias + "." + cartridgeInfo.getType() + ".domain";
+        return createPayload(cartridgeInfo, subscriptionKey, subscriber, 
cluster, repository, alias, customPayloadEntries);
+    }
 
+    protected String generateClusterId (String alias, String cartridgeType) {
+
+        String clusterId = alias + "." + cartridgeType + ".domain";
         // limit the cartridge alias to 30 characters in length
         if (clusterId.length() > 30) {
             clusterId = 
CartridgeSubscriptionUtils.limitLengthOfString(clusterId, 30);
         }
-        cluster.setClusterDomain(clusterId);
-        // set hostname
-        cluster.setHostName(alias + "." + cluster.getHostName());
 
-        return createPayload(cartridgeInfo, subscriptionKey, subscriber, 
cluster, repository, alias, customPayloadEntries);
+        return clusterId;
+    }
+
+    protected String generateHostName (String alias, String 
cartridgeDefinitionHostName) {
+
+        return alias + "." + cartridgeDefinitionHostName;
     }
 
     protected PayloadData createPayload (CartridgeInfo cartridgeInfo, String 
subscriptionKey, Subscriber subscriber, Cluster cluster,

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0a06ab55/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 6b77921..1bfd4ad 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
@@ -152,4 +152,8 @@ public class CloudControllerServiceClient {
            stub.unregisterService(clusterId);
        }
 
+    public ClusterContext getClusterContext (String clusterId) throws 
RemoteException {
+
+        return stub.getClusterContext(clusterId);
+    }
 }

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0a06ab55/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
index 81521fc..ac368e8 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/DefaultLoadBalancerCategory.java
@@ -19,15 +19,13 @@
 
 package org.apache.stratos.manager.lb.category;
 
-import java.rmi.RemoteException;
-import java.util.Map;
-
-import org.apache.axis2.AxisFault;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
+import org.apache.stratos.cloud.controller.stub.pojo.ClusterContext;
 import org.apache.stratos.cloud.controller.stub.pojo.Properties;
 import org.apache.stratos.manager.client.AutoscalerServiceClient;
+import org.apache.stratos.manager.client.CloudControllerServiceClient;
 import org.apache.stratos.manager.dao.Cluster;
 import org.apache.stratos.manager.exception.ADCException;
 import org.apache.stratos.manager.exception.AlreadySubscribedException;
@@ -35,7 +33,9 @@ import 
org.apache.stratos.manager.exception.UnregisteredCartridgeException;
 import org.apache.stratos.manager.payload.PayloadData;
 import org.apache.stratos.manager.repository.Repository;
 import org.apache.stratos.manager.subscriber.Subscriber;
-import 
org.apache.stratos.manager.subscription.utils.CartridgeSubscriptionUtils;
+
+import java.rmi.RemoteException;
+import java.util.Map;
 
 public class DefaultLoadBalancerCategory extends LoadBalancerCategory {
 
@@ -52,27 +52,40 @@ public class DefaultLoadBalancerCategory extends 
LoadBalancerCategory {
                try {
                        clusterId = 
AutoscalerServiceClient.getServiceClient().getDefaultLBClusterId(getDeploymentPolicyName());
                } catch (Exception e) {                 
-                       log.error("Error occurred in retrieving default LB 
cluster id.  " + e.getMessage());
+                       log.error("Error occurred in retrieving default LB 
cluster id" + e.getMessage());
                        throw new ADCException(e);
                }
 
         if (clusterId != null) {
-
             //set the cluster id to Cluster object
                cluster.setClusterDomain(clusterId);
+            if (log.isDebugEnabled()) {
+                log.debug("Set existing default LB cluster id " + clusterId + 
" to the LB Subscription with alias: " + alias);
+            }
             defaultLBExists = true;
-            //need to check if we can get the host name as well..
 
-        } else {
-            clusterId = alias + "." + cartridgeInfo.getType() + ".domain";
+            //get the hostname for this cluster and set it
+            ClusterContext clusterContext;
+            try {
+                clusterContext = 
CloudControllerServiceClient.getServiceClient().getClusterContext(clusterId);
+
+            } catch (RemoteException e) {
+                log.error("Error occurred in retrieving Cluster Context for 
default LB" + e.getMessage());
+                throw new ADCException(e);
+            }
 
-            // limit the cartridge alias to 30 characters in length
-            if (clusterId.length() > 30) {
-                clusterId = 
CartridgeSubscriptionUtils.limitLengthOfString(clusterId, 30);
+            if (clusterContext != null) {
+                cluster.setHostName(clusterContext.getHostName());
+                if (log.isDebugEnabled()) {
+                    log.debug("Set existing default LB hostname " + 
clusterContext.getHostName() + " to the LB Subscription with alias: " + alias);
+                }
             }
-            cluster.setClusterDomain(clusterId);
+
+        } else {
+            // set cluster domain
+            cluster.setClusterDomain(generateClusterId(alias, 
cartridgeInfo.getType()));
             // set hostname
-            cluster.setHostName(alias + "." + cluster.getHostName());
+            cluster.setHostName(generateHostName(alias, 
cartridgeInfo.getHostName()));
         }
 
         return createPayload(cartridgeInfo, subscriptionKey, subscriber,

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/0a06ab55/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
index 1243b12..43ae859 100644
--- 
a/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
+++ 
b/components/org.apache.stratos.manager/src/main/java/org/apache/stratos/manager/lb/category/LoadBalancerCategory.java
@@ -19,8 +19,6 @@
 
 package org.apache.stratos.manager.lb.category;
 
-import java.util.Map;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.cloud.controller.stub.pojo.CartridgeInfo;
@@ -34,7 +32,8 @@ import org.apache.stratos.manager.payload.PayloadData;
 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.utils.CartridgeSubscriptionUtils;
+
+import java.util.Map;
 
 public abstract class LoadBalancerCategory extends CartridgeMgtBehaviour {
 
@@ -91,16 +90,10 @@ public abstract class LoadBalancerCategory extends 
CartridgeMgtBehaviour {
                        cluster.setHostName(deployedLBService.getHostName());
 
                } else {
-                       clusterId = alias + "." + cartridgeInfo.getType() + 
".domain";
-
-                       // limit the cartridge alias to 30 characters in length
-                       if (clusterId.length() > 30) {
-                               clusterId = 
CartridgeSubscriptionUtils.limitLengthOfString(
-                                               clusterId, 30);
-                       }
-                       cluster.setClusterDomain(clusterId);
+            // set cluster domain
+                       cluster.setClusterDomain(generateClusterId(alias, 
cartridgeInfo.getType()));
                        // set hostname
-                       cluster.setHostName(alias + "." + 
cluster.getHostName());
+                       cluster.setHostName(generateHostName(alias, 
cartridgeInfo.getHostName()));
                }
 
                return createPayload(cartridgeInfo, subscriptionKey, subscriber,

Reply via email to