Skip to content

Commit

Permalink
Add skip_tags option to Puppet module (#6293)
Browse files Browse the repository at this point in the history
* Add Puppet skip_tags option

* Include changelog fragment

* Apply suggestions from code review

Co-authored-by: Felix Fontein <felix@fontein.de>

---------

Co-authored-by: Felix Fontein <felix@fontein.de>
  • Loading branch information
jplindquist and felixfontein authored Apr 13, 2023
1 parent 14b19af commit ea8720f
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 2 deletions.
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://github.com/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
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

0 comments on commit ea8720f

Please sign in to comment.