Repository: stratos Updated Branches: refs/heads/master 6e4f6e572 -> 6aa985aa6
Moving logic out of ClusterInstanceActivatedProcessor and make all protocols accessible Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/6aa985aa Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/6aa985aa Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/6aa985aa Branch: refs/heads/master Commit: 6aa985aa66dfa42d514d93ff813e075f4ca4b3be Parents: 6e4f6e5 Author: lasinducharith <[email protected]> Authored: Tue Jul 28 17:59:18 2015 +0530 Committer: lasinducharith <[email protected]> Committed: Tue Jul 28 17:59:18 2015 +0530 ---------------------------------------------------------------------- .../messaging/topology/TopologyBuilder.java | 27 +++++++++++++++++++- .../topology/ClusterInstanceActivatedEvent.java | 21 +++++++++++---- .../ClusterInstanceActivatedProcessor.java | 22 +--------------- 3 files changed, 43 insertions(+), 27 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/6aa985aa/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 f04a11f..39638a1 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 @@ -44,6 +44,9 @@ import org.apache.stratos.messaging.event.topology.*; import org.apache.stratos.metadata.client.defaults.DefaultMetaDataServiceClient; import org.apache.stratos.metadata.client.defaults.MetaDataServiceClient; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.util.*; /** @@ -869,9 +872,31 @@ public class TopologyBuilder { TopologyManager.acquireWriteLock(); List<KubernetesService> kubernetesServices = clusterContext.getKubernetesServices(); cluster.setKubernetesServices(kubernetesServices); - clusterInstanceActivatedEvent.setKubernetesServices(kubernetesServices); + + if (kubernetesServices != null) { + // Set kubernetes services + cluster.setKubernetesServices(kubernetesServices); + try { + // Generate access URLs for kubernetes services + for (KubernetesService kubernetesService : kubernetesServices) { + // Public IP = Kubernetes minion public IP + String[] publicIPs = kubernetesService.getPublicIPs(); + if ((publicIPs != null) && (publicIPs.length > 0)) { + for (String publicIP : publicIPs) { + URI accessURL = new URI(kubernetesService.getProtocol(), null, publicIP, + kubernetesService.getPort(), null, null, null); + cluster.addAccessUrl(accessURL.toString()); + clusterInstanceActivatedEvent.addAccessUrl(accessURL.toString()); + } + } + } + } catch (URISyntaxException e) { + log.error("Could not create access URLs for Kubernetes services", e); + } + } ClusterInstance context = cluster.getInstanceContexts(clusterStatusClusterActivatedEvent.getInstanceId()); + if (context == null) { log.warn("Cluster instance context is not found for [cluster] " + clusterStatusClusterActivatedEvent.getClusterId() + " [instance-id] " + http://git-wip-us.apache.org/repos/asf/stratos/blob/6aa985aa/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 7b02f9f..65b262f 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 @@ -21,6 +21,7 @@ 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.List; /** @@ -32,13 +33,14 @@ public class ClusterInstanceActivatedEvent extends Event { private final String clusterId; private String appId; private String instanceId; - private List<KubernetesService> kubernetesServices; + private 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>(); } public String getServiceName() { @@ -63,11 +65,20 @@ public class ClusterInstanceActivatedEvent extends Event { return instanceId; } - public List<KubernetesService> getKubernetesServices() { - return kubernetesServices; + public List<String> getAccessUrls() { + return accessUrls; } - public void setKubernetesServices(List<KubernetesService> kubernetesServices) { - this.kubernetesServices = kubernetesServices; + public void setAccessUrls(List<String> accessUrls) { + this.accessUrls = accessUrls; + } + + public void addAccessUrl(String accessUrl) { + if (accessUrls == null) { + accessUrls = new ArrayList<String>(); + } + if (!accessUrls.contains(accessUrl)) { + accessUrls.add(accessUrl); + } } } http://git-wip-us.apache.org/repos/asf/stratos/blob/6aa985aa/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 3d67d72..0aa85b0 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 @@ -119,27 +119,7 @@ public class ClusterInstanceActivatedProcessor extends MessageProcessor { } } else { // Apply changes to the topology - List<KubernetesService> kubernetesServices = event.getKubernetesServices(); - if (kubernetesServices != null) { - // Set kubernetes services - cluster.setKubernetesServices(kubernetesServices); - try { - // Generate access URLs for kubernetes services - for (KubernetesService kubernetesService : kubernetesServices) { - // Public IP = Kubernetes minion public IP - String[] publicIPs = kubernetesService.getPublicIPs(); - if((publicIPs != null) && (publicIPs.length > 0)) { - for(String publicIP : publicIPs) { - URL accessURL = new URL(kubernetesService.getProtocol(), publicIP, - kubernetesService.getPort(), ""); - cluster.addAccessUrl(accessURL.toString()); - } - } - } - } catch (Exception e) { - log.error("Could not create access URLs for Kubernetes services", e); - } - } + cluster.setAccessUrls(event.getAccessUrls()); ClusterInstance context = cluster.getInstanceContexts(event.getInstanceId()); if (context == null) {
