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 11:19:11 UTC

[2/3] stratos git commit: Update the kubernetes service against the cluster instance id

Update the kubernetes service against the cluster instance id


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

Branch: refs/heads/stratos-4.1.x
Commit: de7c53c5c8786f77e34abc2c4a5e7cd771c3930f
Parents: 7645bc5
Author: gayangunarathne <ga...@wso2.com>
Authored: Mon Sep 21 14:42:37 2015 +0530
Committer: gayangunarathne <ga...@wso2.com>
Committed: Mon Sep 21 14:42:37 2015 +0530

----------------------------------------------------------------------
 .../cloud/controller/domain/ClusterContext.java | 37 +++++++++++++++-----
 .../iaases/kubernetes/KubernetesIaas.java       |  8 ++---
 .../messaging/topology/TopologyBuilder.java     |  6 ++--
 3 files changed, 36 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/de7c53c5/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
index 38aa8bf..9e8b7d2 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/domain/ClusterContext.java
@@ -23,9 +23,7 @@ import org.apache.stratos.common.Properties;
 import org.apache.stratos.messaging.domain.topology.KubernetesService;
 
 import java.io.Serializable;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.Map;
+import java.util.*;
 
 /**
  * Holds runtime data of a Cluster.
@@ -46,7 +44,7 @@ public class ClusterContext implements Serializable {
     // on an unregistration.
     private long timeoutInMillis;
     private Properties properties;
-    private Map<String, KubernetesService> kubernetesServices;
+    private Map<String, Map<String,KubernetesService>> kubernetesServices;
 
     public ClusterContext(String applicationId, String cartridgeType, String clusterId, String payload, String hostName,
                           boolean isLbCluster, Properties properties) {
@@ -117,12 +115,35 @@ public class ClusterContext implements Serializable {
         this.properties = properties;
     }
 
-    public Collection<KubernetesService> getKubernetesServices() {
-        return kubernetesServices.values();
+    public Collection<KubernetesService> getKubernetesServices(String clusterInstanceId) {
+        Collection<KubernetesService> arrayKubernetesList = new ArrayList<>();
+        if (kubernetesServices.get(clusterInstanceId) != null) {
+            arrayKubernetesList = kubernetesServices.get(clusterInstanceId).values();
+        }
+        return arrayKubernetesList;
     }
 
-    public void addKubernetesService(KubernetesService kubernetesService) {
-        this.kubernetesServices.put(kubernetesService.getId(), kubernetesService);
+    public Collection<KubernetesService> getAllKubernetesServicesForCluster() {
+
+        Collection<KubernetesService> allServices = new ArrayList<>();
+
+        Iterator<Map.Entry<String, Map<String, KubernetesService>>> kubServicesPerInsatnceEntry = kubernetesServices.entrySet().iterator();
+        while (kubServicesPerInsatnceEntry.hasNext()) {
+            Map.Entry<String, Map<String, KubernetesService>> kubServicePerClusterInstance = kubServicesPerInsatnceEntry.next();
+            Iterator<Map.Entry<String, KubernetesService>> kubServiceEntry = kubServicePerClusterInstance.getValue().entrySet().iterator();
+            while (kubServiceEntry.hasNext()) {
+                allServices.add(kubServiceEntry.next().getValue());
+            }
+
+        }
+        return allServices;
+
+    }
+
+    public void addKubernetesService(String clusterInstanceId,KubernetesService kubernetesService) {
+        HashMap<String, KubernetesService> kubernetesServiceHashMap = new HashMap<>();
+        kubernetesServiceHashMap.put(kubernetesService.getId(), kubernetesService);
+        this.kubernetesServices.put(clusterInstanceId, kubernetesServiceHashMap);
     }
 
     public void removeKubernetesService(String serviceName) {

http://git-wip-us.apache.org/repos/asf/stratos/blob/de7c53c5/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
index cd009fc..5a32c70 100644
--- a/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
+++ b/components/org.apache.stratos.cloud.controller/src/main/java/org/apache/stratos/cloud/controller/iaases/kubernetes/KubernetesIaas.java
@@ -519,7 +519,7 @@ public class KubernetesIaas extends Iaas {
 
         if (clusterPortMappings != null) {
             String serviceName = DigestUtils.md5Hex(clusterId);
-            Collection<KubernetesService> kubernetesServices = clusterContext.getKubernetesServices();
+            Collection<KubernetesService> kubernetesServices = clusterContext.getKubernetesServices(memberContext.getClusterInstanceId());
 
             for (ClusterPortMapping clusterPortMapping : clusterPortMappings) {
                 // Skip if already created
@@ -620,7 +620,7 @@ public class KubernetesIaas extends Iaas {
 
                 kubernetesService.setContainerPort(containerPort);
 
-                clusterContext.addKubernetesService(kubernetesService);
+                clusterContext.addKubernetesService(memberContext.getClusterInstanceId(),kubernetesService);
                 CloudControllerContext.getInstance().persist();
 
                 if (log.isInfoEnabled()) {
@@ -856,7 +856,7 @@ public class KubernetesIaas extends Iaas {
                     + clusterId);
 
             // Remove kubernetes services
-            List<KubernetesService> kubernetesServices = Lists.newArrayList(clusterContext.getKubernetesServices());
+            List<KubernetesService> kubernetesServices = Lists.newArrayList(clusterContext.getAllKubernetesServicesForCluster());
             if (kubernetesServices != null) {
                 for (KubernetesService kubernetesService : kubernetesServices) {
                     try {
@@ -1076,7 +1076,7 @@ public class KubernetesIaas extends Iaas {
 
         if (clusterContext != null) {
             ArrayList<KubernetesService> kubernetesServices =
-                    Lists.newArrayList(clusterContext.getKubernetesServices());
+                    Lists.newArrayList(clusterContext.getAllKubernetesServicesForCluster());
 
             for (KubernetesService kubernetesService : kubernetesServices) {
                 KubernetesClusterContext kubernetesClusterContext =

http://git-wip-us.apache.org/repos/asf/stratos/blob/de7c53c5/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 528c6ae..e94bb52 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
@@ -454,7 +454,7 @@ public class TopologyBuilder {
                 Cluster cluster = service.getCluster(memberContext.getClusterId());
                 String clusterId = cluster.getClusterId();
                 ClusterContext clusterContext = CloudControllerContext.getInstance().getClusterContext(clusterId);
-                List<KubernetesService> kubernetesServices = Lists.newArrayList(clusterContext.getKubernetesServices());
+                List<KubernetesService> kubernetesServices = Lists.newArrayList(clusterContext.getKubernetesServices(memberContext.getClusterInstanceId()));
 
                 if (!kubernetesServices.isEmpty()) {
                     cluster.setKubernetesServices(kubernetesServices);
@@ -605,7 +605,7 @@ public class TopologyBuilder {
                     List<PortMapping> portMappings = Arrays.asList(cartridge.getPortMappings());
                     String clusterId = cluster.getClusterId();
                     ClusterContext clusterContext = CloudControllerContext.getInstance().getClusterContext(clusterId);
-                    Collection<KubernetesService> kubernetesServices = clusterContext.getKubernetesServices();
+                    Collection<KubernetesService> kubernetesServices = clusterContext.getKubernetesServices(instanceActivatedEvent.getClusterInstanceId());
 
                     for (PortMapping portMapping : portMappings) {
                         if (!kubernetesServices.isEmpty()) {
@@ -852,7 +852,7 @@ public class TopologyBuilder {
                         clusterStatusClusterActivatedEvent.getInstanceId());
         try {
             TopologyManager.acquireWriteLock();
-            Collection<KubernetesService> kubernetesServices = clusterContext.getKubernetesServices();
+            Collection<KubernetesService> kubernetesServices = clusterContext.getKubernetesServices(clusterStatusClusterActivatedEvent.getInstanceId());
 
             if (kubernetesServices != null) {