Repository: stratos Updated Branches: refs/heads/stratos-4.1.x 353554754 -> 8c784dff9
Fixes the kubernetes undeploy issue in multiple regions Project: http://git-wip-us.apache.org/repos/asf/stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/8c784dff Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/8c784dff Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/8c784dff Branch: refs/heads/stratos-4.1.x Commit: 8c784dff960ca1a6ee79b551eae8e3a88bb34ba3 Parents: 3535547 Author: gayangunarathne <[email protected]> Authored: Sat Sep 19 21:29:07 2015 +0530 Committer: gayangunarathne <[email protected]> Committed: Sat Sep 19 21:29:07 2015 +0530 ---------------------------------------------------------------------- .../iaases/kubernetes/KubernetesIaas.java | 30 +++++++++----------- 1 file changed, 14 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/stratos/blob/8c784dff/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 cf913b0..e92f68b 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 @@ -133,7 +133,7 @@ public class KubernetesIaas extends Iaas { @Override public void terminateInstance(MemberContext memberContext) throws InvalidCartridgeTypeException, InvalidMemberException, MemberTerminationFailedException { - terminateContainer(memberContext.getMemberId()); + terminateContainer(memberContext); } /** @@ -788,7 +788,7 @@ public class KubernetesIaas extends Iaas { if (memberContexts != null) { for (MemberContext memberContext : memberContexts) { try { - MemberContext memberContextRemoved = terminateContainer(memberContext.getMemberId()); + MemberContext memberContextRemoved = terminateContainer(memberContext); memberContextsRemoved.add(memberContextRemoved); } catch (MemberTerminationFailedException e) { String message = "Could not terminate container: [member-id] " + memberContext.getMemberId(); @@ -810,33 +810,31 @@ public class KubernetesIaas extends Iaas { /** * Terminate a container by member id * - * @param memberId + * @param memberContext * @return * @throws MemberTerminationFailedException */ - public MemberContext terminateContainer(String memberId) throws MemberTerminationFailedException { + public MemberContext terminateContainer(MemberContext memberContext) throws MemberTerminationFailedException { Lock lock = null; try { lock = CloudControllerContext.getInstance().acquireMemberContextWriteLock(); - handleNullObject(memberId, "Could not terminate container, member id is null"); - - MemberContext memberContext = CloudControllerContext.getInstance().getMemberContextOfMemberId(memberId); - handleNullObject(memberContext, "Could not terminate container, member context not found: [member-id] " + memberId); + handleNullObject(memberContext, "Could not terminate container, member context not found"); - String clusterId = memberContext.getClusterId(); - handleNullObject(clusterId, "Could not terminate container, cluster id is null: [member-id] " + memberId); + Partition partition = memberContext.getPartition(); + if (partition == null) { + String message = String.format("Partition not found in member context: [member] %s " , memberContext.getMemberId()); - ClusterContext clusterContext = CloudControllerContext.getInstance().getClusterContext(clusterId); - handleNullObject(clusterContext, String.format("Could not terminate container, cluster context not found: " + - "[cluster-id] %s [member-id] %s", clusterId, memberId)); + log.error(message); + throw new RuntimeException(message); + } - String kubernetesClusterId = clusterContext.getKubernetesClusterId(); + String kubernetesClusterId = memberContext.getPartition().getKubernetesClusterId(); handleNullObject(kubernetesClusterId, String.format("Could not terminate container, kubernetes cluster " + - "context id is null: [cluster-id] %s [member-id] %s", clusterId, memberId)); + "context id is null: [partition-id] %s [member-id] %s", partition.getId(), memberContext.getMemberId())); KubernetesClusterContext kubernetesClusterContext = CloudControllerContext.getInstance().getKubernetesClusterContext(kubernetesClusterId); handleNullObject(kubernetesClusterContext, String.format("Could not terminate container, kubernetes cluster " + - "context not found: [cluster-id] %s [member-id] %s", clusterId, memberId)); + "context not found: [partition-id] %s [member-id] %s", partition.getId(), memberContext.getMemberId())); KubernetesApiClient kubApi = kubernetesClusterContext.getKubApi(); try {
