ansible-core 2.17.0rc2__py3-none-any.whl → 2.17.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of ansible-core might be problematic. Click here for more details.
- ansible/executor/powershell/exec_wrapper.ps1 +1 -0
- ansible/executor/powershell/module_powershell_wrapper.ps1 +12 -1
- ansible/module_utils/ansible_release.py +1 -1
- ansible/module_utils/csharp/Ansible.Basic.cs +10 -1
- ansible/module_utils/powershell/Ansible.ModuleUtils.AddType.psm1 +30 -5
- ansible/parsing/mod_args.py +17 -3
- ansible/playbook/handler.py +10 -0
- ansible/playbook/task.py +1 -0
- ansible/plugins/filter/splitext.yml +4 -4
- ansible/plugins/filter/win_splitdrive.yml +16 -4
- ansible/plugins/shell/__init__.py +21 -30
- ansible/plugins/shell/sh.py +1 -3
- ansible/plugins/strategy/__init__.py +6 -20
- ansible/release.py +1 -1
- {ansible_core-2.17.0rc2.dist-info → ansible_core-2.17.1.dist-info}/METADATA +1 -1
- {ansible_core-2.17.0rc2.dist-info → ansible_core-2.17.1.dist-info}/RECORD +22 -22
- ansible_test/_internal/pypi_proxy.py +1 -1
- {ansible_core-2.17.0rc2.data → ansible_core-2.17.1.data}/scripts/ansible-test +0 -0
- {ansible_core-2.17.0rc2.dist-info → ansible_core-2.17.1.dist-info}/COPYING +0 -0
- {ansible_core-2.17.0rc2.dist-info → ansible_core-2.17.1.dist-info}/WHEEL +0 -0
- {ansible_core-2.17.0rc2.dist-info → ansible_core-2.17.1.dist-info}/entry_points.txt +0 -0
- {ansible_core-2.17.0rc2.dist-info → ansible_core-2.17.1.dist-info}/top_level.txt +0 -0
|
@@ -178,6 +178,7 @@ $($ErrorRecord.InvocationInfo.PositionMessage)
|
|
|
178
178
|
|
|
179
179
|
Write-AnsibleLog "INFO - converting json raw to a payload" "exec_wrapper"
|
|
180
180
|
$payload = ConvertFrom-AnsibleJson -InputObject $json_raw
|
|
181
|
+
$payload.module_args._ansible_exec_wrapper_warnings = [System.Collections.Generic.List[string]]@()
|
|
181
182
|
|
|
182
183
|
# TODO: handle binary modules
|
|
183
184
|
# TODO: handle persistence
|
|
@@ -29,7 +29,18 @@ if ($csharp_utils.Count -gt 0) {
|
|
|
29
29
|
|
|
30
30
|
# add any C# references so the module does not have to do so
|
|
31
31
|
$new_tmp = [System.Environment]::ExpandEnvironmentVariables($Payload.module_args["_ansible_remote_tmp"])
|
|
32
|
-
|
|
32
|
+
|
|
33
|
+
# We use a fake module object to capture warnings
|
|
34
|
+
$fake_module = [PSCustomObject]@{
|
|
35
|
+
Tmpdir = $new_tmp
|
|
36
|
+
Verbosity = 3
|
|
37
|
+
}
|
|
38
|
+
$warning_func = New-Object -TypeName System.Management.Automation.PSScriptMethod -ArgumentList Warn, {
|
|
39
|
+
param($message)
|
|
40
|
+
$Payload.module_args._ansible_exec_wrapper_warnings.Add($message)
|
|
41
|
+
}
|
|
42
|
+
$fake_module.PSObject.Members.Add($warning_func)
|
|
43
|
+
Add-CSharpType -References $csharp_utils -AnsibleModule $fake_module
|
|
33
44
|
}
|
|
34
45
|
|
|
35
46
|
if ($Payload.ContainsKey("coverage") -and $null -ne $host.Runspace -and $null -ne $host.Runspace.Debugger) {
|
|
@@ -1025,7 +1025,16 @@ namespace Ansible.Basic
|
|
|
1025
1025
|
foreach (DictionaryEntry entry in param)
|
|
1026
1026
|
{
|
|
1027
1027
|
string paramKey = (string)entry.Key;
|
|
1028
|
-
if (
|
|
1028
|
+
if (paramKey == "_ansible_exec_wrapper_warnings")
|
|
1029
|
+
{
|
|
1030
|
+
// Special key used in module_powershell_wrapper to pass
|
|
1031
|
+
// along any warnings that should be returned back to
|
|
1032
|
+
// Ansible.
|
|
1033
|
+
removedParameters.Add(paramKey);
|
|
1034
|
+
foreach (string warning in (IList<string>)entry.Value)
|
|
1035
|
+
Warn(warning);
|
|
1036
|
+
}
|
|
1037
|
+
else if (!legalInputs.Contains(paramKey, StringComparer.OrdinalIgnoreCase))
|
|
1029
1038
|
unsupportedParameters.Add(paramKey);
|
|
1030
1039
|
else if (!legalInputs.Contains(paramKey))
|
|
1031
1040
|
// For backwards compatibility we do not care about the case but we need to warn the users as this will
|
|
@@ -75,7 +75,7 @@ Function Add-CSharpType {
|
|
|
75
75
|
[Switch]$IgnoreWarnings,
|
|
76
76
|
[Switch]$PassThru,
|
|
77
77
|
[Parameter(Mandatory = $true, ParameterSetName = "Module")][Object]$AnsibleModule,
|
|
78
|
-
[Parameter(ParameterSetName = "Manual")][String]$TempPath
|
|
78
|
+
[Parameter(ParameterSetName = "Manual")][String]$TempPath,
|
|
79
79
|
[Parameter(ParameterSetName = "Manual")][Switch]$IncludeDebugInfo,
|
|
80
80
|
[String[]]$CompileSymbols = @()
|
|
81
81
|
)
|
|
@@ -280,9 +280,11 @@ Function Add-CSharpType {
|
|
|
280
280
|
$include_debug = $AnsibleModule.Verbosity -ge 3
|
|
281
281
|
}
|
|
282
282
|
else {
|
|
283
|
-
$temp_path =
|
|
283
|
+
$temp_path = [System.IO.Path]::GetTempPath()
|
|
284
284
|
$include_debug = $IncludeDebugInfo.IsPresent
|
|
285
285
|
}
|
|
286
|
+
$temp_path = Join-Path -Path $temp_path -ChildPath ([Guid]::NewGuid().Guid)
|
|
287
|
+
|
|
286
288
|
$compiler_options = [System.Collections.ArrayList]@("/optimize")
|
|
287
289
|
if ($defined_symbols.Count -gt 0) {
|
|
288
290
|
$compiler_options.Add("/define:" + ([String]::Join(";", $defined_symbols.ToArray()))) > $null
|
|
@@ -304,8 +306,12 @@ Function Add-CSharpType {
|
|
|
304
306
|
)
|
|
305
307
|
|
|
306
308
|
# create a code snippet for each reference and check if we need
|
|
307
|
-
# to reference any extra assemblies
|
|
308
|
-
|
|
309
|
+
# to reference any extra assemblies.
|
|
310
|
+
# CS1610 is a warning when csc.exe failed to delete temporary files.
|
|
311
|
+
# We use our own temp dir deletion mechanism so this doesn't become a
|
|
312
|
+
# fatal error.
|
|
313
|
+
# https://github.com/ansible-collections/ansible.windows/issues/598
|
|
314
|
+
$ignore_warnings = [System.Collections.ArrayList]@('1610')
|
|
309
315
|
$compile_units = [System.Collections.Generic.List`1[System.CodeDom.CodeSnippetCompileUnit]]@()
|
|
310
316
|
foreach ($reference in $References) {
|
|
311
317
|
# scan through code and add any assemblies that match
|
|
@@ -373,7 +379,26 @@ Function Add-CSharpType {
|
|
|
373
379
|
}
|
|
374
380
|
}
|
|
375
381
|
|
|
376
|
-
$
|
|
382
|
+
$null = New-Item -Path $temp_path -ItemType Directory -Force
|
|
383
|
+
try {
|
|
384
|
+
$compile = $provider.CompileAssemblyFromDom($compile_parameters, $compile_units)
|
|
385
|
+
}
|
|
386
|
+
finally {
|
|
387
|
+
# Try to delete the temp path, if this fails and we are running
|
|
388
|
+
# with a module object write a warning instead of failing.
|
|
389
|
+
try {
|
|
390
|
+
[System.IO.Directory]::Delete($temp_path, $true)
|
|
391
|
+
}
|
|
392
|
+
catch {
|
|
393
|
+
$msg = "Failed to cleanup temporary directory '$temp_path' used for compiling C# code."
|
|
394
|
+
if ($AnsibleModule) {
|
|
395
|
+
$AnsibleModule.Warn("$msg Files may still be present after the task is complete. Error: $_")
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
throw "$msg Error: $_"
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
}
|
|
377
402
|
}
|
|
378
403
|
finally {
|
|
379
404
|
foreach ($kvp in $originalEnv.GetEnumerator()) {
|
ansible/parsing/mod_args.py
CHANGED
|
@@ -53,6 +53,17 @@ BUILTIN_TASKS = frozenset(add_internal_fqcns((
|
|
|
53
53
|
)))
|
|
54
54
|
|
|
55
55
|
|
|
56
|
+
def _get_action_context(action_or_module, collection_list):
|
|
57
|
+
module_context = module_loader.find_plugin_with_context(action_or_module, collection_list=collection_list)
|
|
58
|
+
if module_context and module_context.resolved and module_context.action_plugin:
|
|
59
|
+
action_or_module = module_context.action_plugin
|
|
60
|
+
|
|
61
|
+
context = action_loader.find_plugin_with_context(action_or_module, collection_list=collection_list)
|
|
62
|
+
if not context or not context.resolved:
|
|
63
|
+
context = module_context
|
|
64
|
+
return context
|
|
65
|
+
|
|
66
|
+
|
|
56
67
|
class ModuleArgsParser:
|
|
57
68
|
|
|
58
69
|
"""
|
|
@@ -291,6 +302,11 @@ class ModuleArgsParser:
|
|
|
291
302
|
delegate_to = 'localhost'
|
|
292
303
|
action, args = self._normalize_parameters(thing, action=action, additional_args=additional_args)
|
|
293
304
|
|
|
305
|
+
if action is not None and not skip_action_validation:
|
|
306
|
+
context = _get_action_context(action, self._collection_list)
|
|
307
|
+
if context is not None and context.resolved:
|
|
308
|
+
self.resolved_action = context.resolved_fqcn
|
|
309
|
+
|
|
294
310
|
# module: <stuff> is the more new-style invocation
|
|
295
311
|
|
|
296
312
|
# filter out task attributes so we're only querying unrecognized keys as actions/modules
|
|
@@ -306,9 +322,7 @@ class ModuleArgsParser:
|
|
|
306
322
|
is_action_candidate = True
|
|
307
323
|
else:
|
|
308
324
|
try:
|
|
309
|
-
context =
|
|
310
|
-
if not context.resolved:
|
|
311
|
-
context = module_loader.find_plugin_with_context(item, collection_list=self._collection_list)
|
|
325
|
+
context = _get_action_context(item, self._collection_list)
|
|
312
326
|
except AnsibleError as e:
|
|
313
327
|
if e.obj is None:
|
|
314
328
|
e.obj = self._task_ds
|
ansible/playbook/handler.py
CHANGED
|
@@ -37,6 +37,16 @@ class Handler(Task):
|
|
|
37
37
|
''' returns a human-readable representation of the handler '''
|
|
38
38
|
return "HANDLER: %s" % self.get_name()
|
|
39
39
|
|
|
40
|
+
def _validate_listen(self, attr, name, value):
|
|
41
|
+
new_value = self.get_validated_value(name, attr, value, None)
|
|
42
|
+
if self._role is not None:
|
|
43
|
+
for listener in new_value.copy():
|
|
44
|
+
new_value.extend([
|
|
45
|
+
f"{self._role.get_name(include_role_fqcn=True)} : {listener}",
|
|
46
|
+
f"{self._role.get_name(include_role_fqcn=False)} : {listener}",
|
|
47
|
+
])
|
|
48
|
+
setattr(self, name, new_value)
|
|
49
|
+
|
|
40
50
|
@staticmethod
|
|
41
51
|
def load(data, block=None, role=None, task_include=None, variable_manager=None, loader=None):
|
|
42
52
|
t = Handler(block=block, role=role, task_include=task_include)
|
ansible/playbook/task.py
CHANGED
|
@@ -208,6 +208,7 @@ class Task(Base, Conditional, Taggable, CollectionSearch, Notifiable, Delegatabl
|
|
|
208
208
|
# But if it wasn't, we can add the yaml object now to get more detail
|
|
209
209
|
raise AnsibleParserError(to_native(e), obj=ds, orig_exc=e)
|
|
210
210
|
else:
|
|
211
|
+
# Set the resolved action plugin (or if it does not exist, module) for callbacks.
|
|
211
212
|
self.resolved_action = args_parser.resolved_action
|
|
212
213
|
|
|
213
214
|
# the command/shell/script modules used to support the `cmd` arg,
|
|
@@ -14,14 +14,14 @@ DOCUMENTATION:
|
|
|
14
14
|
|
|
15
15
|
EXAMPLES: |
|
|
16
16
|
|
|
17
|
-
# gobble => [ '/etc/make', 'conf' ]
|
|
17
|
+
# gobble => [ '/etc/make', '.conf' ]
|
|
18
18
|
gobble: "{{ '/etc/make.conf' | splitext }}"
|
|
19
19
|
|
|
20
|
-
# file_n_ext => [ 'ansible', 'cfg' ]
|
|
20
|
+
# file_n_ext => [ 'ansible', '.cfg' ]
|
|
21
21
|
file_n_ext: "{{ 'ansible.cfg' | splitext }}"
|
|
22
22
|
|
|
23
|
-
# hoax => ['/etc/hoasdf', '']
|
|
24
|
-
hoax:
|
|
23
|
+
# hoax => [ '/etc/hoasdf', '' ]
|
|
24
|
+
hoax: "{{ '/etc/hoasdf' | splitext }}"
|
|
25
25
|
|
|
26
26
|
RETURN:
|
|
27
27
|
_value:
|
|
@@ -5,6 +5,8 @@ DOCUMENTATION:
|
|
|
5
5
|
short_description: Split a Windows path by the drive letter
|
|
6
6
|
description:
|
|
7
7
|
- Returns a list with the first component being the drive letter and the second, the rest of the path.
|
|
8
|
+
- If the path contains a drive letter, drive will contain everything up to and including the colon.
|
|
9
|
+
- If the path contains a UNC (Universal Naming Convention) path, drive will contain the host name and share, up to but not including the fourth separator.
|
|
8
10
|
options:
|
|
9
11
|
_input:
|
|
10
12
|
description: A Windows path.
|
|
@@ -13,17 +15,27 @@ DOCUMENTATION:
|
|
|
13
15
|
|
|
14
16
|
EXAMPLES: |
|
|
15
17
|
|
|
16
|
-
# To get the last name of a file Windows path, like ['C', '\Users\asdf\foo.txt'] out of 'C:\Users\asdf\foo.txt'
|
|
18
|
+
# To get the last name of a file Windows path, like ['C:', '\Users\asdf\foo.txt'] out of 'C:\Users\asdf\foo.txt'
|
|
17
19
|
{{ mypath | win_splitdrive }}
|
|
18
20
|
|
|
19
|
-
#
|
|
21
|
+
# To get path from UNC (Universal Naming Convention) path, like ['//host/computer', '/dir/a'] out of '//host/computer/dir/a'
|
|
22
|
+
|
|
23
|
+
# just the drive letter, like ['C:'] out of 'C:\Users\asdf\foo.txt'
|
|
24
|
+
{{ mypath | win_splitdrive | first }}
|
|
25
|
+
|
|
26
|
+
# path w/o drive letter, like ['\Users\asdf\foo.txt'] out of 'C:\Users\asdf\foo.txt'
|
|
27
|
+
{{ mypath | win_splitdrive | last }}
|
|
28
|
+
|
|
29
|
+
# just the hostname and share, like ['//host/computer'] out of '//host/computer/dir/a'
|
|
20
30
|
{{ mypath | win_splitdrive | first }}
|
|
21
31
|
|
|
22
|
-
# path w/o
|
|
32
|
+
# path w/o hostname and share, like ['/dir/a'] out of '//host/computer/dir/a'
|
|
23
33
|
{{ mypath | win_splitdrive | last }}
|
|
24
34
|
|
|
25
35
|
RETURN:
|
|
26
36
|
_value:
|
|
27
|
-
description:
|
|
37
|
+
description:
|
|
38
|
+
- List in which the first element is the drive letter with colon and the second the rest of the path.
|
|
39
|
+
- In case of UNC path, first element is the hostname and share and the second the rest of the path.
|
|
28
40
|
type: list
|
|
29
41
|
elements: str
|
|
@@ -85,7 +85,7 @@ class ShellBase(AnsiblePlugin):
|
|
|
85
85
|
return 'ansible-tmp-%s-%s-%s' % (time.time(), os.getpid(), random.randint(0, 2**48))
|
|
86
86
|
|
|
87
87
|
def env_prefix(self, **kwargs):
|
|
88
|
-
return ' '.join(['%s=%s' % (k,
|
|
88
|
+
return ' '.join(['%s=%s' % (k, self.quote(text_type(v))) for k, v in kwargs.items()])
|
|
89
89
|
|
|
90
90
|
def join_path(self, *args):
|
|
91
91
|
return os.path.join(*args)
|
|
@@ -101,41 +101,33 @@ class ShellBase(AnsiblePlugin):
|
|
|
101
101
|
def chmod(self, paths, mode):
|
|
102
102
|
cmd = ['chmod', mode]
|
|
103
103
|
cmd.extend(paths)
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
return ' '.join(cmd)
|
|
104
|
+
return shlex.join(cmd)
|
|
107
105
|
|
|
108
106
|
def chown(self, paths, user):
|
|
109
107
|
cmd = ['chown', user]
|
|
110
108
|
cmd.extend(paths)
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
return ' '.join(cmd)
|
|
109
|
+
return shlex.join(cmd)
|
|
114
110
|
|
|
115
111
|
def chgrp(self, paths, group):
|
|
116
112
|
cmd = ['chgrp', group]
|
|
117
113
|
cmd.extend(paths)
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return ' '.join(cmd)
|
|
114
|
+
return shlex.join(cmd)
|
|
121
115
|
|
|
122
116
|
def set_user_facl(self, paths, user, mode):
|
|
123
117
|
"""Only sets acls for users as that's really all we need"""
|
|
124
118
|
cmd = ['setfacl', '-m', 'u:%s:%s' % (user, mode)]
|
|
125
119
|
cmd.extend(paths)
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
return ' '.join(cmd)
|
|
120
|
+
return shlex.join(cmd)
|
|
129
121
|
|
|
130
122
|
def remove(self, path, recurse=False):
|
|
131
|
-
path =
|
|
123
|
+
path = self.quote(path)
|
|
132
124
|
cmd = 'rm -f '
|
|
133
125
|
if recurse:
|
|
134
126
|
cmd += '-r '
|
|
135
127
|
return cmd + "%s %s" % (path, self._SHELL_REDIRECT_ALLNULL)
|
|
136
128
|
|
|
137
129
|
def exists(self, path):
|
|
138
|
-
cmd = ['test', '-e',
|
|
130
|
+
cmd = ['test', '-e', self.quote(path)]
|
|
139
131
|
return ' '.join(cmd)
|
|
140
132
|
|
|
141
133
|
def mkdtemp(self, basefile=None, system=False, mode=0o700, tmpdir=None):
|
|
@@ -194,8 +186,7 @@ class ShellBase(AnsiblePlugin):
|
|
|
194
186
|
# Check that the user_path to expand is safe
|
|
195
187
|
if user_home_path != '~':
|
|
196
188
|
if not _USER_HOME_PATH_RE.match(user_home_path):
|
|
197
|
-
|
|
198
|
-
user_home_path = shlex.quote(user_home_path)
|
|
189
|
+
user_home_path = self.quote(user_home_path)
|
|
199
190
|
elif username:
|
|
200
191
|
# if present the user name is appended to resolve "that user's home"
|
|
201
192
|
user_home_path += username
|
|
@@ -207,20 +198,20 @@ class ShellBase(AnsiblePlugin):
|
|
|
207
198
|
return 'echo %spwd%s' % (self._SHELL_SUB_LEFT, self._SHELL_SUB_RIGHT)
|
|
208
199
|
|
|
209
200
|
def build_module_command(self, env_string, shebang, cmd, arg_path=None):
|
|
210
|
-
|
|
211
|
-
if
|
|
212
|
-
|
|
201
|
+
env_string = env_string.strip()
|
|
202
|
+
if env_string:
|
|
203
|
+
env_string += ' '
|
|
213
204
|
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
shebang
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
return
|
|
205
|
+
if shebang is None:
|
|
206
|
+
shebang = ''
|
|
207
|
+
|
|
208
|
+
cmd_parts = [
|
|
209
|
+
shebang.removeprefix('#!').strip(),
|
|
210
|
+
cmd.strip(),
|
|
211
|
+
arg_path,
|
|
212
|
+
]
|
|
213
|
+
|
|
214
|
+
return f'{env_string}%s' % shlex.join(cps for cp in cmd_parts if cp and (cps := cp.strip()))
|
|
224
215
|
|
|
225
216
|
def append_command(self, cmd, cmd_to_append):
|
|
226
217
|
"""Append an additional command if supported by the shell"""
|
ansible/plugins/shell/sh.py
CHANGED
|
@@ -13,8 +13,6 @@ extends_documentation_fragment:
|
|
|
13
13
|
- shell_common
|
|
14
14
|
'''
|
|
15
15
|
|
|
16
|
-
import shlex
|
|
17
|
-
|
|
18
16
|
from ansible.plugins.shell import ShellBase
|
|
19
17
|
|
|
20
18
|
|
|
@@ -66,7 +64,7 @@ class ShellModule(ShellBase):
|
|
|
66
64
|
# Quoting gets complex here. We're writing a python string that's
|
|
67
65
|
# used by a variety of shells on the remote host to invoke a python
|
|
68
66
|
# "one-liner".
|
|
69
|
-
shell_escaped_path =
|
|
67
|
+
shell_escaped_path = self.quote(path)
|
|
70
68
|
test = "rc=flag; [ -r %(p)s ] %(shell_or)s rc=2; [ -f %(p)s ] %(shell_or)s rc=1; [ -d %(p)s ] %(shell_and)s rc=3; %(i)s -V 2>/dev/null %(shell_or)s rc=4; [ x\"$rc\" != \"xflag\" ] %(shell_and)s echo \"${rc} \"%(p)s %(shell_and)s exit 0" % dict(p=shell_escaped_path, i=python_interp, shell_and=self._SHELL_AND, shell_or=self._SHELL_OR) # NOQA
|
|
71
69
|
csums = [
|
|
72
70
|
u"({0} -c 'import hashlib; BLOCKSIZE = 65536; hasher = hashlib.sha1();{2}afile = open(\"'{1}'\", \"rb\"){2}buf = afile.read(BLOCKSIZE){2}while len(buf) > 0:{2}\thasher.update(buf){2}\tbuf = afile.read(BLOCKSIZE){2}afile.close(){2}print(hasher.hexdigest())' 2>/dev/null)".format(python_interp, shell_escaped_path, self._SHELL_EMBEDDED_PY_EOL), # NOQA Python > 2.4 (including python3)
|
|
@@ -549,27 +549,13 @@ class StrategyBase:
|
|
|
549
549
|
yield handler
|
|
550
550
|
break
|
|
551
551
|
|
|
552
|
-
|
|
553
|
-
seen = []
|
|
552
|
+
seen = set()
|
|
554
553
|
for handler in handlers:
|
|
555
|
-
if
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
templar,
|
|
561
|
-
)
|
|
562
|
-
if handler._role is not None:
|
|
563
|
-
for listener in listeners.copy():
|
|
564
|
-
listeners.extend([
|
|
565
|
-
handler._role.get_name(include_role_fqcn=True) + ' : ' + listener,
|
|
566
|
-
handler._role.get_name(include_role_fqcn=False) + ' : ' + listener
|
|
567
|
-
])
|
|
568
|
-
if notification in listeners:
|
|
569
|
-
if handler.name and handler.name in seen:
|
|
570
|
-
continue
|
|
571
|
-
seen.append(handler.name)
|
|
572
|
-
yield handler
|
|
554
|
+
if notification in handler.listen:
|
|
555
|
+
if handler.name and handler.name in seen:
|
|
556
|
+
continue
|
|
557
|
+
seen.add(handler.name)
|
|
558
|
+
yield handler
|
|
573
559
|
|
|
574
560
|
@debug_closure
|
|
575
561
|
def _process_pending_results(self, iterator, one_pass=False, max_passes=None):
|
ansible/release.py
CHANGED
|
@@ -3,7 +3,7 @@ ansible/__main__.py,sha256=EnLcULXNtSXkuJ8igEHPPLBTZKAwqXv4PvMEhvzp2Oo,1430
|
|
|
3
3
|
ansible/constants.py,sha256=vRwEcoynqtuKDPKsxKUY94XzrTSV3J0y1slb907DioU,9140
|
|
4
4
|
ansible/context.py,sha256=oKYyfjfWpy8vDeProtqfnqSmuij_t75_5e5t0U_hQ1g,1933
|
|
5
5
|
ansible/keyword_desc.yml,sha256=vE9joFgSeHR4Djl7Bd-HHVCrGByRCrTUmWYZ8LKPZKk,7412
|
|
6
|
-
ansible/release.py,sha256=
|
|
6
|
+
ansible/release.py,sha256=VTnyAY54l_uZVz7YodOpT6Qf0RDKEaJfDOaV0FLB2ow,832
|
|
7
7
|
ansible/_vendor/__init__.py,sha256=2QBeBwT7uG7M3Aw-pIdCpt6XPtHMCpbEKfACYKA7xIg,2033
|
|
8
8
|
ansible/cli/__init__.py,sha256=fzgR82NIGBH3GujIMehhAaP4KYszn4uztuCaFYRUpGk,28718
|
|
9
9
|
ansible/cli/adhoc.py,sha256=quJ9WzRzf3dz_dtDGmahNMffqyNVy1jzQCMo21YL5Qg,8194
|
|
@@ -48,9 +48,9 @@ ansible/executor/powershell/async_wrapper.ps1,sha256=XwYF4S-F3vAUBHd45O9GOTco-oG
|
|
|
48
48
|
ansible/executor/powershell/become_wrapper.ps1,sha256=c0a4nYlFbpoZHzRpRHKgndZbYB18K5t9YJWC_HgBiH8,7439
|
|
49
49
|
ansible/executor/powershell/bootstrap_wrapper.ps1,sha256=8xudggKTMGibFCspF5m2BrJALARd67Rj062qCbKM2eY,487
|
|
50
50
|
ansible/executor/powershell/coverage_wrapper.ps1,sha256=EM4X0tEWw2vMrNVQoxen6y8rYxTB8kEjx3PHoH4Mx5c,8296
|
|
51
|
-
ansible/executor/powershell/exec_wrapper.ps1,sha256=
|
|
51
|
+
ansible/executor/powershell/exec_wrapper.ps1,sha256=RS5uzkSebd7WiR-gh-4mOBi1VUUHItKa4oPrh75xUP8,10231
|
|
52
52
|
ansible/executor/powershell/module_manifest.py,sha256=bq0fOPM_eYTbxMfj7Ka9EIivYpGmNACfqVjZrygElQQ,17368
|
|
53
|
-
ansible/executor/powershell/module_powershell_wrapper.ps1,sha256=
|
|
53
|
+
ansible/executor/powershell/module_powershell_wrapper.ps1,sha256=AkHcfW-qx5AJUqZ02Gvb907oCAYSptRwqb8RVyNJvHg,3581
|
|
54
54
|
ansible/executor/powershell/module_script_wrapper.ps1,sha256=Th1KTjKE3aOul6kRMunUj0EXFf7Jn7WOH-byCap9pqU,872
|
|
55
55
|
ansible/executor/powershell/module_wrapper.ps1,sha256=KFIQHPNnzA88Y4lkzn3B3LH3oz-4AAajU36ju9AZx9g,9042
|
|
56
56
|
ansible/executor/process/__init__.py,sha256=mRvbCJPA-_veSG5ka3v04G5vsarLVDeB3EWFsu6geSI,749
|
|
@@ -140,7 +140,7 @@ ansible/inventory/host.py,sha256=PDb5OTplhfpUIvdHiP2BckUOB1gUl302N-3sW0_sTyg,503
|
|
|
140
140
|
ansible/inventory/manager.py,sha256=45mHgZTAkQ3IjAtrgsNzJXvynC-HIEor-JJE-V3xXN4,29454
|
|
141
141
|
ansible/module_utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
142
142
|
ansible/module_utils/_text.py,sha256=VkWgAnSNVCbTQqZgllUObBFsH3uM4EUW5srl1UR9t1g,544
|
|
143
|
-
ansible/module_utils/ansible_release.py,sha256=
|
|
143
|
+
ansible/module_utils/ansible_release.py,sha256=VTnyAY54l_uZVz7YodOpT6Qf0RDKEaJfDOaV0FLB2ow,832
|
|
144
144
|
ansible/module_utils/api.py,sha256=DWIuLW5gDWuyyDHLLgGnub42Qa8kagDdkf1xDeLAFl4,5784
|
|
145
145
|
ansible/module_utils/basic.py,sha256=1BHf9_6SsFlfeTcYlOqOzbnITG3x8galaBcPm8ec6nE,85703
|
|
146
146
|
ansible/module_utils/connection.py,sha256=q_BdUaST6E44ltHsWPOFOheXK9vKmzaJvP-eQOrOrmE,8394
|
|
@@ -180,7 +180,7 @@ ansible/module_utils/compat/selinux.py,sha256=8OSQ-kzCahoPyja3j25Au7HOINXT_A2bdp
|
|
|
180
180
|
ansible/module_utils/compat/typing.py,sha256=J_K9Ru1-f0KSKO_WhWGRCh0WBNWl6jUmQK1_0yYYZOs,736
|
|
181
181
|
ansible/module_utils/compat/version.py,sha256=ifck3MH9LhxMENpZXOrntEqX6b7X8shknt3Fweg6AzQ,12734
|
|
182
182
|
ansible/module_utils/csharp/Ansible.AccessToken.cs,sha256=4HzIFQKGG3ZTg8tehVcM_ukMi057wxxLdYFZoqsij5I,15871
|
|
183
|
-
ansible/module_utils/csharp/Ansible.Basic.cs,sha256=
|
|
183
|
+
ansible/module_utils/csharp/Ansible.Basic.cs,sha256=xp1pMZNhib3vhR3Wdc5JlDv1SORo4dIGjc17LmnLr1g,78845
|
|
184
184
|
ansible/module_utils/csharp/Ansible.Become.cs,sha256=1yasfX8SpbcIWJWiobr2Ms-Hl5W47_XNSKvwMXOyiz4,30457
|
|
185
185
|
ansible/module_utils/csharp/Ansible.Privilege.cs,sha256=7e46na6k6ygdRwN53bzfIS8O-IwfM1TF_q5DeFH2Z80,19398
|
|
186
186
|
ansible/module_utils/csharp/Ansible.Process.cs,sha256=g6R2PkbxiVBry4bk35ieWwYCAZOi7RSeyKmtOW8j90I,19449
|
|
@@ -260,7 +260,7 @@ ansible/module_utils/facts/virtual/sunos.py,sha256=OcT2yemUKUgF8lHzMNkTqCwD4ScHw
|
|
|
260
260
|
ansible/module_utils/facts/virtual/sysctl.py,sha256=lHR0b-9-1wFJTmVHiK3dRZ8v3MuewU4nn-x-hoFhu-E,5260
|
|
261
261
|
ansible/module_utils/parsing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
262
262
|
ansible/module_utils/parsing/convert_bool.py,sha256=ZEe44iS-9dLnWIK4RAHreTjh4HnO2hMR52C0VLY6q9I,1061
|
|
263
|
-
ansible/module_utils/powershell/Ansible.ModuleUtils.AddType.psm1,sha256=
|
|
263
|
+
ansible/module_utils/powershell/Ansible.ModuleUtils.AddType.psm1,sha256=WOHO9E576ivZk8lOQaujXGnNDzz46pVvmIGjvPKxJsE,20040
|
|
264
264
|
ansible/module_utils/powershell/Ansible.ModuleUtils.ArgvParser.psm1,sha256=x9wTV5jOpoCtFbpZW6GoZEELdL3RNOhdY91QOhYxJqk,3327
|
|
265
265
|
ansible/module_utils/powershell/Ansible.ModuleUtils.Backup.psm1,sha256=ebgpraCNmPwswlLHShgiviTk2thw8ch3ekF5n_I_cXg,1104
|
|
266
266
|
ansible/module_utils/powershell/Ansible.ModuleUtils.CamelConversion.psm1,sha256=ySb9N6g0sWnUpgUMtDyBSBgjtQmvlye3NoXl3fiu_5g,2456
|
|
@@ -348,7 +348,7 @@ ansible/modules/yum_repository.py,sha256=v9nsLd5NLy33ygJ_6IYzknFDPnZaGvyKemWEL58
|
|
|
348
348
|
ansible/parsing/__init__.py,sha256=NMP9ZkK59SNdQktw76aWAXVAm5U2POXLgAK7wH-1h0g,742
|
|
349
349
|
ansible/parsing/ajson.py,sha256=wr13wRYyK_VPBVki-5hisJZZKwi1T4rSi37gWj7zrOU,1254
|
|
350
350
|
ansible/parsing/dataloader.py,sha256=Lm11qSwF3OD7kzrZJWit2UcrC8h1hExKXNPuAdli6eE,20953
|
|
351
|
-
ansible/parsing/mod_args.py,sha256=
|
|
351
|
+
ansible/parsing/mod_args.py,sha256=bDPfCFFYx9DwlJ16CHaIlWK8sXURqFSuJvXHtzcFxs0,14585
|
|
352
352
|
ansible/parsing/plugin_docs.py,sha256=XBpeEALC-eBOZJPM4jPPxbKu0dYDRDyUG4STDUsrf9o,8661
|
|
353
353
|
ansible/parsing/quoting.py,sha256=JokJozzFk7NDxDGTTZerfBntBls1NzNWyK7AQgsH5C8,1057
|
|
354
354
|
ansible/parsing/splitter.py,sha256=gRNuRkAEsf-kpGGezrr7oFO2JkNUSxZy3skAFzGyoAQ,11021
|
|
@@ -369,7 +369,7 @@ ansible/playbook/block.py,sha256=ZQgbwzqh6QcxKbjQkWtVII-kSiWeAMPlIh_U75H-TD0,165
|
|
|
369
369
|
ansible/playbook/collectionsearch.py,sha256=tJN4E9m8dRc_6UNki21htiitiVOMj8T4GR1RCArRMqI,2601
|
|
370
370
|
ansible/playbook/conditional.py,sha256=yqv1fjQEr01myNW7lejWKfCl496IEtvsIUoJ3-eU_XU,4882
|
|
371
371
|
ansible/playbook/delegatable.py,sha256=BBcw2GU85V7ome7qX0KRg-vZyjv2J890kEHjYQOyoTk,625
|
|
372
|
-
ansible/playbook/handler.py,sha256=
|
|
372
|
+
ansible/playbook/handler.py,sha256=EXKDm9FEEPhnnniz3ZtEaQlUCzFl2ne2-Ar41U8wT2U,2689
|
|
373
373
|
ansible/playbook/handler_task_include.py,sha256=kCrBThzmIRWKaecLl9UNB8VBvtVPI0dt8eHpBldsnlY,1391
|
|
374
374
|
ansible/playbook/helpers.py,sha256=f1O_o6VlZeXHdI-Zhq6U_KtT44gvr4-nSVMkDuZ6o20,15160
|
|
375
375
|
ansible/playbook/included_file.py,sha256=-Pd20gvOv2FZW6ReaoicjjIlZiJ1Sc607rFnwtrqycY,11735
|
|
@@ -380,7 +380,7 @@ ansible/playbook/play_context.py,sha256=w5P-lAyN1cr01JgSLw8tnYy4QsSyDFLzbSy_ehuc
|
|
|
380
380
|
ansible/playbook/playbook_include.py,sha256=hr3N_yV4unjhiC2IIdchY0TPSARwlv0SXH9bIsIrbaA,7493
|
|
381
381
|
ansible/playbook/role_include.py,sha256=NCgDHtXlOltJ0XXSgGTTxDVrLC6IBe_d9SgNGXtsI20,7575
|
|
382
382
|
ansible/playbook/taggable.py,sha256=PfbiQhDDafwKja2yIknJTEAHPspb7tPmCRDEO_8gmvY,3165
|
|
383
|
-
ansible/playbook/task.py,sha256=
|
|
383
|
+
ansible/playbook/task.py,sha256=K-qy32w9w_SK6tdPZRn5sobFOrYZFQt2eM9yC7SwKC4,21500
|
|
384
384
|
ansible/playbook/task_include.py,sha256=eGJOfmJj9bgQoTwz3wFvD77x9qWK2rEi20qvA24XDzs,5234
|
|
385
385
|
ansible/playbook/role/__init__.py,sha256=HSvzDNMq8DtNG4jQvZe1UAkR42vyj8Qt1ScgRBZ2MYE,29697
|
|
386
386
|
ansible/playbook/role/definition.py,sha256=ZKs9FI3kqJETFHMh-8lOH6xGY_g2siuTxYgQj5VkcDk,9550
|
|
@@ -510,7 +510,7 @@ ansible/plugins/filter/root.yml,sha256=sT1tsUZ5NBX7LjrPc-08Omg__szm9kOlamivlflJJ
|
|
|
510
510
|
ansible/plugins/filter/sha1.yml,sha256=Un-4PtcF2eCoc22ezn5QcsIotbpGTnRxAcZRzgv1BwM,729
|
|
511
511
|
ansible/plugins/filter/shuffle.yml,sha256=rcdsrsZhe5tMqtF00V8khecdVKmzHnHwkUqIdISrpQQ,685
|
|
512
512
|
ansible/plugins/filter/split.yml,sha256=rLF3diTDl3ZxxGCqEtdjqYPUwZkqlln1rxbKsuM0G_E,835
|
|
513
|
-
ansible/plugins/filter/splitext.yml,sha256=
|
|
513
|
+
ansible/plugins/filter/splitext.yml,sha256=8LnOkRdTaZwm9B560Kt__wquDwyvpKfznvICHIIcRy0,750
|
|
514
514
|
ansible/plugins/filter/strftime.yml,sha256=s4DFNaKyLiQn-vUOUpRQWJP5PLnwRcfb-SKVW0sexaU,1538
|
|
515
515
|
ansible/plugins/filter/subelements.yml,sha256=JKHy2GRpOi5zLXZVRtmZoIs_J8sDEuAR0qiT9RkLWLY,1438
|
|
516
516
|
ansible/plugins/filter/symmetric_difference.yml,sha256=2eqzKo8ZCtAY6xxd5f74TEHNhZ6rVeQVimMSRO_DgnU,1094
|
|
@@ -531,7 +531,7 @@ ansible/plugins/filter/urlsplit.py,sha256=GHNIc-Z3KrsYG-8NuuktR5iEQh3KaG1LfUus0b
|
|
|
531
531
|
ansible/plugins/filter/vault.yml,sha256=best4Ns3YLXITc1KwxLZTdOT41OFSgIJ8itdxlNYcNU,1668
|
|
532
532
|
ansible/plugins/filter/win_basename.yml,sha256=hAdBZBrh80ULOehK9-7XrFiqoOx8Mg9usKAH8WEJogg,673
|
|
533
533
|
ansible/plugins/filter/win_dirname.yml,sha256=nVHAM8iUuXYlc_xE-IO7qAOh2ZMIGZuA4IEgvgnXVtI,679
|
|
534
|
-
ansible/plugins/filter/win_splitdrive.yml,sha256=
|
|
534
|
+
ansible/plugins/filter/win_splitdrive.yml,sha256=C2MPXUTJL4zqPa4x3uDKiVftF4aHyGQME4trukBPiZk,1687
|
|
535
535
|
ansible/plugins/filter/zip.yml,sha256=LEtp9xRWuPjWDHyHdm1rVYbe1k9hdxGToLrNriRgHc4,1352
|
|
536
536
|
ansible/plugins/filter/zip_longest.yml,sha256=VHaZlibbKoh9F9cxo9Z7EakellHAvJAsliVRS4Mq_co,1256
|
|
537
537
|
ansible/plugins/httpapi/__init__.py,sha256=k5YFXPK7gug-6LkI5gihNZR5cMY6N1uRKT4wOYRWdOE,3093
|
|
@@ -572,11 +572,11 @@ ansible/plugins/lookup/url.py,sha256=8JFMlk9diqsboHr1ArYGudsapPBP995maJdzHlair74
|
|
|
572
572
|
ansible/plugins/lookup/varnames.py,sha256=h5ZAHOx8MlEvv466AirXCaGZ5DeH95evGb2he8_aKqA,2330
|
|
573
573
|
ansible/plugins/lookup/vars.py,sha256=eXVZdwumdcp3ajaDX7JyIYeGvQ6L-HxHGfnob9Pnkg8,3424
|
|
574
574
|
ansible/plugins/netconf/__init__.py,sha256=50w1g2rhUo6L-xtiMT20jbR8WyOnhwNSRd2IRNSjNX4,17094
|
|
575
|
-
ansible/plugins/shell/__init__.py,sha256=
|
|
575
|
+
ansible/plugins/shell/__init__.py,sha256=i3ICKMXfrxslShlueu_J5IUCjJudVG0wROfCW5etgMo,9151
|
|
576
576
|
ansible/plugins/shell/cmd.py,sha256=kPCSKrJJFH5XTkmteEI3P1Da6WfPSXxDnV39VFpgD-A,2170
|
|
577
577
|
ansible/plugins/shell/powershell.py,sha256=4PcJG54USxhUDtWXhHUkVt8ixUtXEzg8J0qQwhlfSOA,11340
|
|
578
|
-
ansible/plugins/shell/sh.py,sha256=
|
|
579
|
-
ansible/plugins/strategy/__init__.py,sha256=
|
|
578
|
+
ansible/plugins/shell/sh.py,sha256=wblaY2EGdA2O00gNuTVZVgVV08RH0e_g4V_AkE50Iws,3884
|
|
579
|
+
ansible/plugins/strategy/__init__.py,sha256=pjT5mEI3a7N3SgIBXJcjQgpGC527rzddMuByN2tU4O4,57233
|
|
580
580
|
ansible/plugins/strategy/debug.py,sha256=yMmfT-lQHfR2y9bQcqrSPzqHuWZMo7V9y4ZWOXoboRE,1205
|
|
581
581
|
ansible/plugins/strategy/free.py,sha256=b7ke-4s9IcHLJWmfP8gYzc_z5n2kI-v3D0YVQBtI4x8,16483
|
|
582
582
|
ansible/plugins/strategy/host_pinned.py,sha256=GrDDQCtohmmJn3t9VOPb0lUZK_nUWy0s__z5Tq_rHfI,1875
|
|
@@ -678,7 +678,7 @@ ansible/vars/hostvars.py,sha256=rzxFov5bLpRtCSAFJswuRSCBx0DMNPnMJwkFKepvMuY,4764
|
|
|
678
678
|
ansible/vars/manager.py,sha256=ujVDQXWvy8BihIxGzBPX6fMeUl2AlclkwadKMo6VjSk,38583
|
|
679
679
|
ansible/vars/plugins.py,sha256=RsRU9fiLcJwPIAyTYnmVZglsiEOMCIgQskflavE-XnE,4546
|
|
680
680
|
ansible/vars/reserved.py,sha256=kZiQMPvaFin35006gLwDpX16w-9xlu6EaL4LSTKP40U,2531
|
|
681
|
-
ansible_core-2.17.
|
|
681
|
+
ansible_core-2.17.1.data/scripts/ansible-test,sha256=dyY2HtRZotRQO3b89HGXY_KnJgBvgsm4eLIe4B2LUoA,1637
|
|
682
682
|
ansible_test/__init__.py,sha256=20VPOj11c6Ut1Av9RaurgwJvFhMqkWG3vAvcCbecNKw,66
|
|
683
683
|
ansible_test/_data/ansible.cfg,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
684
684
|
ansible_test/_data/coveragerc,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
@@ -760,7 +760,7 @@ ansible_test/_internal/locale_util.py,sha256=tjRbwKmgMQc1ysIhvP8yBhFcNA-2UCaWfQB
|
|
|
760
760
|
ansible_test/_internal/metadata.py,sha256=c9ThXPUlgeKYhaTUmfCSS4INRNQ1JhN2KEOVaX3m1Gk,4791
|
|
761
761
|
ansible_test/_internal/payload.py,sha256=1Pw05OEHvP3LMQnoLXch8631c94YMklWlpDn0CvQECw,8012
|
|
762
762
|
ansible_test/_internal/provisioning.py,sha256=9Zl3xQqljx0MGDTp55Q4LZPWQ7Afj5K87cGsXzPGS5Y,7320
|
|
763
|
-
ansible_test/_internal/pypi_proxy.py,sha256=
|
|
763
|
+
ansible_test/_internal/pypi_proxy.py,sha256=1y21FjIyzXMdbFFWiOQWr3BocxXTsavw_NCagSkD0uM,6019
|
|
764
764
|
ansible_test/_internal/python_requirements.py,sha256=tilVPxEthIWBYd7PGx89cVyYX_Ahy9CVxlJ10PfkzUU,15672
|
|
765
765
|
ansible_test/_internal/ssh.py,sha256=WeVvn3ReHmjg6Im5BdSBRl1YIj1lOmi71jO9T5fTkik,10781
|
|
766
766
|
ansible_test/_internal/target.py,sha256=Whtb_n0jn4zbiMmX7je5jewgzsRczfXRm_ndYtjTSTQ,25320
|
|
@@ -979,9 +979,9 @@ ansible_test/config/cloud-config-vultr.ini.template,sha256=XLKHk3lg_8ReQMdWfZzhh
|
|
|
979
979
|
ansible_test/config/config.yml,sha256=wb3knoBmZewG3GWOMnRHoVPQWW4vPixKLPMNS6vJmTc,2620
|
|
980
980
|
ansible_test/config/inventory.networking.template,sha256=bFNSk8zNQOaZ_twaflrY0XZ9mLwUbRLuNT0BdIFwvn4,1335
|
|
981
981
|
ansible_test/config/inventory.winrm.template,sha256=1QU8W-GFLnYEw8yY9bVIvUAVvJYPM3hyoijf6-M7T00,1098
|
|
982
|
-
ansible_core-2.17.
|
|
983
|
-
ansible_core-2.17.
|
|
984
|
-
ansible_core-2.17.
|
|
985
|
-
ansible_core-2.17.
|
|
986
|
-
ansible_core-2.17.
|
|
987
|
-
ansible_core-2.17.
|
|
982
|
+
ansible_core-2.17.1.dist-info/COPYING,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
983
|
+
ansible_core-2.17.1.dist-info/METADATA,sha256=eKCnIDto9NA6GHB1MkMmK45QWZ4X-gJhmhpN24gzO10,6945
|
|
984
|
+
ansible_core-2.17.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
|
985
|
+
ansible_core-2.17.1.dist-info/entry_points.txt,sha256=0mpmsrIhODChxKl3eS-NcVQCaMetBn8KdPLtVxQgR64,453
|
|
986
|
+
ansible_core-2.17.1.dist-info/top_level.txt,sha256=IFbRLjAvih1DYzJWg3_F6t4sCzEMxRO7TOMNs6GkYHo,21
|
|
987
|
+
ansible_core-2.17.1.dist-info/RECORD,,
|
|
@@ -69,7 +69,7 @@ def run_pypi_proxy(args: EnvironmentConfig, targets_use_pypi: bool) -> None:
|
|
|
69
69
|
display.warning('Unable to use the PyPI proxy because Docker is not available. Installation of packages using `pip` may fail.')
|
|
70
70
|
return
|
|
71
71
|
|
|
72
|
-
image = 'quay.io/ansible/pypi-test-container:
|
|
72
|
+
image = 'quay.io/ansible/pypi-test-container:3.1.0'
|
|
73
73
|
port = 3141
|
|
74
74
|
|
|
75
75
|
run_support_container(
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|