You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by ra...@apache.org on 2014/09/16 16:47:41 UTC

git commit: Fixing NPE when updating Kubernetes hosts

Repository: stratos
Updated Branches:
  refs/heads/docker-integration 9616b4504 -> 9ae2b3737


Fixing NPE when updating Kubernetes hosts


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

Branch: refs/heads/docker-integration
Commit: 9ae2b3737da8222e5da6b2cf6cdf2a4ebca6d65c
Parents: 9616b45
Author: Akila Perera <ra...@gmail.com>
Authored: Tue Sep 16 20:17:05 2014 +0530
Committer: Akila Perera <ra...@gmail.com>
Committed: Tue Sep 16 20:17:05 2014 +0530

----------------------------------------------------------------------
 .../kubernetes/KubernetesManager.java           | 37 ++++++++++++--------
 1 file changed, 23 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/stratos/blob/9ae2b373/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/kubernetes/KubernetesManager.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/kubernetes/KubernetesManager.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/kubernetes/KubernetesManager.java
index e48bc99..1c45da6 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/kubernetes/KubernetesManager.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/kubernetes/KubernetesManager.java
@@ -143,7 +143,7 @@ public class KubernetesManager {
             throw new InvalidKubernetesHostException("Mandatory field Kubernetes host IP address has not been set " +
                     "for [hostId] " + kubernetesHost.getHostId());
         }
-        if (!InetAddresses.isInetAddress(kubernetesHost.getHostIpAddress())){
+        if (!InetAddresses.isInetAddress(kubernetesHost.getHostIpAddress())) {
             throw new InvalidKubernetesHostException("Kubernetes host ip address is invalid: " + kubernetesHost.getHostIpAddress());
         }
     }
@@ -207,12 +207,17 @@ public class KubernetesManager {
         validateKubernetesHost(kubernetesHost);
         try {
             KubernetesGroup kubernetesGroupStored = getKubernetesGroup(kubernetesGroupId);
+            ArrayList<KubernetesHost> kubernetesHostArrayList;
 
-            if (kubernetesHostExists(kubernetesHost.getHostId())) {
-                throw new InvalidKubernetesHostException("Kubernetes host already exists: [id] " + kubernetesHost.getHostId());
+            if (kubernetesGroupStored.getKubernetesHosts() == null) {
+                kubernetesHostArrayList = new ArrayList<KubernetesHost>();
+            } else {
+                if (kubernetesHostExists(kubernetesHost.getHostId())) {
+                    throw new InvalidKubernetesHostException("Kubernetes host already exists: [id] " + kubernetesHost.getHostId());
+                }
+                kubernetesHostArrayList = new
+                        ArrayList<KubernetesHost>(Arrays.asList(kubernetesGroupStored.getKubernetesHosts()));
             }
-            ArrayList<KubernetesHost> kubernetesHostArrayList = new
-                    ArrayList<KubernetesHost>(Arrays.asList(kubernetesGroupStored.getKubernetesHosts()));
             kubernetesHostArrayList.add(kubernetesHost);
 
             // Update information model
@@ -336,7 +341,7 @@ public class KubernetesManager {
             KubernetesGroup kubernetesGroupStored = getKubernetesGroupContainingHost(kubernetesHostId);
 
             // Kubernetes master can not be removed
-            if (kubernetesGroupStored.getKubernetesMaster().getHostId().equals(kubernetesHostId)){
+            if (kubernetesGroupStored.getKubernetesMaster().getHostId().equals(kubernetesHostId)) {
                 throw new NonExistingKubernetesHostException("Kubernetes master is not allowed to be removed [id] " + kubernetesHostId);
             }
 
@@ -387,12 +392,14 @@ public class KubernetesManager {
             return false;
         }
         for (KubernetesGroup kubernetesGroup : kubernetesGroupsMap.values()) {
-            for (KubernetesHost kubernetesHost : kubernetesGroup.getKubernetesHosts()) {
-                if (kubernetesHost.getHostId().equals(hostId)) {
-                    return true;
+            if (kubernetesGroup.getKubernetesHosts() != null) {
+                for (KubernetesHost kubernetesHost : kubernetesGroup.getKubernetesHosts()) {
+                    if (kubernetesHost.getHostId().equals(hostId)) {
+                        return true;
+                    }
                 }
             }
-            if (kubernetesGroup.getKubernetesMaster().getHostId().equals(hostId)) {
+            if (hostId.equals(kubernetesGroup.getKubernetesMaster().getHostId())) {
                 return true;
             }
         }
@@ -438,12 +445,14 @@ public class KubernetesManager {
             return null;
         }
         for (KubernetesGroup kubernetesGroup : kubernetesGroupsMap.values()) {
-            if (kubernetesGroup.getKubernetesMaster().getHostId().equals(hostId)) {
+            if (hostId.equals(kubernetesGroup.getKubernetesMaster().getHostId())) {
                 return kubernetesGroup;
             }
-            for (KubernetesHost kubernetesHost : kubernetesGroup.getKubernetesHosts()) {
-                if (kubernetesHost.getHostId().equals(hostId)) {
-                    return kubernetesGroup;
+            if (kubernetesGroup.getKubernetesHosts() != null) {
+                for (KubernetesHost kubernetesHost : kubernetesGroup.getKubernetesHosts()) {
+                    if (kubernetesHost.getHostId().equals(hostId)) {
+                        return kubernetesGroup;
+                    }
                 }
             }
         }