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; + } } } }
