From c58dee04d72807c616d497cc1c28176746e55900 Mon Sep 17 00:00:00 2001 From: Daman Arora Date: Wed, 7 Jan 2026 09:15:46 -0500 Subject: [PATCH] remove affinity group mappings when a cluster is deleted --- .../cluster/KubernetesClusterManagerImpl.java | 1 + .../dao/KubernetesClusterAffinityGroupMapDao.java | 2 ++ .../KubernetesClusterAffinityGroupMapDaoImpl.java | 12 ++++++++++++ 3 files changed, 15 insertions(+) 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 92518c43a61..75e764c52fa 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 @@ -2068,6 +2068,7 @@ public class KubernetesClusterManagerImpl extends ManagerBase implements Kuberne return Transaction.execute((TransactionCallback) status -> { kubernetesClusterDetailsDao.removeDetails(kubernetesClusterId); kubernetesClusterVmMapDao.removeByClusterId(kubernetesClusterId); + kubernetesClusterAffinityGroupMapDao.removeByClusterId(kubernetesClusterId); if (kubernetesClusterDao.remove(kubernetesClusterId)) { deleteProjectKubernetesAccountIfNeeded(cluster); return true; diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/dao/KubernetesClusterAffinityGroupMapDao.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/dao/KubernetesClusterAffinityGroupMapDao.java index 6e25dbbdf5a..8c152153a2c 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/dao/KubernetesClusterAffinityGroupMapDao.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/dao/KubernetesClusterAffinityGroupMapDao.java @@ -26,4 +26,6 @@ public interface KubernetesClusterAffinityGroupMapDao extends GenericDao listByClusterIdAndNodeType(long clusterId, String nodeType); List listAffinityGroupIdsByClusterIdAndNodeType(long clusterId, String nodeType); + + int removeByClusterId(long clusterId); } diff --git a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/dao/KubernetesClusterAffinityGroupMapDaoImpl.java b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/dao/KubernetesClusterAffinityGroupMapDaoImpl.java index 9b802f33cca..f84d4fb9eee 100644 --- a/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/dao/KubernetesClusterAffinityGroupMapDaoImpl.java +++ b/plugins/integrations/kubernetes-service/src/main/java/com/cloud/kubernetes/cluster/dao/KubernetesClusterAffinityGroupMapDaoImpl.java @@ -28,12 +28,17 @@ public class KubernetesClusterAffinityGroupMapDaoImpl extends GenericDaoBase clusterIdAndNodeTypeSearch; + private final SearchBuilder clusterIdSearch; public KubernetesClusterAffinityGroupMapDaoImpl() { clusterIdAndNodeTypeSearch = createSearchBuilder(); clusterIdAndNodeTypeSearch.and("clusterId", clusterIdAndNodeTypeSearch.entity().getClusterId(), SearchCriteria.Op.EQ); clusterIdAndNodeTypeSearch.and("nodeType", clusterIdAndNodeTypeSearch.entity().getNodeType(), SearchCriteria.Op.EQ); clusterIdAndNodeTypeSearch.done(); + + clusterIdSearch = createSearchBuilder(); + clusterIdSearch.and("clusterId", clusterIdSearch.entity().getClusterId(), SearchCriteria.Op.EQ); + clusterIdSearch.done(); } @Override @@ -49,4 +54,11 @@ public class KubernetesClusterAffinityGroupMapDaoImpl extends GenericDaoBase maps = listByClusterIdAndNodeType(clusterId, nodeType); return maps.stream().map(KubernetesClusterAffinityGroupMapVO::getAffinityGroupId).collect(Collectors.toList()); } + + @Override + public int removeByClusterId(long clusterId) { + SearchCriteria sc = clusterIdSearch.create(); + sc.setParameters("clusterId", clusterId); + return remove(sc); + } }