Compare commits

..

21 Commits
4.8.7 ... 4.8.9

Author SHA1 Message Date
Felix Fontein
15ad2448f1 Release 4.8.9. 2022-11-06 12:55:53 +01:00
Felix Fontein
ff2b016c66 Drop stable-3 from weekly CI; migrate stable-4 from nightly to weekly.
(cherry picked from commit 90ac53d150)
2022-11-06 12:53:38 +01:00
Felix Fontein
44e522d311 ldap_attrs: escape ldap search filter (#5435) (#5470)
* escape ldap search filter

* move escape to separate line

* add changelog fragment

* Update changelogs/fragments/5435-escape-ldap-param.yml

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

* fix encoding

* fixup! fix encoding

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 1a97ca1a6f)

Co-authored-by: Reto Kupferschmid <kupferschmid@puzzle.ch>
2022-11-06 12:51:22 +01:00
Felix Fontein
b94800036b Prepare 4.8.9 release. 2022-11-06 11:46:22 +01:00
Felix Fontein
d119905bd5 Fix non-matching defaults. (#5452) (#5454)
(cherry picked from commit f84a9bf932)
2022-11-01 20:09:31 +01:00
Felix Fontein
2754d86ac5 Restrict Python 3.6 unit test requirements for elastic-apm. (#5441) 2022-10-29 13:02:29 +02:00
patchback[bot]
03ba48cf78 ldap_attrs: search_s based _is_value_present (#5385) (#5422)
* search_s based _is_value_present

* Fix formatted string and ldap import

* Add changelog fragment

* Remove superfluous import ldap

* Improve fragment

* Code format {x} prefix

* Lower-case fixes

* Fix suggestions to changelog

* Break with the past and let bools be bools

* Let ldap_attrs break on invalid DN's

(cherry picked from commit 091bdc77c3)

Co-authored-by: Martin <github@mrvanes.com>
2022-10-25 08:11:54 +02:00
Felix Fontein
147fbe602c Next expected release is 4.8.9. 2022-10-24 21:52:23 +02:00
Felix Fontein
ec2efb26d0 Release 4.8.8. 2022-10-24 21:03:23 +02:00
Felix Fontein
150495a15f Fix broken changelog fragment.
(cherry picked from commit c88f0f4ca0)
2022-10-24 21:02:44 +02:00
patchback[bot]
b2b3c056ca clarify jc filter usage in the example (#5396) (#5419)
* Update jc.py

##### SUMMARY
<!— Your description here –>

##### ISSUE TYPE
- Docs Pull Request

+label: docsite_pr

* Update jc.py

* Update plugins/filter/jc.py

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

* Update jc.py

* Update plugins/filter/jc.py

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

* Update jc.py

* Update jc.py

* Update jc.py

* Update plugins/filter/jc.py

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

* Update plugins/filter/jc.py

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

* change all of the tags to be FQMN

FQMN = fully qualified module name

* Update jc.py

* Update plugins/filter/jc.py

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

* Update jc.py

* Update jc.py

* Update plugins/filter/jc.py

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

* Update jc.py

* Update plugins/filter/jc.py

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

* Update plugins/filter/jc.py

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

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 70c57dcb6a)

Co-authored-by: Ron Green <11993626+georgettica@users.noreply.github.com>
2022-10-24 20:59:45 +02:00
patchback[bot]
557594c392 pkgng: fix error-handling when upgrading all (#5369) (#5410)
* pkgng: fix error-handling when upgrading all

* provide for rc=1 in check_mode + test

* fix name of task in test

* add changelog fragment

(cherry picked from commit baa8bd52ab)

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
2022-10-23 20:56:12 +02:00
Felix Fontein
b6a6edd403 Prepare 4.8.8 release. 2022-10-23 16:43:35 +02:00
patchback[bot]
e42770d4bf archive: better expose requirements (#5392) (#5401)
* Better expose requirements.

* Move sentence back to notes.

* Update plugins/modules/files/archive.py

Co-authored-by: Maxwell G <gotmax@e.email>

* Break line.

Co-authored-by: Maxwell G <gotmax@e.email>
(cherry picked from commit a023f2a344)

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-10-21 07:21:49 +02:00
patchback[bot]
1b78f18bf4 Do not crash when lzma is not around. (#5393) (#5397)
(cherry picked from commit 5aa1e58749)

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-10-20 20:45:27 +02:00
patchback[bot]
ec11d13825 Fix module. (#5383) (#5387)
(cherry picked from commit c3bdc4b394)

Co-authored-by: Felix Fontein <felix@fontein.de>
2022-10-19 10:30:49 +02:00
patchback[bot]
eb066335f8 [opentelemetry][callback] support opentelemetry-api 1.13 (#5342) (#5378)
* [opentelemetry][callback] support opentelemetry-api 1.13

* [opentelemetry][callback] changelog fragment

* Update changelogs/fragments/5342-opentelemetry_bug_fix_opentelemetry-api-1.13.yml

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

* [opentelemetry-callback] refactor time_ns in a function

* fix linting

* change branch outside of the function

Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>

* [opentelemetry]: remove options from suggestion

* Apply suggestions from code review

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

Co-authored-by: Felix Fontein <felix@fontein.de>
Co-authored-by: Alexei Znamensky <103110+russoz@users.noreply.github.com>
(cherry picked from commit 5732023aa2)

Co-authored-by: Victor Martinez <victormartinezrubio@gmail.com>
2022-10-18 10:38:22 +02:00
patchback[bot]
cb26897b3e Make pfexec become usable for illumos (#3889) (#5338)
* Experimental change from OpenIndiana

* resolve pfexec problem, by removing superfluous quotes

* reimplement "wrap_exe"

* remove spaces arround keyword argument assignment

* adapted pfexec unit test

* Try to fix quoting of test expression

* Fix quoting of test expression by replacing ' with "

* Add changelog fragment

(cherry picked from commit dc2d3c24fa)

Co-authored-by: manschwetusCS <30724946+manschwetusCS@users.noreply.github.com>
2022-10-05 11:03:32 +00:00
patchback[bot]
b7b5c1852e keycloak_user_federation: add explanation and example to vendor option (#4893) (#5335)
* Add explanation and example to vendor option

##### SUMMARY
<!— Your description here –>

##### ISSUE TYPE
- Docs Pull Request

+label: docsite_pr

* Update plugins/modules/identity/keycloak/keycloak_user_federation.py

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

Co-authored-by: Felix Fontein <felix@fontein.de>
(cherry picked from commit 7b86fa6a7d)

Co-authored-by: clovis-monmousseau <58973012+clovis-monmousseau@users.noreply.github.com>
2022-10-05 08:18:45 +02:00
patchback[bot]
97dce1f621 Fix #5313: redhat_subscription module is not idempotent when pool_ids (#5319) (#5329)
This fix ensures the idempotency of the redhat_subscription module when pool_ids are used. The main problem was, that a 'None' quantity was not properly handled and that the quantity check compared a string with an integer.

Signed-off-by: Christoph Fiehe <c.fiehe@eurodata.de>

Signed-off-by: Christoph Fiehe <c.fiehe@eurodata.de>
Co-authored-by: Christoph Fiehe <c.fiehe@eurodata.de>
(cherry picked from commit 6fe2a84e87)

Co-authored-by: cfiehe <cfiehe@users.noreply.github.com>
2022-10-03 20:36:32 +02:00
Felix Fontein
0618af9b1e Next expected release is 4.8.8. 2022-10-03 07:00:06 +02:00
89 changed files with 362 additions and 79 deletions

View File

@@ -24,13 +24,13 @@ schedules:
always: true
branches:
include:
- stable-4
- stable-5
- cron: 0 11 * * 0
displayName: Weekly (old stable branches)
always: true
branches:
include:
- stable-3
- stable-4
variables:
- name: checkoutPath

View File

@@ -6,6 +6,40 @@ Community General Release Notes
This changelog describes changes after version 3.0.0.
v4.8.9
======
Release Summary
---------------
Bugfix release.
Note that from now on, community.general 4.x.y only receives security fixes and major bugfixes, but no longer regular bugfixes.
Bugfixes
--------
- ldap_attrs - fix bug which caused a ``Bad search filter`` error. The error was occuring when the ldap attribute value contained special characters such as ``(`` or ``*`` (https://github.com/ansible-collections/community.general/issues/5434, https://github.com/ansible-collections/community.general/pull/5435).
- ldap_attrs - fix ordering issue by ignoring the ``{x}`` prefix on attribute values (https://github.com/ansible-collections/community.general/issues/977, https://github.com/ansible-collections/community.general/pull/5385).
v4.8.8
======
Release Summary
---------------
Regular bugfix release.
Bugfixes
--------
- archive - avoid crash when ``lzma`` is not present and ``format`` is not ``xz`` (https://github.com/ansible-collections/community.general/pull/5393).
- opentelemetry callback plugin - support opentelemetry-api 1.13.0 that removed support for ``_time_ns`` (https://github.com/ansible-collections/community.general/pull/5342).
- pfexec become plugin - remove superflous quotes preventing exe wrap from working as expected (https://github.com/ansible-collections/community.general/issues/3671, https://github.com/ansible-collections/community.general/pull/3889).
- pkgng - fix case when ``pkg`` fails when trying to upgrade all packages (https://github.com/ansible-collections/community.general/issues/5363).
- redhat_subscription - make module idempotent when ``pool_ids`` are used (https://github.com/ansible-collections/community.general/issues/5313).
- xenserver_facts - fix broken ``AnsibleModule`` call that prevented the module from working at all (https://github.com/ansible-collections/community.general/pull/5383).
v4.8.7
======

View File

@@ -1955,3 +1955,47 @@ releases:
- 5259-gitlab-imports.yaml
- 5282-locale_gen.yaml
release_date: '2022-10-03'
4.8.8:
changes:
bugfixes:
- archive - avoid crash when ``lzma`` is not present and ``format`` is not ``xz``
(https://github.com/ansible-collections/community.general/pull/5393).
- opentelemetry callback plugin - support opentelemetry-api 1.13.0 that removed
support for ``_time_ns`` (https://github.com/ansible-collections/community.general/pull/5342).
- pfexec become plugin - remove superflous quotes preventing exe wrap from working
as expected (https://github.com/ansible-collections/community.general/issues/3671,
https://github.com/ansible-collections/community.general/pull/3889).
- pkgng - fix case when ``pkg`` fails when trying to upgrade all packages (https://github.com/ansible-collections/community.general/issues/5363).
- redhat_subscription - make module idempotent when ``pool_ids`` are used (https://github.com/ansible-collections/community.general/issues/5313).
- xenserver_facts - fix broken ``AnsibleModule`` call that prevented the module
from working at all (https://github.com/ansible-collections/community.general/pull/5383).
release_summary: Regular bugfix release.
fragments:
- 3671-illumos-pfexec.yml
- 4.8.8.yml
- 5313-fix-redhat_subscription-idempotency-pool_ids.yml
- 5342-opentelemetry_bug_fix_opentelemetry-api-1.13.yml
- 5369-pkgng-fix-update-all.yaml
- 5383-xenserver_facts.yml
- 5393-archive.yml
release_date: '2022-10-24'
4.8.9:
changes:
bugfixes:
- ldap_attrs - fix bug which caused a ``Bad search filter`` error. The error
was occuring when the ldap attribute value contained special characters such
as ``(`` or ``*`` (https://github.com/ansible-collections/community.general/issues/5434,
https://github.com/ansible-collections/community.general/pull/5435).
- ldap_attrs - fix ordering issue by ignoring the ``{x}`` prefix on attribute
values (https://github.com/ansible-collections/community.general/issues/977,
https://github.com/ansible-collections/community.general/pull/5385).
release_summary: 'Bugfix release.
Note that from now on, community.general 4.x.y only receives security fixes
and major bugfixes, but no longer regular bugfixes.'
fragments:
- 4.8.9.yml
- 5385-search_s-based-_is_value_present.yaml
- 5435-escape-ldap-param.yml
release_date: '2022-11-06'

View File

@@ -1,6 +1,6 @@
namespace: community
name: general
version: 4.8.7
version: 4.8.9
readme: README.md
authors:
- Ansible (https://github.com/ansible)

View File

@@ -101,4 +101,4 @@ class BecomeModule(BecomeBase):
flags = self.get_option('become_flags')
noexe = not self.get_option('wrap_exe')
return '%s %s "%s"' % (exe, flags, self._build_success_command(cmd, shell, noexe=noexe))
return '%s %s %s' % (exe, flags, self._build_success_command(cmd, shell, noexe=noexe))

View File

@@ -94,13 +94,32 @@ try:
from opentelemetry.sdk.trace.export import (
BatchSpanProcessor
)
from opentelemetry.util._time import _time_ns
# Support for opentelemetry-api <= 1.12
try:
from opentelemetry.util._time import _time_ns
except ImportError as imp_exc:
OTEL_LIBRARY_TIME_NS_ERROR = imp_exc
else:
OTEL_LIBRARY_TIME_NS_ERROR = None
except ImportError as imp_exc:
OTEL_LIBRARY_IMPORT_ERROR = imp_exc
OTEL_LIBRARY_TIME_NS_ERROR = imp_exc
else:
OTEL_LIBRARY_IMPORT_ERROR = None
if sys.version_info >= (3, 7):
time_ns = time.time_ns
elif not OTEL_LIBRARY_TIME_NS_ERROR:
time_ns = _time_ns
else:
def time_ns():
# Support versions older than 3.7 with opentelemetry-api > 1.12
return int(time.time() * 1e9)
class TaskData:
"""
Data about an individual task.
@@ -112,10 +131,7 @@ class TaskData:
self.path = path
self.play = play
self.host_data = OrderedDict()
if sys.version_info >= (3, 7):
self.start = time.time_ns()
else:
self.start = _time_ns()
self.start = time_ns()
self.action = action
self.args = args
@@ -140,10 +156,7 @@ class HostData:
self.name = name
self.status = status
self.result = result
if sys.version_info >= (3, 7):
self.finish = time.time_ns()
else:
self.finish = _time_ns()
self.finish = time_ns()
class OpenTelemetrySource(object):

View File

@@ -42,6 +42,7 @@ options:
- The path on which InfluxDB server is accessible
- Only available when using python-influxdb >= 5.1.0
type: str
default: ''
version_added: '0.2.0'
validate_certs:
description:
@@ -79,4 +80,5 @@ options:
description:
- HTTP(S) proxy to use for Requests to connect to InfluxDB server.
type: dict
default: {}
'''

View File

@@ -22,6 +22,7 @@ options:
description:
- The password to use with I(bind_dn).
type: str
default: ''
dn:
required: true
description:

View File

@@ -16,6 +16,7 @@ options:
- Is needed for some modules
type: dict
required: false
default: {}
utm_host:
description:
- The REST Endpoint of the Sophos UTM.

View File

@@ -51,10 +51,16 @@ DOCUMENTATION = '''
type: boolean
default: false
requirements:
- jc (https://github.com/kellyjonbrazil/jc)
- jc installed as a Python library (U(https://pypi.org/project/jc/))
'''
EXAMPLES = '''
- name: Install the prereqs of the jc filter (jc Python package) on the Ansible controller
delegate_to: localhost
ansible.builtin.pip:
name: jc
state: present
- name: Run command
ansible.builtin.command: uname -a
register: result
@@ -107,15 +113,19 @@ def jc(data, parser, quiet=True, raw=False):
dictionary or list of dictionaries
Example:
- name: run date command
hosts: ubuntu
tasks:
- shell: date
- name: install the prereqs of the jc filter (jc Python package) on the Ansible controller
delegate_to: localhost
ansible.builtin.pip:
name: jc
state: present
- ansible.builtin.shell: date
register: result
- set_fact:
- ansible.builtin.set_fact:
myvar: "{{ result.stdout | community.general.jc('date') }}"
- debug:
- ansible.builtin.debug:
msg: "{{ myvar }}"
produces:
@@ -137,7 +147,7 @@ def jc(data, parser, quiet=True, raw=False):
"""
if not HAS_LIB:
raise AnsibleError('You need to install "jc" prior to running jc filter')
raise AnsibleError('You need to install "jc" as a Python library on the Ansible controller prior to running jc filter')
try:
jc_parser = importlib.import_module('jc.parsers.' + parser)

View File

@@ -60,6 +60,7 @@ options:
- The values specified here will be used at installation time as --set arguments for atomic install.
type: list
elements: str
default: []
'''
EXAMPLES = r'''

View File

@@ -44,6 +44,7 @@ options:
description:
- A description of the VLAN.
type: str
default: ''
network_domain:
description:
- The Id or name of the target network domain.
@@ -53,11 +54,13 @@ options:
description:
- The base address for the VLAN's IPv4 network (e.g. 192.168.1.0).
type: str
default: ''
private_ipv4_prefix_size:
description:
- The size of the IPv4 address space, e.g 24.
- Required, if C(private_ipv4_base_address) is specified.
type: int
default: 0
state:
description:
- The desired state for the target VLAN.

View File

@@ -33,6 +33,7 @@ options:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:

View File

@@ -33,6 +33,7 @@ options:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:

View File

@@ -33,6 +33,7 @@ options:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:

View File

@@ -33,6 +33,7 @@ options:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:

View File

@@ -34,6 +34,7 @@ options:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:

View File

@@ -33,6 +33,7 @@ options:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:

View File

@@ -33,6 +33,7 @@ options:
description:
- The timeouts for each operations.
type: dict
default: {}
suboptions:
create:
description:

View File

@@ -36,6 +36,7 @@ options:
description:
- Add the instance to a Display Group in Linode Manager.
type: str
default: ''
linode_id:
description:
- Unique ID of a linode server. This value is read-only in the sense that

View File

@@ -43,6 +43,7 @@ options:
- The default TTL for all records created in the zone. This must be a
valid int from U(https://www.memset.com/apidocs/methods_dns.html#dns.zone_create).
type: int
default: 0
choices: [ 0, 300, 600, 900, 1800, 3600, 7200, 10800, 21600, 43200, 86400 ]
force:
required: false

View File

@@ -43,11 +43,13 @@ options:
description:
- C(SRV) and C(TXT) record priority, in the range 0 > 999 (inclusive).
type: int
default: 0
record:
required: false
description:
- The subdomain to create.
type: str
default: ''
type:
required: true
description:
@@ -64,6 +66,7 @@ options:
description:
- The record's TTL in seconds (will inherit zone's TTL if not explicitly set). This must be a
valid int from U(https://www.memset.com/apidocs/methods_dns.html#dns.zone_record_create).
default: 0
choices: [ 0, 300, 600, 900, 1800, 3600, 7200, 10800, 21600, 43200, 86400 ]
type: int
zone:

View File

@@ -53,6 +53,7 @@ options:
description:
- The RHEV/oVirt cluster in which you want you VM to start.
type: str
default: ''
datacenter:
description:
- The RHEV/oVirt datacenter in which you want you VM to start.

View File

@@ -34,6 +34,7 @@ options:
- The name of the serverless framework project stage to deploy to.
- This uses the serverless framework default "dev".
type: str
default: ''
functions:
description:
- A list of specific functions to deploy.
@@ -41,12 +42,12 @@ options:
- Deprecated parameter, it will be removed in community.general 5.0.0.
type: list
elements: str
default: []
region:
description:
- AWS region to deploy the service to.
- This parameter defaults to C(us-east-1).
type: str
default: ''
deploy:
description:
- Whether or not to deploy artifacts after building them.

View File

@@ -89,6 +89,7 @@ options:
resources selected here will also auto-include any dependencies.
type: list
elements: str
default: []
lock:
description:
- Enable statefile locking, if you use a service that accepts locks (such

View File

@@ -161,9 +161,7 @@ def get_srs(session):
def main():
module = AnsibleModule(
supports_check_mode=True,
)
module = AnsibleModule({}, supports_check_mode=True)
if not HAVE_XENAPI:
module.fail_json(changed=False, msg="python xen api required for this module")

View File

@@ -59,6 +59,7 @@ options:
(port_from, port_to, and source)
type: list
elements: dict
default: []
add_server_ips:
description:
- A list of server identifiers (id or name) to be assigned to a firewall policy.
@@ -66,12 +67,14 @@ options:
type: list
elements: str
required: false
default: []
remove_server_ips:
description:
- A list of server IP ids to be unassigned from a firewall policy. Used in combination with update state.
type: list
elements: str
required: false
default: []
add_rules:
description:
- A list of rules that will be added to an existing firewall policy.
@@ -79,12 +82,14 @@ options:
type: list
elements: dict
required: false
default: []
remove_rules:
description:
- A list of rule ids that will be removed from an existing firewall policy. Used in combination with update state.
type: list
elements: str
required: false
default: []
description:
description:
- Firewall policy description. maxLength=256

View File

@@ -97,6 +97,7 @@ options:
port_balancer, and port_server parameters, in addition to source parameter, which is optional.
type: list
elements: dict
default: []
description:
description:
- Description of the load balancer. maxLength=256
@@ -109,12 +110,14 @@ options:
type: list
elements: str
required: false
default: []
remove_server_ips:
description:
- A list of server IP ids to be unassigned from a load balancer. Used in combination with update state.
type: list
elements: str
required: false
default: []
add_rules:
description:
- A list of rules that will be added to an existing load balancer.
@@ -122,12 +125,14 @@ options:
type: list
elements: dict
required: false
default: []
remove_rules:
description:
- A list of rule ids that will be removed from an existing load balancer. Used in combination with update state.
type: list
elements: str
required: false
default: []
wait:
description:
- wait for the instance to be in state 'running' before returning

View File

@@ -73,6 +73,7 @@ options:
and value is used to advise when the value is exceeded.
type: list
elements: dict
default: []
suboptions:
cpu:
description:
@@ -99,6 +100,7 @@ options:
- Array of ports that will be monitoring.
type: list
elements: dict
default: []
suboptions:
protocol:
description:
@@ -123,6 +125,7 @@ options:
- Array of processes that will be monitoring.
type: list
elements: dict
default: []
suboptions:
process:
description:
@@ -139,48 +142,56 @@ options:
type: list
elements: dict
required: false
default: []
add_processes:
description:
- Processes to add to the monitoring policy.
type: list
elements: dict
required: false
default: []
add_servers:
description:
- Servers to add to the monitoring policy.
type: list
elements: str
required: false
default: []
remove_ports:
description:
- Ports to remove from the monitoring policy.
type: list
elements: str
required: false
default: []
remove_processes:
description:
- Processes to remove from the monitoring policy.
type: list
elements: str
required: false
default: []
remove_servers:
description:
- Servers to remove from the monitoring policy.
type: list
elements: str
required: false
default: []
update_ports:
description:
- Ports to be updated on the monitoring policy.
type: list
elements: dict
required: false
default: []
update_processes:
description:
- Processes to be updated on the monitoring policy.
type: list
elements: dict
required: false
default: []
wait:
description:
- wait for the instance to be in state 'running' before returning

View File

@@ -73,11 +73,13 @@ options:
- List of server identifiers (name or id) to be added to the private network.
type: list
elements: str
default: []
remove_members:
description:
- List of server identifiers (name or id) to be removed from the private network.
type: list
elements: str
default: []
wait:
description:
- wait for the instance to be in state 'running' before returning

View File

@@ -136,6 +136,7 @@ options:
- URL of custom iPXE script for provisioning.
- More about custom iPXE for Packet devices at U(https://help.packet.net/technical/infrastructure/custom-ipxe).
type: str
default: ''
always_pxe:
description:

View File

@@ -37,6 +37,7 @@ options:
- Public SSH keys allowing access to the virtual machine.
type: list
elements: str
default: []
datacenter:
description:
- The datacenter to provision this virtual machine.
@@ -73,6 +74,7 @@ options:
- list of instance ids, currently only used when state='absent' to remove instances.
type: list
elements: str
default: []
count:
description:
- The number of virtual machines to create.

View File

@@ -49,7 +49,7 @@ options:
- Public SSH keys allowing access to the virtual machine.
type: list
elements: str
required: false
default: []
disk_type:
description:
- The disk type of the volume.
@@ -80,7 +80,7 @@ options:
- list of instance ids, currently only used when state='absent' to remove instances.
type: list
elements: str
required: false
default: []
subscription_user:
description:
- The ProfitBricks username. Overrides the PB_SUBSCRIPTION_ID environment variable.

View File

@@ -36,6 +36,7 @@ options:
same play)."
required: false
type: str
default: ''
password:
description:
- Password which match to account to which specified C(email) belong.
@@ -43,6 +44,7 @@ options:
same play)."
required: false
type: str
default: ''
cache:
description: >
In case if single play use blocks management module few times it is
@@ -57,7 +59,7 @@ options:
manage blocks."
- "User's account will be used if value not set or empty."
type: str
required: false
default: ''
application:
description:
- "Name of target PubNub application for which blocks configuration on

View File

@@ -81,17 +81,20 @@ options:
default: 'no'
extra_client_args:
type: dict
default: {}
description:
- A hash of key/value pairs to be used when creating the cloudservers
client. This is considered an advanced option, use it wisely and
with caution.
extra_create_args:
type: dict
default: {}
description:
- A hash of key/value pairs to be used when creating a new server.
This is considered an advanced option, use it wisely and with caution.
files:
type: dict
default: {}
description:
- Files to insert into the instance. remotefilename:localcontent
flavor:
@@ -123,6 +126,7 @@ options:
- keypair
meta:
type: dict
default: {}
description:
- A hash of metadata to associate with the instance
name:

View File

@@ -25,6 +25,7 @@ options:
C(name). This option requires C(pyrax>=1.9.3)
meta:
type: dict
default: {}
description:
- A hash of metadata to associate with the volume
name:

View File

@@ -27,6 +27,7 @@ options:
default: LEAST_CONNECTIONS
meta:
type: dict
default: {}
description:
- A hash of metadata to associate with the instance
name:

View File

@@ -27,6 +27,7 @@ options:
- The container to use for container or metadata operations.
meta:
type: dict
default: {}
description:
- A hash of items to set as metadata values on a container
private:

View File

@@ -39,6 +39,7 @@ options:
Requires an integer, specifying expiration in seconds
meta:
type: dict
default: {}
description:
- A hash of items to set as metadata values on an uploaded file or folder
method:

View File

@@ -29,6 +29,7 @@ options:
- Server name to modify metadata for
meta:
type: dict
default: {}
description:
- A hash of metadata to associate with the instance
author: "Matt Martz (@sivel)"

View File

@@ -86,6 +86,7 @@ options:
I(ip_addresses) hash to resolve an IP address to target.
details:
type: dict
default: {}
description:
- Additional details specific to the check type. Must be a hash of strings
between 1 and 255 characters long, or an array or object containing 0 to
@@ -97,6 +98,7 @@ options:
default: false
metadata:
type: dict
default: {}
description:
- Hash of arbitrary key-value pairs to accompany this check if it fires.
Keys and values must be strings between 1 and 255 characters long.

View File

@@ -37,6 +37,7 @@ options:
bound. Necessary to collect C(agent.) rax_mon_checks against this entity.
named_ip_addresses:
type: dict
default: {}
description:
- Hash of IP addresses that may be referenced by name by rax_mon_checks
added to this entity. Must be a dictionary of with keys that are names
@@ -44,6 +45,7 @@ options:
addresses.
metadata:
type: dict
default: {}
description:
- Hash of arbitrary C(name), C(value) pairs that are passed to associated
rax_mon_alarms. Names and values must all be between 1 and 255 characters

View File

@@ -36,6 +36,7 @@ options:
- manual
files:
type: dict
default: {}
description:
- 'Files to insert into the instance. Hash of C(remotepath: localpath)'
flavor:
@@ -65,6 +66,7 @@ options:
required: true
meta:
type: dict
default: {}
description:
- A hash of metadata to associate with the instance
min_entities:

View File

@@ -65,6 +65,7 @@ options:
tags:
type: list
elements: str
default: []
description:
- List of tags to apply to the load-balancer

View File

@@ -142,6 +142,7 @@ options:
- List of ssh keys by their Id to be assigned to a virtual instance.
type: list
elements: str
default: []
post_uri:
description:
- URL of a post provisioning script to be loaded and executed on virtual instance.

View File

@@ -502,6 +502,12 @@ options:
Only works if wait_for_instances is True.
type: int
do_not_update:
description:
- TODO document.
type: list
default: []
'''
EXAMPLES = '''
# Basic configuration YAML example

View File

@@ -42,11 +42,13 @@ options:
nameserver:
type: list
elements: str
default: []
description:
- List of appropriate name servers. Required if C(state=present).
interfaces:
type: list
elements: str
default: []
description:
- List of interface IP addresses, on which the server should
response this zone. Required if C(state=present).

View File

@@ -44,11 +44,13 @@ options:
- define the whole ldap position of the group, e.g.
C(cn=g123m-1A,cn=classes,cn=schueler,cn=groups,ou=schule,dc=example,dc=com).
type: str
default: ''
ou:
required: false
description:
- LDAP OU, e.g. school for LDAP OU C(ou=school,dc=example,dc=com).
type: str
default: ''
subpath:
required: false
description:

View File

@@ -168,6 +168,7 @@ options:
description:
- List of telephone numbers.
type: list
default: []
postcode:
description:
- Postal code of users business address.
@@ -199,11 +200,13 @@ options:
join."
aliases: [ sambaPrivileges ]
type: list
default: []
samba_user_workstations:
description:
- Allow the authentication only on this Microsoft Windows host.
aliases: [ sambaUserWorkstations ]
type: list
default: []
sambahome:
description:
- Windows home path, e.g. C('\\$FQDN\$USERNAME').

View File

@@ -26,10 +26,12 @@ options:
description:
- The username used to authenticate with
type: str
default: ''
login_password:
description:
- The password used to authenticate with
type: str
default: ''
login_host:
description:
- Host running the database

View File

@@ -65,13 +65,15 @@ options:
type: bool
default: no
notes:
- Requires tarfile, zipfile, gzip and bzip2 packages on target host.
- Requires lzma or backports.lzma if using xz format.
- Can produce I(gzip), I(bzip2), I(lzma) and I(zip) compressed files or archives.
- Can produce I(gzip), I(bzip2), I(lzma), and I(zip) compressed files or archives.
- This module uses C(tarfile), C(zipfile), C(gzip), and C(bz2) packages on the target host to create archives.
These are part of the Python standard library for Python 2 and 3.
requirements:
- Requires C(lzma) (standard library of Python 3) or L(backports.lzma, https://pypi.org/project/backports.lzma/) (Python 2) if using C(xz) format.
seealso:
- module: ansible.builtin.unarchive
- module: ansible.builtin.unarchive
author:
- Ben Doherty (@bendoh)
- Ben Doherty (@bendoh)
'''
EXAMPLES = r'''
@@ -581,6 +583,11 @@ class TarArchive(Archive):
self.file.add(path, archive_name, recursive=False, exclude=py26_filter)
def _get_checksums(self, path):
if HAS_LZMA:
LZMAError = lzma.LZMAError
else:
# Just picking another exception that's also listed below
LZMAError = tarfile.ReadError
try:
if self.format == 'xz':
with lzma.open(_to_native_ascii(path), 'r') as f:
@@ -591,7 +598,7 @@ class TarArchive(Archive):
archive = tarfile.open(_to_native_ascii(path), 'r|' + self.format)
checksums = set((info.name, info.chksum) for info in archive.getmembers())
archive.close()
except (lzma.LZMAError, tarfile.ReadError, tarfile.CompressionError):
except (LZMAError, tarfile.ReadError, tarfile.CompressionError):
try:
# The python implementations of gzip, bz2, and lzma do not support restoring compressed files
# to their original names so only file checksum is returned

View File

@@ -39,6 +39,7 @@ options:
- The namespace C(prefix:uri) mapping for the XPath expression.
- Needs to be a C(dict), not a C(list) of items.
type: dict
default: {}
state:
description:
- Set or remove an xpath selection (node(s), attribute(s)).

View File

@@ -129,6 +129,7 @@ options:
vendor:
description:
- LDAP vendor (provider).
- Use short name. For instance, write C(rhds) for "Red Hat Directory Server".
type: str
usernameLDAPAttribute:

View File

@@ -85,7 +85,6 @@ options:
description:
- The secret key for your subdomain.
- Only required for initial sign in.
default: {}
required: False
cli_path:
type: path

View File

@@ -52,14 +52,12 @@ options:
elements: str
description:
- List of handlers to notify when the check fails
default: []
subscribers:
type: list
elements: str
description:
- List of subscribers/channels this check should run for
- See sensu_subscribers to subscribe a machine to a channel
default: []
interval:
type: int
description:
@@ -91,7 +89,6 @@ options:
elements: str
description:
- Other checks this check depends on, if dependencies fail handling of this check will be disabled
default: []
metric:
description:
- Whether the check is a metric
@@ -137,7 +134,6 @@ options:
description:
- A hash/dictionary of custom parameters for mixing to the configuration.
- You can't rewrite others module parameters using this
default: {}
source:
type: str
description:

View File

@@ -61,6 +61,7 @@ options:
type: str
description:
- The prefix to add to the metric.
default: ''
value:
type: int
required: true

View File

@@ -126,7 +126,6 @@ options:
description:
- Name or id of the contact list that the monitor will notify.
- The default C('') means the Account Owner.
default: ''
type: str
httpFqdn:

View File

@@ -41,27 +41,22 @@ options:
description:
- Network ID.
type: str
default: ''
ip_address:
description:
- IP Address for a reservation or a release.
type: str
default: ''
network_address:
description:
- Network address with CIDR format (e.g., 192.168.310.0).
type: str
default: ''
network_size:
description:
- Network bitmask (e.g. 255.255.255.220) or CIDR format (e.g., /26).
type: str
default: ''
network_name:
description:
- The name of a network.
type: str
default: ''
network_location:
description:
- The parent network id for a given network.

View File

@@ -166,13 +166,15 @@ modlist:
import traceback
from ansible.module_utils.basic import AnsibleModule, missing_required_lib
from ansible.module_utils.common.text.converters import to_native, to_bytes
from ansible.module_utils.common.text.converters import to_native, to_bytes, to_text
from ansible_collections.community.general.plugins.module_utils.ldap import LdapGeneric, gen_specs
import re
LDAP_IMP_ERR = None
try:
import ldap
import ldap.filter
HAS_LDAP = True
except ImportError:
@@ -261,9 +263,11 @@ class LdapAttrs(LdapGeneric):
def _is_value_present(self, name, value):
""" True if the target attribute has the given value. """
try:
is_present = bool(
self.connection.compare_s(self.dn, name, value))
except ldap.NO_SUCH_ATTRIBUTE:
escaped_value = ldap.filter.escape_filter_chars(to_text(value))
filterstr = "(%s=%s)" % (name, escaped_value)
dns = self.connection.search_s(self.dn, ldap.SCOPE_BASE, filterstr)
is_present = len(dns) == 1
except ldap.NO_SUCH_OBJECT:
is_present = False
return is_present

View File

@@ -36,6 +36,7 @@ options:
entries are never modified. To assert specific attribute values on an
existing entry, use M(community.general.ldap_attrs) module instead.
type: dict
default: {}
objectClass:
description:
- If I(state=present), value or list of values to use when creating

View File

@@ -48,12 +48,14 @@ options:
- This is a list, which may contain address and phrase portions.
type: list
elements: str
default: []
bcc:
description:
- The email-address(es) the mail is being 'blind' copied to.
- This is a list, which may contain address and phrase portions.
type: list
elements: str
default: []
subject:
description:
- The subject of the email being sent.

View File

@@ -30,6 +30,7 @@ options:
type: str
description:
- Composer arguments like required package, version and so on.
default: ''
executable:
type: path
description:

View File

@@ -50,6 +50,7 @@ options:
type: str
description:
- The maven classifier coordinate
default: ''
extension:
type: str
description:

View File

@@ -46,6 +46,7 @@ options:
- "remove"
- "checksum"
- "removal-of-dependent-packages"
default: ""
type: str
update_cache:
description:

View File

@@ -72,7 +72,7 @@ options:
extra_args:
description:
- Additional option to pass to pacman when enforcing C(state).
default:
default: ''
type: str
update_cache:
@@ -91,7 +91,7 @@ options:
update_cache_extra_args:
description:
- Additional option to pass to pacman when enforcing C(update_cache).
default:
default: ''
type: str
upgrade:
@@ -104,7 +104,7 @@ options:
upgrade_extra_args:
description:
- Additional option to pass to pacman when enforcing C(upgrade).
default:
default: ''
type: str
notes:

View File

@@ -37,7 +37,7 @@ options:
state:
description:
- State of the package.
- 'Note: "latest" added in 2.7'
- 'Note: C(latest) added in 2.7.'
choices: [ 'present', 'latest', 'absent' ]
required: false
default: present
@@ -148,10 +148,7 @@ def query_package(module, run_pkgng, name):
rc, out, err = run_pkgng('info', '-g', '-e', name)
if rc == 0:
return True
return False
return rc == 0
def query_update(module, run_pkgng, name):
@@ -161,10 +158,7 @@ def query_update(module, run_pkgng, name):
# rc = 1, updates available
rc, out, err = run_pkgng('upgrade', '-g', '-n', name)
if rc == 1:
return True
return False
return rc == 1
def pkgng_older_than(module, pkgng_path, compare_version):
@@ -190,7 +184,7 @@ def upgrade_packages(module, run_pkgng):
pkgng_args = ['upgrade']
pkgng_args.append('-n' if module.check_mode else '-y')
rc, out, err = run_pkgng(*pkgng_args)
rc, out, err = run_pkgng(*pkgng_args, check_rc=(not module.check_mode))
matches = re.findall('^Number of packages to be (?:upgraded|reinstalled): ([0-9]+)', out, re.MULTILINE)
for match in matches:

View File

@@ -151,7 +151,6 @@ options:
When some attribute is not listed in the new list of attributes, the existing
attribute will be removed from C(syspurpose.json) file. Unknown attributes are ignored.
type: dict
default: {}
suboptions:
usage:
description: Syspurpose attribute usage
@@ -592,15 +591,22 @@ class Rhsm(RegistrationBase):
consumed_pools = RhsmPools(self.module, consumed=True)
existing_pools = {}
serials_to_remove = []
for p in consumed_pools:
existing_pools[p.get_pool_id()] = p.QuantityUsed
pool_id = p.get_pool_id()
quantity_used = p.get_quantity_used()
existing_pools[pool_id] = quantity_used
quantity = pool_ids.get(pool_id, 0)
if quantity is not None and quantity != quantity_used:
serials_to_remove.append(p.Serial)
serials_to_remove = [p.Serial for p in consumed_pools if pool_ids.get(p.get_pool_id(), 0) != p.QuantityUsed]
serials = self.unsubscribe(serials=serials_to_remove)
missing_pools = {}
for pool_id, quantity in sorted(pool_ids.items()):
if existing_pools.get(pool_id, 0) != quantity:
quantity_used = existing_pools.get(pool_id, 0)
if quantity is None and quantity_used == 0 or quantity not in (None, 0, quantity_used):
missing_pools[pool_id] = quantity
self.subscribe_by_pool_ids(missing_pools)
@@ -634,6 +640,9 @@ class RhsmPool(object):
def get_pool_id(self):
return getattr(self, 'PoolId', getattr(self, 'PoolID'))
def get_quantity_used(self):
return int(getattr(self, 'QuantityUsed'))
def subscribe(self):
args = "subscription-manager attach --pool %s" % self.get_pool_id()
rc, stdout, stderr = self.module.run_command(args, check_rc=True)

View File

@@ -75,6 +75,7 @@ options:
- especially useful for SCM and rsync grimoires
- makes sense only in pair with C(update_cache)
type: int
default: 0
'''

View File

@@ -68,6 +68,7 @@ options:
- The list of media types appropriate for the image.
type: list
elements: str
default: []
image_url:
description:
- The URL of the image to insert or eject.

View File

@@ -79,7 +79,7 @@ options:
- ' - C(vms_allocated) (int): use null to remove the quota.'
- ' - C(templates_allocated) (int): use null to remove the quota.'
required: false
default: null
default: {}
'''
EXAMPLES = '''

View File

@@ -115,6 +115,7 @@ options:
description:
- Properties of account service to update.
type: dict
default: {}
version_added: '0.2.0'
resource_id:
required: false
@@ -140,6 +141,7 @@ options:
- List of target resource URIs to apply the update to.
type: list
elements: str
default: []
version_added: '0.2.0'
update_creds:
required: false
@@ -171,6 +173,7 @@ options:
- List of media types appropriate for the image.
type: list
elements: str
default: []
image_url:
required: false
description:

View File

@@ -71,6 +71,7 @@ options:
description:
- Setting dict of manager services to update.
type: dict
default: {}
version_added: '0.2.0'
resource_id:
required: false
@@ -90,6 +91,7 @@ options:
description:
- Setting dict of EthernetInterface on OOB controller.
type: dict
default: {}
version_added: '0.2.0'
strip_etag_quotes:
description:
@@ -105,6 +107,7 @@ options:
description:
- Setting dict of HostInterface on OOB controller.
type: dict
default: {}
version_added: '4.1.0'
hostinterface_id:
required: false

View File

@@ -73,12 +73,14 @@ options:
- Rack to be used in host creation.
- Required if I(state) is C(present) and host does not yet exist.
type: int
default: 0
rank:
description:
- Rank to be used in host creation.
- In Stacki terminology, the rank is the position of the machine in a rack.
- Required if I(state) is C(present) and host does not yet exist.
type: int
default: 0
network:
description:
- Network to be configured in the host.

View File

@@ -54,6 +54,7 @@ options:
- Branch name of wildcard to trigger hook on push events
type: str
version_added: '0.2.0'
default: ''
issues_events:
description:
- Trigger hook on issues events.

View File

@@ -37,6 +37,7 @@ options:
- A dictionary of zfs properties to be set.
- See the zfs(8) man page for more information.
type: dict
default: {}
notes:
- C(check_mode) is supported, but in certain situations it may report a task
as changed that will not be reported as changed when C(check_mode) is disabled.

View File

@@ -51,6 +51,7 @@ options:
description:
- Specifies recursion depth.
type: int
default: 0
'''
EXAMPLES = '''

View File

@@ -61,11 +61,13 @@ options:
description:
- Free-form options to be passed to the mklv command.
type: str
default: ''
pvs:
description:
- A list of physical volumes e.g. C(hdisk1,hdisk2).
type: list
elements: str
default: []
'''
EXAMPLES = r'''

View File

@@ -55,7 +55,6 @@ options:
description:
- Password for importing from PKCS12 keystore.
type: str
default: ''
pkcs12_alias:
description:
- Alias in the PKCS12 keystore.

View File

@@ -41,6 +41,7 @@ options:
description:
- Additional options to pass to C(pvcreate) when creating the volume group.
type: str
default: ''
pvresize:
description:
- If C(yes), resize the physical volume to the maximum available size.
@@ -51,6 +52,7 @@ options:
description:
- Additional options to pass to C(vgcreate) when creating the volume group.
type: str
default: ''
state:
description:
- Control if the volume group exists.

View File

@@ -37,6 +37,7 @@ options:
description:
- Name of the SELinux policy store to use.
type: str
default: ''
notes:
- Requires a recent version of SELinux and C(policycoreutils-python) (EL 6 or newer).
requirements: [ policycoreutils-python ]

View File

@@ -160,6 +160,7 @@ options:
and the JIRA REST API for the structure required for various fields.
- When passed to comment, the data structure is merged at the first level since community.general 4.6.0. Useful to add JIRA properties for example.
- Note that JIRA may not allow changing field values on specific transitions or states.
default: {}
jql:
required: false

View File

@@ -32,10 +32,12 @@ options:
- List of adirectory group strings.
type: list
elements: str
default: []
adirectory_groups_sids:
description:
- Dictionary of group sids.
type: dict
default: {}
backend_match:
description:
- The backend for the group.
@@ -67,18 +69,22 @@ options:
- List of edirectory group strings.
type: list
elements: str
default: []
ipsec_dn:
description:
- The ipsec dn string.
type: str
default: ''
ldap_attribute:
description:
- The ldap attribute to check against.
type: str
default: ''
ldap_attribute_value:
description:
- The ldap attribute value to check against.
type: str
default: ''
members:
description:
- A list of user ref names (aaa/user).

View File

@@ -41,6 +41,7 @@ options:
type: str
description:
- An optional comment to add to the dns host object
default: ''
hostname:
type: str
description:
@@ -49,6 +50,7 @@ options:
type: str
description:
- The reference name of the interface to use. If not provided the default interface will be used
default: ''
resolved:
description:
- whether the hostname's ipv4 address is already resolved or not

View File

@@ -41,6 +41,7 @@ options:
type: str
description:
- An optional comment to add to the object
default: ''
resolved:
type: bool
description:

View File

@@ -46,6 +46,7 @@ options:
type: str
description:
- The reference name of the auth profile
default: ''
backend:
type: list
elements: str
@@ -56,10 +57,12 @@ options:
type: str
description:
- The path of the backend
default: ''
comment:
type: str
description:
- The optional comment string
default: ''
denied_networks:
type: list
elements: str

View File

@@ -23,6 +23,37 @@
# Make sure we start fresh
# Test setup
- name: prep our files
copy: src={{ item }} dest={{remote_tmp_dir}}/{{ item }}
with_items:
- foo.txt
- bar.txt
- empty.txt
- sub
- sub/subfile.txt
# Run twice without lzma backport installed, to make sure it does not crash
- name: Archive - pre-test - first run
archive:
path: "{{ remote_tmp_dir }}/*.txt"
dest: "{{ remote_tmp_dir }}/archive_pretest_1.tar"
format: "tar"
register: pretest_1
- name: Archive - pre-test - second run
archive:
path: "{{ remote_tmp_dir }}/*.txt"
dest: "{{ remote_tmp_dir }}/archive_pretest_1.tar"
format: "tar"
register: pretest_2
- name: Archive - validate pre-test
assert:
that:
- pretest_1 is changed
- pretest_2 is not changed
# Install dependencies
- name: Ensure zip is present to create test archive (yum)
yum: name=zip state=latest
when: ansible_facts.pkg_mgr == 'yum'
@@ -74,15 +105,6 @@
when: ansible_python_version.split('.')[0] == '2'
register: backports_lzma_pip
- name: prep our files
copy: src={{ item }} dest={{remote_tmp_dir}}/{{ item }}
with_items:
- foo.txt
- bar.txt
- empty.txt
- sub
- sub/subfile.txt
- name: Define formats to test
set_fact:
formats:

View File

@@ -136,6 +136,42 @@
- pkgng_example4.changed
- not pkgng_example4_idempotent.changed
##
## pkgng - example - state=latest for out-of-date package without privileges
##
- name: Install intentionally out-of-date package and try to upgrade it with unprivileged user
block:
- ansible.builtin.user:
name: powerless
shell: /bin/bash
- name: Create out-of-date test package
import_tasks: create-outofdate-pkg.yml
- name: Install out-of-date test package
command: 'pkg add {{ pkgng_test_outofdate_pkg_path }}'
register: pkgng_example4_nopower_prepare
- name: Check for any available package upgrades with unprivileged user
become: true
become_user: powerless
pkgng:
name: '*'
state: latest
register: pkgng_example4_nopower_wildcard
ignore_errors: true
- name: Remove test out-of-date package
pkgng:
name: '{{ pkgng_test_pkg_name }}'
state: absent
- name: Ensure pkgng upgrades package correctly
assert:
that:
- not pkgng_example4_nopower_prepare.failed
- pkgng_example4_nopower_wildcard.failed
##
## pkgng - example - Install multiple packages in one command
##

View File

@@ -31,7 +31,7 @@ def test_pfexec_basic(mocker, parser, reset_cli_args):
var_options = {}
cmd = call_become_plugin(task, var_options, cmd=default_cmd, executable=default_exe)
print(cmd)
assert re.match('''%s %s "'echo %s; %s'"''' % (pfexec_exe, pfexec_flags, success, default_cmd), cmd) is not None
assert re.match("""%s %s 'echo %s; %s'""" % (pfexec_exe, pfexec_flags, success, default_cmd), cmd) is not None
def test_pfexec(mocker, parser, reset_cli_args):
@@ -53,7 +53,7 @@ def test_pfexec(mocker, parser, reset_cli_args):
var_options = {}
cmd = call_become_plugin(task, var_options, cmd=default_cmd, executable=default_exe)
print(cmd)
assert re.match('''%s %s "'echo %s; %s'"''' % (pfexec_exe, pfexec_flags, success, default_cmd), cmd) is not None
assert re.match("""%s %s 'echo %s; %s'""" % (pfexec_exe, pfexec_flags, success, default_cmd), cmd) is not None
def test_pfexec_varoptions(mocker, parser, reset_cli_args):
@@ -78,4 +78,4 @@ def test_pfexec_varoptions(mocker, parser, reset_cli_args):
}
cmd = call_become_plugin(task, var_options, cmd=default_cmd, executable=default_exe)
print(cmd)
assert re.match('''%s %s "'echo %s; %s'"''' % (pfexec_exe, pfexec_flags, success, default_cmd), cmd) is not None
assert re.match("""%s %s 'echo %s; %s'""" % (pfexec_exe, pfexec_flags, success, default_cmd), cmd) is not None

View File

@@ -36,4 +36,5 @@ dataclasses ; python_version == '3.6'
# opentelemetry-sdk ; python_version >= '3.6' and python_version < '3.10'
# requirement for the elastic callback plugin
elastic-apm ; python_version >= '3.6'
elastic-apm < 6.13.0 ; python_version == '3.6'
elastic-apm ; python_version >= '3.7'