From c3575e5647cd176a8a902e1af9d2db2b2fd17895 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Fri, 4 Jul 2025 22:12:42 +0200 Subject: [PATCH] Solved other minor bugs --- cli/generate_playbook.py | 2 +- filter_plugins/application_allowed.py | 4 ++-- tests/unit/filter_plugins/test_application_allowed.py | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/generate_playbook.py b/cli/generate_playbook.py index fd35ef52..cb722829 100644 --- a/cli/generate_playbook.py +++ b/cli/generate_playbook.py @@ -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" ) diff --git a/filter_plugins/application_allowed.py b/filter_plugins/application_allowed.py index a03cf31b..3a3f5d04 100644 --- a/filter_plugins/application_allowed.py +++ b/filter_plugins/application_allowed.py @@ -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 diff --git a/tests/unit/filter_plugins/test_application_allowed.py b/tests/unit/filter_plugins/test_application_allowed.py index c7f47972..a327f7fe 100644 --- a/tests/unit/filter_plugins/test_application_allowed.py +++ b/tests/unit/filter_plugins/test_application_allowed.py @@ -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