diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java index 035554e38237..148c64694683 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImpl.java @@ -2082,7 +2082,7 @@ public boolean deleteKubernetesCluster(DeleteKubernetesClusterCmd cmd) throws Cl public static boolean checkIfVmsAssociatedWithBackupOffering(List vms) { for(VMInstanceVO vm : vms) { - if (Objects.nonNull(vm.getBackupOfferingId())) { + if (Objects.nonNull(vm) && Objects.nonNull(vm.getBackupOfferingId())) { return true; } } diff --git a/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImplTest.java b/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImplTest.java index 2a381f282de2..ea8697a78009 100644 --- a/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImplTest.java +++ b/plugins/integrations/kubernetes-service/src/test/java/com/cloud/kubernetes/cluster/KubernetesClusterManagerImplTest.java @@ -107,6 +107,36 @@ public class KubernetesClusterManagerImplTest { @InjectMocks KubernetesClusterManagerImpl kubernetesClusterManager; + @Test + public void testCheckBackupOfferingWithOnlyMissingVms() { + Assert.assertFalse(KubernetesClusterManagerImpl.checkIfVmsAssociatedWithBackupOffering( + Arrays.asList(null, null))); + } + + @Test + public void testCheckBackupOfferingWithMissingAndUnassociatedVms() { + VMInstanceVO vm = Mockito.mock(VMInstanceVO.class); + Mockito.when(vm.getBackupOfferingId()).thenReturn(null); + + Assert.assertFalse(KubernetesClusterManagerImpl.checkIfVmsAssociatedWithBackupOffering( + Arrays.asList(null, vm, null))); + } + + @Test + public void testCheckBackupOfferingWithMissingAndAssociatedVms() { + VMInstanceVO vm = Mockito.mock(VMInstanceVO.class); + Mockito.when(vm.getBackupOfferingId()).thenReturn(1L); + + Assert.assertTrue(KubernetesClusterManagerImpl.checkIfVmsAssociatedWithBackupOffering( + Arrays.asList(null, vm))); + } + + @Test + public void testCheckBackupOfferingWithNoVms() { + Assert.assertFalse(KubernetesClusterManagerImpl.checkIfVmsAssociatedWithBackupOffering( + Collections.emptyList())); + } + @Test public void testValidateVpcTierAllocated() { Network network = Mockito.mock(Network.class);