java-topology/defects/salt/patch/salt-0003-saltclass-seen-set.patch

26 lines
1.1 KiB
Diff

# UNDF: UNDF-2026-000000726
--- a/salt/utils/saltclass.py
+++ b/salt/utils/saltclass.py
@@ -368,7 +368,7 @@ def get_pillars(minion_id, salt_data):
...
expanded_classes = expand_classes_in_order(node_dict[minion_id], salt_data, [], [])
+ expanded_classes = expand_classes_in_order(node_dict[minion_id], salt_data, set(), [])
--- a/salt/utils/saltclass.py
+++ b/salt/utils/saltclass.py
@@ -282,7 +282,7 @@ def expand_classes_in_order(minion_dict, salt_data, seen_classes, classes_to_exp
"""
Expand the list of `classes_to_expand` and return them in the order found
- :param iterable(str) seen_classes: classes already processed
+ :param set seen_classes: classes already processed (set for O(1) membership)
...
"""
@@ -309,7 +309,7 @@ def expand_classes_in_order(minion_dict, salt_data, seen_classes, classes_to_exp
# Now loop on list to recursively expand them
for klass in classes_to_expand:
if klass not in seen_classes:
- seen_classes.append(klass)
+ seen_classes.add(klass)
klass_dict = OrderedDict({klass: get_class(klass, salt_data)})