1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00

[PR #6293/ea8720f5 backport][stable-6] Add skip_tags option to Puppet module (#6327)

Add skip_tags option to Puppet module (#6293)

* 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>
(cherry picked from commit ea8720f572)

Co-authored-by: Jon-Paul Lindquist <jonpaul@lindquist.me>
This commit is contained in:
patchback[bot] 2023-04-13 05:09:28 +00:00 committed by GitHub
parent 923d335646
commit 4c399f1c01
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 39 additions and 2 deletions

View file

@ -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).

View file

@ -96,6 +96,7 @@ def puppet_runner(module):
confdir=cmd_runner_fmt.as_opt_val("--confdir"), confdir=cmd_runner_fmt.as_opt_val("--confdir"),
environment=cmd_runner_fmt.as_opt_val("--environment"), environment=cmd_runner_fmt.as_opt_val("--environment"),
tags=cmd_runner_fmt.as_func(lambda v: ["--tags", ",".join(v)]), 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"), certname=cmd_runner_fmt.as_opt_eq_val("--certname"),
noop=cmd_runner_fmt.as_func(noop_func), noop=cmd_runner_fmt.as_func(noop_func),
use_srv_records=cmd_runner_fmt.as_map({ use_srv_records=cmd_runner_fmt.as_map({

View file

@ -81,6 +81,12 @@ options:
- A list of puppet tags to be used. - A list of puppet tags to be used.
type: list type: list
elements: str elements: str
skip_tags:
description:
- A list of puppet tags to be excluded.
type: list
elements: str
version_added: 6.6.0
execute: execute:
description: description:
- Execute a specific piece of Puppet code. - Execute a specific piece of Puppet code.
@ -143,6 +149,8 @@ EXAMPLES = r'''
tags: tags:
- update - update
- nginx - nginx
skip_tags:
- service
- name: Run puppet agent in noop mode - name: Run puppet agent in noop mode
community.general.puppet: community.general.puppet:
@ -198,6 +206,7 @@ def main():
environment=dict(type='str'), environment=dict(type='str'),
certname=dict(type='str'), certname=dict(type='str'),
tags=dict(type='list', elements='str'), tags=dict(type='list', elements='str'),
skip_tags=dict(type='list', elements='str'),
execute=dict(type='str'), execute=dict(type='str'),
summarize=dict(type='bool', default=False), summarize=dict(type='bool', default=False),
debug=dict(type='bool', default=False), debug=dict(type='bool', default=False),
@ -232,11 +241,11 @@ def main():
runner = puppet_utils.puppet_runner(module) runner = puppet_utils.puppet_runner(module)
if not p['manifest'] and not p['execute']: 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: with runner(args_order) as ctx:
rc, stdout, stderr = ctx.run() rc, stdout, stderr = ctx.run()
else: 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: with runner(args_order) as ctx:
rc, stdout, stderr = ctx.run(_execute=[p['execute'], p['manifest']]) rc, stdout, stderr = ctx.run(_execute=[p['execute'], p['manifest']])

View file

@ -102,6 +102,30 @@ TEST_CASES = [
"changed": False, "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] TEST_CASES_IDS = [item[1]["id"] for item in TEST_CASES]