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) {

Reply via email to