diff --git a/osm_nbi/acm_topic.py b/osm_nbi/acm_topic.py index 27273f9d3b3d312b669204c81e9638e21c5fdf26..12ee1a8f538e594a96f20eb72e8c16004137d209 100644 --- a/osm_nbi/acm_topic.py +++ b/osm_nbi/acm_topic.py @@ -263,14 +263,24 @@ class ACMTopic(BaseTopic, ACMOperationTopic): return def cluster_unique_name_check(self, session, name): + # First check using the method you have for unique name validation self.check_unique_name(session, name) _filter = {"name": name} - topic = "k8sclusters" - if self.db.get_one(topic, _filter, fail_on_empty=False, fail_on_more=False): - raise EngineException( - "name '{}' already exists".format(name), - HTTPStatus.CONFLICT, - ) + topics = [ + "k8sclusters", + "k8sapp", + "k8sinfra_config", + "k8sinfra_controller", + "k8sresource", + ] + + # Loop through each topic to check if the name already exists in any of them + for item in topics: + if self.db.get_one(item, _filter, fail_on_empty=False, fail_on_more=False): + raise EngineException( + f"name '{name}' already exists in topic '{item}'", + HTTPStatus.CONFLICT, + ) def list_both(self, session, filter_q=None, api_req=False): """List all clusters from both new and old APIs"""