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

Reply via email to