diff --git a/broker/providers/ansible_tower.py b/broker/providers/ansible_tower.py index fa7d8209..fcac68fe 100644 --- a/broker/providers/ansible_tower.py +++ b/broker/providers/ansible_tower.py @@ -443,12 +443,13 @@ def _resolve_labels(self, labels, target): """ label_ids = [] for label in labels: - if result := self.v2.labels.get(name=label).results: + label_expanded = f"{label}={labels[label]}" + if result := self.v2.labels.get(name=label_expanded).results: label_ids.append(result[0].id) else: # label does not exist yet, creating result = self.v2.labels.post( - {"name": label, "organization": target.summary_fields.organization.id} + {"name": label_expanded, "organization": target.summary_fields.organization.id} ) if result: label_ids.append(result.id) @@ -594,10 +595,7 @@ def execute(self, **kwargs): # noqa: PLR0912,PLR0915 - Possible TODO refactor payload["labels"] = self._resolve_labels(labels, target) # record labels also as extra vars - use key=value format kwargs.update( - { - f"_broker_label_{label[0]}": "=".join(label[1:]) - for label in [kv_pair.split("=") for kv_pair in labels] - } + {f"_broker_label_{label[0]}": "=".join(label[1:]) for label in labels.items()} ) elif self.inventory: payload["inventory"] = self.inventory