You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ga...@apache.org on 2015/09/21 14:19:42 UTC

stratos git commit: Update accessurl as a map against instanceclusterid

Repository: stratos
Updated Branches:
  refs/heads/stratos-4.1.x 493214eb0 -> c646d2d23


Update accessurl as a map against instanceclusterid


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

Branch: refs/heads/stratos-4.1.x
Commit: c646d2d23773cfdcd5252874289765a3ec7eaab2
Parents: 493214e
Author: gayangunarathne <ga...@wso2.com>
Authored: Mon Sep 21 17:36:20 2015 +0530
Committer: gayangunarathne <ga...@wso2.com>
Committed: Mon Sep 21 17:41:41 2015 +0530

----------------------------------------------------------------------
 .../messaging/topology/TopologyBuilder.java     |  5 ++--
 .../impl/CloudControllerServiceImpl.java        |  2 +-
 .../messaging/domain/topology/Cluster.java      | 31 +++++++++++++-------
 .../topology/ClusterInstanceActivatedEvent.java | 24 ++++++++-------
 .../ClusterInstanceActivatedProcessor.java      | 10 +++----
 .../util/converter/ObjectConverter.java         |  3 +-
 6 files changed, 43 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/c646d2d2/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
index e94bb52..59c5a03 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/messaging/topology/TopologyBuilder.java
@@ -870,8 +870,9 @@ public class TopologyBuilder {
                                         // Using type URI since only http, https, ftp, file, jar protocols are supported in URL
                                         URI accessURL = new URI(kubernetesService.getProtocol(), null, publicIP,
                                                 kubernetesService.getPort(), null, null, null);
-                                        cluster.addAccessUrl(accessURL.toString());
-                                        clusterInstanceActivatedEvent.addAccessUrl(accessURL.toString());
+                                        cluster.addAccessUrl(clusterInstanceActivatedEvent.getInstanceId(),accessURL.toString());
+
+                                        clusterInstanceActivatedEvent.addAccessUrl(clusterInstanceActivatedEvent.getInstanceId(),accessURL.toString());
                                     } else {
                                         log.error(String.format("Could not create access URL for [Kubernetes-service] %s , " +
                                                 "since Public IP is not available", kubernetesService.getId()));

http://git-wip-us.apache.org/repos/asf/stratos/blob/c646d2d2/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
index f1615c5..a8adbcc 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/services/impl/CloudControllerServiceImpl.java
@@ -1101,7 +1101,7 @@ public class CloudControllerServiceImpl implements CloudControllerService {
                 cluster.setLbCluster(false);
                 cluster.setTenantRange(appClusterCtxt.getTenantRange());
                 cluster.setHostNames(Arrays.asList(appClusterCtxt.getHostName()));
-                cluster.setAccessUrls(accessUrls.get(appClusterCtxt.getClusterId()));
+                cluster.setAccessUrlsMap(accessUrls);
 
                 if (appClusterCtxt.getProperties() != null) {
                     Properties properties = CloudControllerUtil.toJavaUtilProperties(appClusterCtxt.getProperties());

http://git-wip-us.apache.org/repos/asf/stratos/blob/c646d2d2/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
index b734499..49b3829 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/domain/topology/Cluster.java
@@ -61,7 +61,7 @@ public class Cluster implements Serializable {
     private Properties properties;
     private Map<String, ClusterInstance> instanceIdToInstanceContextMap;
     //private LifeCycleStateManager<ClusterStatus> clusterStateManager;
-    private List<String> accessUrls;
+    private Map<String,List<String>> accessUrls;
     private List<KubernetesService> kubernetesServices;
 
     public Cluster(Cluster cluster) {
@@ -79,7 +79,7 @@ public class Cluster implements Serializable {
         this.tenantRange = cluster.getTenantRange();
         this.setLbCluster(cluster.isLbCluster());
         this.setKubernetesCluster(cluster.isKubernetesCluster());
-        this.accessUrls = cluster.getAccessUrls();
+        this.accessUrls = cluster.getAccessUrlsMap();
         this.kubernetesServices = cluster.getKubernetesServices();
     }
 
@@ -93,7 +93,7 @@ public class Cluster implements Serializable {
         this.memberMap = new ConcurrentHashMap<String, Member>();
         this.appId = appId;
         this.setInstanceIdToInstanceContextMap(new ConcurrentHashMap<String, ClusterInstance>());
-        this.accessUrls = new ArrayList<String>();
+        this.accessUrls = new HashMap<>();
         this.kubernetesServices = new ArrayList<KubernetesService>();
     }
 
@@ -334,20 +334,29 @@ public class Cluster implements Serializable {
         return this.instanceIdToInstanceContextMap.values();
     }
 
-    public List<String> getAccessUrls() {
+    public Map<String,List<String>> getAccessUrlsMap() {
         return accessUrls;
     }
 
-    public void setAccessUrls(List<String> accessUrls) {
-        this.accessUrls = accessUrls;
+    public List<String> getAccessUrls(String clusterInstanceId) {
+        return accessUrls.get(clusterInstanceId);
     }
 
-    public void addAccessUrl(String accessUrl) {
-        if (accessUrls == null) {
-            accessUrls = new ArrayList<String>();
+    public void setAccessUrls(String instanceClusterId,List<String> accessUrlSet) {
+        this.accessUrls.put(instanceClusterId, accessUrlSet);
+    }
+
+    public void setAccessUrlsMap(Map<String,List<String>> accessUrls) {
+        this.accessUrls=accessUrls;
+    }
+
+    public void addAccessUrl(String clusterInstanceId,String accessUrl) {
+        List<String> strAccessUrl = accessUrls.get(clusterInstanceId);
+        if (strAccessUrl == null) {
+            strAccessUrl = new ArrayList<String>();
         }
-        if (!accessUrls.contains(accessUrl)) {
-            accessUrls.add(accessUrl);
+        if (!strAccessUrl.contains(accessUrl)) {
+            strAccessUrl.add(accessUrl);
         }
     }
 

http://git-wip-us.apache.org/repos/asf/stratos/blob/c646d2d2/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterInstanceActivatedEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterInstanceActivatedEvent.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterInstanceActivatedEvent.java
index 65b262f..eac7d39 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterInstanceActivatedEvent.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/event/topology/ClusterInstanceActivatedEvent.java
@@ -18,11 +18,12 @@
  */
 package org.apache.stratos.messaging.event.topology;
 
-import org.apache.stratos.messaging.domain.topology.KubernetesService;
 import org.apache.stratos.messaging.event.Event;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * Cluster activated event will be sent by Autoscaler
@@ -33,14 +34,14 @@ public class ClusterInstanceActivatedEvent extends Event {
     private final String clusterId;
     private String appId;
     private String instanceId;
-    private List<String> accessUrls;
+    private Map<String,List<String>> accessUrls;
 
     public ClusterInstanceActivatedEvent(String appId, String serviceName, String clusterId, String instanceId) {
         this.serviceName = serviceName;
         this.clusterId = clusterId;
         this.appId = appId;
         this.instanceId = instanceId;
-        this.accessUrls = new ArrayList<String>();
+        this.accessUrls = new HashMap<>();
     }
 
     public String getServiceName() {
@@ -65,20 +66,21 @@ public class ClusterInstanceActivatedEvent extends Event {
         return instanceId;
     }
 
-    public List<String> getAccessUrls() {
-        return accessUrls;
+    public List<String> getAccessUrls(String instanceClusterId) {
+        return accessUrls.get(instanceClusterId);
     }
 
-    public void setAccessUrls(List<String> accessUrls) {
+    public void setAccessUrls(Map<String, List<String>> accessUrls) {
         this.accessUrls = accessUrls;
     }
 
-    public void addAccessUrl(String accessUrl) {
-        if (accessUrls == null) {
-            accessUrls = new ArrayList<String>();
+    public void addAccessUrl(String clusterInstanceId,String accessUrl) {
+        List<String> strAccessUrl=accessUrls.get(clusterInstanceId);
+        if (strAccessUrl == null) {
+            strAccessUrl = new ArrayList<String>();
         }
-        if (!accessUrls.contains(accessUrl)) {
-            accessUrls.add(accessUrl);
+        if (!strAccessUrl.contains(accessUrl)) {
+            strAccessUrl.add(accessUrl);
         }
     }
 }

http://git-wip-us.apache.org/repos/asf/stratos/blob/c646d2d2/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceActivatedProcessor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceActivatedProcessor.java b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceActivatedProcessor.java
index 0aa85b0..fd04994 100644
--- a/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceActivatedProcessor.java
+++ b/components/org.apache.stratos.messaging/src/main/java/org/apache/stratos/messaging/message/processor/topology/ClusterInstanceActivatedProcessor.java
@@ -21,7 +21,10 @@ package org.apache.stratos.messaging.message.processor.topology;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.stratos.messaging.domain.instance.ClusterInstance;
-import org.apache.stratos.messaging.domain.topology.*;
+import org.apache.stratos.messaging.domain.topology.Cluster;
+import org.apache.stratos.messaging.domain.topology.ClusterStatus;
+import org.apache.stratos.messaging.domain.topology.Service;
+import org.apache.stratos.messaging.domain.topology.Topology;
 import org.apache.stratos.messaging.event.topology.ClusterInstanceActivatedEvent;
 import org.apache.stratos.messaging.message.filter.topology.TopologyApplicationFilter;
 import org.apache.stratos.messaging.message.filter.topology.TopologyClusterFilter;
@@ -30,9 +33,6 @@ import org.apache.stratos.messaging.message.processor.MessageProcessor;
 import org.apache.stratos.messaging.message.processor.topology.updater.TopologyUpdater;
 import org.apache.stratos.messaging.util.MessagingUtil;
 
-import java.net.URL;
-import java.util.List;
-
 /**
  * This processor will act upon the cluster activated event
  */
@@ -119,7 +119,7 @@ public class ClusterInstanceActivatedProcessor extends MessageProcessor {
             }
         } else {
             // Apply changes to the topology
-            cluster.setAccessUrls(event.getAccessUrls());
+            cluster.setAccessUrls(event.getInstanceId(),event.getAccessUrls(event.getInstanceId()));
 
             ClusterInstance context = cluster.getInstanceContexts(event.getInstanceId());
             if (context == null) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/c646d2d2/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
index 07a95ac..d73c691 100644
--- a/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
+++ b/components/org.apache.stratos.rest.endpoint/src/main/java/org/apache/stratos/rest/endpoint/util/converter/ObjectConverter.java
@@ -48,7 +48,6 @@ import org.apache.stratos.manager.service.stub.domain.application.signup.Applica
 import org.apache.stratos.manager.service.stub.domain.application.signup.ArtifactRepository;
 import org.apache.stratos.manager.service.stub.domain.application.signup.DomainMapping;
 import org.apache.stratos.messaging.domain.application.Application;
-import org.apache.stratos.messaging.domain.application.ApplicationStatus;
 import org.apache.stratos.messaging.domain.application.Group;
 import org.apache.stratos.messaging.domain.instance.ApplicationInstance;
 import org.apache.stratos.messaging.domain.instance.ClusterInstance;
@@ -717,7 +716,7 @@ public class ObjectConverter {
                 clusterInstanceBean.getMember().add(memberBean);
             }
         }
-        clusterInstanceBean.setAccessUrls(cluster.getAccessUrls());
+        clusterInstanceBean.setAccessUrls(cluster.getAccessUrls(clusterInstanceBean.getInstanceId()));
         for (String hostname : cluster.getHostNames()) {
             clusterInstanceBean.getHostNames().add(hostname);
         }