From 16db13c1b9f4c9eccda3ca57b7d3c55c6fcad46b Mon Sep 17 00:00:00 2001 From: Roman Plevka Date: Sun, 16 Jun 2024 17:33:42 -0400 Subject: [PATCH] fixes #295 - handle Duplicate error while creating aap job labels --- broker/providers/ansible_tower.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/broker/providers/ansible_tower.py b/broker/providers/ansible_tower.py index 51f1b8ce..0ec86c13 100644 --- a/broker/providers/ansible_tower.py +++ b/broker/providers/ansible_tower.py @@ -457,15 +457,21 @@ def _resolve_labels(self, labels, target): label_ids = [] for label in labels: label_expanded = f"{label}={labels[label]}" if labels[label] else label - if result := self.v2.labels.get(name=label_expanded).results: - label_ids.append(result[0].id) - else: - # label does not exist yet, creating + try: result = self.v2.labels.post( {"name": label_expanded, "organization": target.summary_fields.organization.id} ) if result: label_ids.append(result.id) + except awxkit.exceptions.Duplicate: + logger.debug(f"Provider label {label_expanded} already exists on AAP instance") + if result := self.v2.labels.get(name=label_expanded).results: + logger.debug(f"Provider label {label_expanded} retrieved successfully") + label_ids.append(result[0].id) + else: + logger.warning( + f"Provider label {label_expanded} not found on AAP despite AAP returning 400: Duplicate while trying to create it" + ) return label_ids @cached_property