Skip to content

Commit 6a518e2

Browse files
vishesh92shwstppr
andauthored
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 <abhishek.mrt22@gmail.com>
1 parent f4612c5 commit 6a518e2

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImpl.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,9 @@ public void checkVmCanBeDestroyed(UserVm userVm) {
8484
KubernetesCluster kubernetesCluster = kubernetesClusterDao.findById(vmMapVO.getClusterId());
8585
String msg = "Instance is a part of a Kubernetes cluster";
8686
if (kubernetesCluster != null) {
87+
if (KubernetesCluster.ClusterType.ExternalManaged.equals(kubernetesCluster.getClusterType())) {
88+
return;
89+
}
8790
msg += String.format(": %s", kubernetesCluster.getName());
8891
}
8992
msg += ". Use Instance delete option from Kubernetes cluster details or scale API for " +

plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesServiceHelperImplTest.java

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,14 +58,30 @@ public void testCheckVmCanBeDestroyedNotInCluster() {
5858
}
5959

6060
@Test(expected = CloudRuntimeException.class)
61-
public void testCheckVmCanBeDestroyedInCluster() {
61+
public void testCheckVmCanBeDestroyedInCloudManagedCluster() {
6262
UserVm vm = Mockito.mock(UserVm.class);
6363
Mockito.when(vm.getId()).thenReturn(1L);
6464
Mockito.when(vm.getUserVmType()).thenReturn(UserVmManager.CKS_NODE);
6565
KubernetesClusterVmMapVO map = Mockito.mock(KubernetesClusterVmMapVO.class);
6666
Mockito.when(map.getClusterId()).thenReturn(1L);
6767
Mockito.when(kubernetesClusterVmMapDao.findByVmId(1L)).thenReturn(map);
68-
Mockito.when(kubernetesClusterDao.findById(1L)).thenReturn(Mockito.mock(KubernetesClusterVO.class));
68+
KubernetesClusterVO kubernetesCluster = Mockito.mock(KubernetesClusterVO.class);
69+
Mockito.when(kubernetesClusterDao.findById(1L)).thenReturn(kubernetesCluster);
70+
Mockito.when(kubernetesCluster.getClusterType()).thenReturn(KubernetesCluster.ClusterType.CloudManaged);
71+
kubernetesServiceHelper.checkVmCanBeDestroyed(vm);
72+
}
73+
74+
@Test
75+
public void testCheckVmCanBeDestroyedInExternalManagedCluster() {
76+
UserVm vm = Mockito.mock(UserVm.class);
77+
Mockito.when(vm.getId()).thenReturn(1L);
78+
Mockito.when(vm.getUserVmType()).thenReturn(UserVmManager.CKS_NODE);
79+
KubernetesClusterVmMapVO map = Mockito.mock(KubernetesClusterVmMapVO.class);
80+
Mockito.when(map.getClusterId()).thenReturn(1L);
81+
Mockito.when(kubernetesClusterVmMapDao.findByVmId(1L)).thenReturn(map);
82+
KubernetesClusterVO kubernetesCluster = Mockito.mock(KubernetesClusterVO.class);
83+
Mockito.when(kubernetesClusterDao.findById(1L)).thenReturn(kubernetesCluster);
84+
Mockito.when(kubernetesCluster.getClusterType()).thenReturn(KubernetesCluster.ClusterType.ExternalManaged);
6985
kubernetesServiceHelper.checkVmCanBeDestroyed(vm);
7086
}
7187
}

0 commit comments

Comments
 (0)