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 <[email protected]>
Authored: Tue Sep 16 20:17:05 2014 +0530
Committer: Akila Perera <[email protected]>
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;
+                    }
                 }
             }
         }

Reply via email to