diff --git a/kayobe/ansible.py b/kayobe/ansible.py index 6a2570761..b93d40c02 100644 --- a/kayobe/ansible.py +++ b/kayobe/ansible.py @@ -58,6 +58,10 @@ def add_args(parser): parser.add_argument("-t", "--tags", metavar="TAGS", help="only run plays and tasks tagged with these " "values") + parser.add_argument("-lt", "--list-tasks", + action="store_true", + help="only print names of tasks, don't run them, " + "note this has no affect on kolla-ansible.") def _get_inventory_path(parsed_args): @@ -110,6 +114,8 @@ def build_args(parsed_args, playbooks, cmd = ["ansible-playbook"] if verbose_level: cmd += ["-" + "v" * verbose_level] + if parsed_args.list_tasks: + cmd += ["--list-tasks"] cmd += vault.build_args(parsed_args) inventory = _get_inventory_path(parsed_args) cmd += ["--inventory", inventory] diff --git a/kayobe/tests/unit/test_ansible.py b/kayobe/tests/unit/test_ansible.py index c379ac4e1..1113cb84d 100644 --- a/kayobe/tests/unit/test_ansible.py +++ b/kayobe/tests/unit/test_ansible.py @@ -68,11 +68,17 @@ class TestCase(unittest.TestCase): "-i", "/path/to/inventory", "-l", "group1:host", "-t", "tag1,tag2", + "-lt", ] parsed_args = parser.parse_args(args) - ansible.run_playbooks(parsed_args, ["playbook1.yml", "playbook2.yml"]) + ansible.run_playbooks( + parsed_args, + ["playbook1.yml", "playbook2.yml"], + verbose_level=2) expected_cmd = [ "ansible-playbook", + "-vv", + "--list-tasks", "--inventory", "/path/to/inventory", "-e", "@/path/to/config/vars-file1.yml", "-e", "@/path/to/config/vars-file2.yaml", @@ -106,11 +112,13 @@ class TestCase(unittest.TestCase): "--inventory", "/path/to/inventory", "--limit", "group1:host1", "--tags", "tag1,tag2", + "--list-tasks", ] parsed_args = parser.parse_args(args) ansible.run_playbooks(parsed_args, ["playbook1.yml", "playbook2.yml"]) expected_cmd = [ "ansible-playbook", + "--list-tasks", "--ask-vault-pass", "--inventory", "/path/to/inventory", "-e", "@/path/to/config/vars-file1.yml",