Solved other minor bugs

This commit is contained in:
Kevin Veen-Birkenbach 2025-07-04 22:12:42 +02:00
parent 7950a3f517
commit c3575e5647
No known key found for this signature in database
GPG Key ID: 44D8F11FD62F878E
3 changed files with 4 additions and 4 deletions

View File

@ -115,7 +115,7 @@ def generate_playbook_entries(roles_dir, prefix=None):
role = roles[role_name]
entries.append(
f"- name: setup {role['application_id']}\n"
f" when: {role['application_id']} | application_allowed(group_names, allowed_applications)\n"
f" when: ('{role['application_id']}' | application_allowed(group_names, allowed_applications))\n"
f" include_role:\n"
f" name: {role['role_name']}\n"
)

View File

@ -21,7 +21,7 @@ def application_allowed(application_id: str, group_names: list, allowed_applicat
"""
# Ensure group_names is iterable
if not isinstance(group_names, (list, tuple)):
raise AnsibleFilterError(f"Expected group_names to be a list or tuple, got {type(group_names)}")
raise AnsibleFilterError(f"Expected group_names to be a list, str or tuple, got {type(group_names)}")
# Must be part of the host's groups
if application_id not in group_names:
@ -29,7 +29,7 @@ def application_allowed(application_id: str, group_names: list, allowed_applicat
# If allowed_applications provided, only allow if ID is in that list
if allowed_applications:
if not isinstance(allowed_applications, (list, tuple)):
if not isinstance(allowed_applications, (list, tuple, str)):
raise AnsibleFilterError(f"allowed_applications must be a list or tuple if provided, got {type(allowed_applications)}")
return application_id in allowed_applications

View File

@ -31,7 +31,7 @@ class TestApplicationAllowed(unittest.TestCase):
def test_group_names_wrong_type(self):
# invalid group_names type
with self.assertRaises(AnsibleFilterError):
application_allowed('app1', 'not_a_list', None)
application_allowed(1232312, 'not_a_list', None)
def test_allowed_applications_edge_cases(self):
# whitespace-only entries do not affect result