Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add skip_tags option to Puppet module #6293

Merged
merged 3 commits into from
Apr 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions changelogs/fragments/6293-add-puppet-skip-tags-option.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
minor_changes:
- puppet - add new options ``skip_tags`` to exclude certain tagged resources during a puppet agent or apply (https:/ansible-collections/community.general/pull/6293).

1 change: 1 addition & 0 deletions plugins/module_utils/puppet.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@ def execute_func(execute, manifest):
confdir=cmd_runner_fmt.as_opt_val("--confdir"),
environment=cmd_runner_fmt.as_opt_val("--environment"),
tags=cmd_runner_fmt.as_func(lambda v: ["--tags", ",".join(v)]),
skip_tags=cmd_runner_fmt.as_func(lambda v: ["--skip_tags", ",".join(v)]),
certname=cmd_runner_fmt.as_opt_eq_val("--certname"),
noop=cmd_runner_fmt.as_func(noop_func),
use_srv_records=cmd_runner_fmt.as_map({
Expand Down
13 changes: 11 additions & 2 deletions plugins/modules/puppet.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,12 @@
- A list of puppet tags to be used.
type: list
elements: str
skip_tags:
description:
- A list of puppet tags to be excluded.
type: list
elements: str
jplindquist marked this conversation as resolved.
Show resolved Hide resolved
version_added: 6.6.0
execute:
description:
- Execute a specific piece of Puppet code.
Expand Down Expand Up @@ -143,6 +149,8 @@
tags:
- update
- nginx
skip_tags:
- service

- name: Run puppet agent in noop mode
community.general.puppet:
Expand Down Expand Up @@ -198,6 +206,7 @@ def main():
environment=dict(type='str'),
certname=dict(type='str'),
tags=dict(type='list', elements='str'),
skip_tags=dict(type='list', elements='str'),
execute=dict(type='str'),
summarize=dict(type='bool', default=False),
debug=dict(type='bool', default=False),
Expand Down Expand Up @@ -232,11 +241,11 @@ def main():
runner = puppet_utils.puppet_runner(module)

if not p['manifest'] and not p['execute']:
args_order = "_agent_fixed puppetmaster show_diff confdir environment tags certname noop use_srv_records"
args_order = "_agent_fixed puppetmaster show_diff confdir environment tags skip_tags certname noop use_srv_records"
with runner(args_order) as ctx:
rc, stdout, stderr = ctx.run()
else:
args_order = "_apply_fixed logdest modulepath environment certname tags noop _execute summarize debug verbose"
args_order = "_apply_fixed logdest modulepath environment certname tags skip_tags noop _execute summarize debug verbose"
with runner(args_order) as ctx:
rc, stdout, stderr = ctx.run(_execute=[p['execute'], p['manifest']])

Expand Down
24 changes: 24 additions & 0 deletions tests/unit/plugins/modules/test_puppet.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,30 @@ def mockie(self, path, *args, **kwargs):
"changed": False,
}
],
[
{
"skip_tags": ["d", "e", "f"]
},
{
"id": "puppet_agent_skip_tags_def",
"run_command.calls": [
(
["/testbin/puppet", "config", "print", "agent_disabled_lockfile"],
{"environ_update": {"LANGUAGE": "C", "LC_ALL": "C"}, "check_rc": False},
(0, "blah, anything", "",), # output rc, out, err
),
(
[
"/testbin/timeout", "-s", "9", "30m", "/testbin/puppet", "agent", "--onetime", "--no-daemonize",
"--no-usecacheonfailure", "--no-splay", "--detailed-exitcodes", "--verbose", "--color", "0", "--skip_tags", "d,e,f"
],
{"environ_update": {"LANGUAGE": "C", "LC_ALL": "C"}, "check_rc": False},
(0, "", "",), # output rc, out, err
),
],
"changed": False,
}
]
]
TEST_CASES_IDS = [item[1]["id"] for item in TEST_CASES]

Expand Down