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 <[email protected]> Authored: Mon Sep 21 17:36:20 2015 +0530 Committer: gayangunarathne <[email protected]> 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); }
