This is an automated email from the ASF dual-hosted git repository.
sureshanaparti pushed a commit to branch 4.19
in repository https://gitbox.apache.org/repos/asf/cloudstack.git
The following commit(s) were added to refs/heads/4.19 by this push:
new 6a518e29b74 Allow deletion of external managed cks nodes (#9183)
6a518e29b74 is described below
commit 6a518e29b74bffe31815400c5f42609d92ddace5
Author: Vishesh <[email protected]>
AuthorDate: Sun Jun 23 22:08:13 2024 +0530
Allow deletion of external managed cks nodes (#9183)
* Allow deleteion of external managed cks nodes
* Fix unit tests
* Update
plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterHelperImpl.java
Co-authored-by: Abhishek Kumar <[email protected]>
---
.../cluster/KubernetesServiceHelperImpl.java | 3 +++
.../cluster/KubernetesServiceHelperImplTest.java | 20 ++++++++++++++++++--
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git
a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImpl.java
b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImpl.java
index 1b149a97de2..9551142d24e 100644
---
a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImpl.java
+++
b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImpl.java
@@ -84,6 +84,9 @@ public class KubernetesServiceHelperImpl extends AdapterBase
implements Kubernet
KubernetesCluster kubernetesCluster =
kubernetesClusterDao.findById(vmMapVO.getClusterId());
String msg = "Instance is a part of a Kubernetes cluster";
if (kubernetesCluster != null) {
+ if
(KubernetesCluster.ClusterType.ExternalManaged.equals(kubernetesCluster.getClusterType()))
{
+ return;
+ }
msg += String.format(": %s", kubernetesCluster.getName());
}
msg += ". Use Instance delete option from Kubernetes cluster details
or scale API for " +
diff --git
a/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImplTest.java
b/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImplTest.java
index 8749fe2b7dc..3e6688e8757 100644
---
a/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImplTest.java
+++
b/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImplTest.java
@@ -58,14 +58,30 @@ public class KubernetesServiceHelperImplTest {
}
@Test(expected = CloudRuntimeException.class)
- public void testCheckVmCanBeDestroyedInCluster() {
+ public void testCheckVmCanBeDestroyedInCloudManagedCluster() {
UserVm vm = Mockito.mock(UserVm.class);
Mockito.when(vm.getId()).thenReturn(1L);
Mockito.when(vm.getUserVmType()).thenReturn(UserVmManager.CKS_NODE);
KubernetesClusterVmMapVO map =
Mockito.mock(KubernetesClusterVmMapVO.class);
Mockito.when(map.getClusterId()).thenReturn(1L);
Mockito.when(kubernetesClusterVmMapDao.findByVmId(1L)).thenReturn(map);
-
Mockito.when(kubernetesClusterDao.findById(1L)).thenReturn(Mockito.mock(KubernetesClusterVO.class));
+ KubernetesClusterVO kubernetesCluster =
Mockito.mock(KubernetesClusterVO.class);
+
Mockito.when(kubernetesClusterDao.findById(1L)).thenReturn(kubernetesCluster);
+
Mockito.when(kubernetesCluster.getClusterType()).thenReturn(KubernetesCluster.ClusterType.CloudManaged);
+ kubernetesServiceHelper.checkVmCanBeDestroyed(vm);
+ }
+
+ @Test
+ public void testCheckVmCanBeDestroyedInExternalManagedCluster() {
+ UserVm vm = Mockito.mock(UserVm.class);
+ Mockito.when(vm.getId()).thenReturn(1L);
+ Mockito.when(vm.getUserVmType()).thenReturn(UserVmManager.CKS_NODE);
+ KubernetesClusterVmMapVO map =
Mockito.mock(KubernetesClusterVmMapVO.class);
+ Mockito.when(map.getClusterId()).thenReturn(1L);
+ Mockito.when(kubernetesClusterVmMapDao.findByVmId(1L)).thenReturn(map);
+ KubernetesClusterVO kubernetesCluster =
Mockito.mock(KubernetesClusterVO.class);
+
Mockito.when(kubernetesClusterDao.findById(1L)).thenReturn(kubernetesCluster);
+
Mockito.when(kubernetesCluster.getClusterType()).thenReturn(KubernetesCluster.ClusterType.ExternalManaged);
kubernetesServiceHelper.checkVmCanBeDestroyed(vm);
}
}