ansible-core 2.15.4rc1__py3-none-any.whl → 2.16.0b2__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.

Files changed (427) hide show
  1. ansible/cli/__init__.py +3 -3
  2. ansible/cli/adhoc.py +1 -1
  3. ansible/cli/arguments/option_helpers.py +15 -5
  4. ansible/cli/config.py +2 -2
  5. ansible/cli/console.py +21 -17
  6. ansible/cli/doc.py +8 -9
  7. ansible/cli/galaxy.py +60 -27
  8. ansible/cli/inventory.py +1 -1
  9. ansible/cli/playbook.py +1 -1
  10. ansible/cli/pull.py +2 -2
  11. ansible/cli/scripts/ansible_connection_cli_stub.py +1 -1
  12. ansible/cli/vault.py +11 -6
  13. ansible/collections/__init__.py +0 -29
  14. ansible/collections/list.py +23 -44
  15. ansible/config/ansible_builtin_runtime.yml +8 -4
  16. ansible/config/base.yml +34 -22
  17. ansible/config/manager.py +1 -1
  18. ansible/constants.py +3 -5
  19. ansible/errors/__init__.py +1 -1
  20. ansible/executor/interpreter_discovery.py +1 -1
  21. ansible/executor/module_common.py +39 -32
  22. ansible/executor/play_iterator.py +0 -15
  23. ansible/executor/playbook_executor.py +3 -3
  24. ansible/executor/powershell/module_manifest.py +1 -1
  25. ansible/executor/powershell/module_wrapper.ps1 +4 -1
  26. ansible/executor/process/worker.py +22 -7
  27. ansible/executor/task_executor.py +39 -40
  28. ansible/executor/task_queue_manager.py +8 -11
  29. ansible/galaxy/__init__.py +1 -1
  30. ansible/galaxy/api.py +8 -11
  31. ansible/galaxy/collection/__init__.py +17 -4
  32. ansible/galaxy/collection/concrete_artifact_manager.py +7 -2
  33. ansible/galaxy/collection/galaxy_api_proxy.py +1 -1
  34. ansible/galaxy/data/container/README.md +3 -5
  35. ansible/galaxy/dependency_resolution/__init__.py +1 -6
  36. ansible/galaxy/dependency_resolution/dataclasses.py +22 -1
  37. ansible/galaxy/dependency_resolution/providers.py +61 -69
  38. ansible/galaxy/role.py +31 -13
  39. ansible/galaxy/token.py +2 -2
  40. ansible/inventory/group.py +1 -1
  41. ansible/inventory/manager.py +1 -1
  42. ansible/module_utils/ansible_release.py +2 -2
  43. ansible/module_utils/basic.py +11 -41
  44. ansible/module_utils/common/file.py +0 -100
  45. ansible/module_utils/common/json.py +1 -1
  46. ansible/module_utils/common/locale.py +1 -1
  47. ansible/module_utils/common/text/converters.py +2 -2
  48. ansible/module_utils/common/validation.py +1 -1
  49. ansible/module_utils/compat/_selectors2.py +4 -4
  50. ansible/module_utils/compat/datetime.py +40 -0
  51. ansible/module_utils/compat/selinux.py +1 -1
  52. ansible/module_utils/compat/typing.py +1 -1
  53. ansible/module_utils/connection.py +1 -1
  54. ansible/module_utils/facts/hardware/linux.py +2 -2
  55. ansible/module_utils/facts/hardware/openbsd.py +1 -1
  56. ansible/module_utils/facts/network/linux.py +3 -3
  57. ansible/module_utils/facts/other/facter.py +8 -15
  58. ansible/module_utils/facts/sysctl.py +1 -1
  59. ansible/module_utils/facts/system/date_time.py +2 -2
  60. ansible/module_utils/facts/system/distribution.py +1 -1
  61. ansible/module_utils/facts/system/local.py +6 -2
  62. ansible/module_utils/facts/system/pkg_mgr.py +6 -1
  63. ansible/module_utils/facts/system/service_mgr.py +4 -2
  64. ansible/module_utils/parsing/convert_bool.py +1 -1
  65. ansible/module_utils/service.py +9 -6
  66. ansible/module_utils/urls.py +40 -22
  67. ansible/modules/add_host.py +2 -2
  68. ansible/modules/apt.py +48 -31
  69. ansible/modules/apt_key.py +4 -4
  70. ansible/modules/apt_repository.py +5 -5
  71. ansible/modules/assemble.py +7 -7
  72. ansible/modules/assert.py +1 -1
  73. ansible/modules/async_status.py +11 -7
  74. ansible/modules/async_wrapper.py +1 -1
  75. ansible/modules/blockinfile.py +60 -17
  76. ansible/modules/command.py +37 -15
  77. ansible/modules/copy.py +35 -30
  78. ansible/modules/cron.py +14 -14
  79. ansible/modules/deb822_repository.py +4 -3
  80. ansible/modules/debconf.py +35 -14
  81. ansible/modules/debug.py +1 -1
  82. ansible/modules/dnf.py +29 -27
  83. ansible/modules/dnf5.py +22 -22
  84. ansible/modules/dpkg_selections.py +9 -2
  85. ansible/modules/expect.py +4 -4
  86. ansible/modules/fetch.py +7 -7
  87. ansible/modules/file.py +30 -30
  88. ansible/modules/find.py +82 -22
  89. ansible/modules/gather_facts.py +6 -2
  90. ansible/modules/get_url.py +29 -29
  91. ansible/modules/getent.py +4 -4
  92. ansible/modules/git.py +27 -27
  93. ansible/modules/group.py +5 -12
  94. ansible/modules/hostname.py +21 -2
  95. ansible/modules/include_role.py +5 -5
  96. ansible/modules/include_tasks.py +2 -2
  97. ansible/modules/include_vars.py +5 -5
  98. ansible/modules/iptables.py +70 -65
  99. ansible/modules/known_hosts.py +7 -7
  100. ansible/modules/lineinfile.py +33 -33
  101. ansible/modules/meta.py +13 -13
  102. ansible/modules/package.py +8 -8
  103. ansible/modules/package_facts.py +3 -3
  104. ansible/modules/pause.py +2 -2
  105. ansible/modules/ping.py +5 -5
  106. ansible/modules/pip.py +80 -46
  107. ansible/modules/reboot.py +8 -4
  108. ansible/modules/replace.py +20 -15
  109. ansible/modules/rpm_key.py +2 -2
  110. ansible/modules/script.py +16 -10
  111. ansible/modules/service.py +26 -98
  112. ansible/modules/service_facts.py +36 -12
  113. ansible/modules/set_fact.py +2 -2
  114. ansible/modules/set_stats.py +2 -2
  115. ansible/modules/setup.py +18 -18
  116. ansible/modules/shell.py +3 -3
  117. ansible/modules/stat.py +9 -30
  118. ansible/modules/subversion.py +9 -9
  119. ansible/modules/systemd.py +20 -19
  120. ansible/modules/systemd_service.py +20 -19
  121. ansible/modules/sysvinit.py +26 -21
  122. ansible/modules/tempfile.py +5 -4
  123. ansible/modules/template.py +60 -6
  124. ansible/modules/unarchive.py +21 -18
  125. ansible/modules/uri.py +39 -39
  126. ansible/modules/user.py +81 -53
  127. ansible/modules/wait_for.py +22 -21
  128. ansible/modules/wait_for_connection.py +4 -4
  129. ansible/modules/yum.py +38 -38
  130. ansible/modules/yum_repository.py +58 -80
  131. ansible/parsing/dataloader.py +27 -27
  132. ansible/parsing/mod_args.py +1 -1
  133. ansible/parsing/plugin_docs.py +3 -3
  134. ansible/parsing/splitter.py +14 -16
  135. ansible/parsing/utils/yaml.py +1 -1
  136. ansible/parsing/vault/__init__.py +8 -6
  137. ansible/parsing/yaml/constructor.py +1 -1
  138. ansible/parsing/yaml/objects.py +1 -1
  139. ansible/playbook/__init__.py +1 -1
  140. ansible/playbook/base.py +2 -2
  141. ansible/playbook/block.py +0 -1
  142. ansible/playbook/conditional.py +40 -114
  143. ansible/playbook/helpers.py +5 -28
  144. ansible/playbook/included_file.py +8 -7
  145. ansible/playbook/play.py +1 -1
  146. ansible/playbook/play_context.py +2 -2
  147. ansible/playbook/playbook_include.py +2 -2
  148. ansible/playbook/role/__init__.py +1 -1
  149. ansible/playbook/role/include.py +1 -1
  150. ansible/playbook/role/metadata.py +1 -1
  151. ansible/playbook/role_include.py +1 -1
  152. ansible/playbook/task.py +2 -2
  153. ansible/playbook/task_include.py +1 -24
  154. ansible/plugins/__init__.py +13 -5
  155. ansible/plugins/action/__init__.py +17 -43
  156. ansible/plugins/action/add_host.py +2 -3
  157. ansible/plugins/action/assemble.py +1 -1
  158. ansible/plugins/action/assert.py +2 -1
  159. ansible/plugins/action/copy.py +2 -2
  160. ansible/plugins/action/debug.py +2 -1
  161. ansible/plugins/action/fail.py +1 -0
  162. ansible/plugins/action/fetch.py +3 -1
  163. ansible/plugins/action/gather_facts.py +37 -13
  164. ansible/plugins/action/group_by.py +1 -0
  165. ansible/plugins/action/include_vars.py +3 -2
  166. ansible/plugins/action/normal.py +3 -3
  167. ansible/plugins/action/pause.py +1 -1
  168. ansible/plugins/action/reboot.py +21 -16
  169. ansible/plugins/action/script.py +23 -8
  170. ansible/plugins/action/set_fact.py +1 -0
  171. ansible/plugins/action/set_stats.py +1 -0
  172. ansible/plugins/action/shell.py +6 -0
  173. ansible/plugins/action/template.py +1 -1
  174. ansible/plugins/action/unarchive.py +1 -1
  175. ansible/plugins/action/uri.py +1 -1
  176. ansible/plugins/action/validate_argument_spec.py +1 -0
  177. ansible/plugins/action/wait_for_connection.py +4 -4
  178. ansible/plugins/become/__init__.py +1 -1
  179. ansible/plugins/become/su.py +1 -1
  180. ansible/plugins/cache/__init__.py +1 -1
  181. ansible/plugins/callback/junit.py +1 -1
  182. ansible/plugins/callback/oneline.py +1 -1
  183. ansible/plugins/callback/tree.py +1 -1
  184. ansible/plugins/cliconf/__init__.py +2 -2
  185. ansible/plugins/connection/__init__.py +65 -37
  186. ansible/plugins/connection/local.py +9 -8
  187. ansible/plugins/connection/paramiko_ssh.py +34 -28
  188. ansible/plugins/connection/psrp.py +56 -43
  189. ansible/plugins/connection/ssh.py +67 -43
  190. ansible/plugins/connection/winrm.py +77 -30
  191. ansible/plugins/doc_fragments/constructed.py +4 -4
  192. ansible/plugins/doc_fragments/files.py +12 -12
  193. ansible/plugins/doc_fragments/inventory_cache.py +0 -6
  194. ansible/plugins/doc_fragments/result_format_callback.py +5 -5
  195. ansible/plugins/doc_fragments/shell_common.py +2 -2
  196. ansible/plugins/doc_fragments/shell_windows.py +1 -1
  197. ansible/plugins/doc_fragments/template_common.py +6 -6
  198. ansible/plugins/doc_fragments/url.py +10 -10
  199. ansible/plugins/doc_fragments/url_windows.py +15 -15
  200. ansible/plugins/doc_fragments/vars_plugin_staging.py +4 -4
  201. ansible/plugins/filter/b64decode.yml +1 -1
  202. ansible/plugins/filter/b64encode.yml +2 -2
  203. ansible/plugins/filter/bool.yml +5 -5
  204. ansible/plugins/filter/combine.yml +1 -1
  205. ansible/plugins/filter/commonpath.yml +2 -1
  206. ansible/plugins/filter/core.py +6 -8
  207. ansible/plugins/filter/dict2items.yml +11 -1
  208. ansible/plugins/filter/difference.yml +1 -0
  209. ansible/plugins/filter/encryption.py +1 -1
  210. ansible/plugins/filter/extract.yml +1 -1
  211. ansible/plugins/filter/flatten.yml +1 -1
  212. ansible/plugins/filter/from_yaml.yml +1 -1
  213. ansible/plugins/filter/from_yaml_all.yml +2 -2
  214. ansible/plugins/filter/hash.yml +1 -1
  215. ansible/plugins/filter/human_readable.yml +1 -1
  216. ansible/plugins/filter/human_to_bytes.yml +2 -2
  217. ansible/plugins/filter/intersect.yml +1 -0
  218. ansible/plugins/filter/mandatory.yml +7 -0
  219. ansible/plugins/filter/mathstuff.py +15 -17
  220. ansible/plugins/filter/normpath.yml +1 -1
  221. ansible/plugins/filter/path_join.yml +8 -1
  222. ansible/plugins/filter/realpath.yml +3 -2
  223. ansible/plugins/filter/regex_findall.yml +8 -2
  224. ansible/plugins/filter/regex_replace.yml +9 -3
  225. ansible/plugins/filter/regex_search.yml +8 -2
  226. ansible/plugins/filter/relpath.yml +2 -2
  227. ansible/plugins/filter/root.yml +1 -1
  228. ansible/plugins/filter/splitext.yml +1 -1
  229. ansible/plugins/filter/subelements.yml +2 -2
  230. ansible/plugins/filter/symmetric_difference.yml +1 -0
  231. ansible/plugins/filter/ternary.yml +5 -5
  232. ansible/plugins/filter/to_json.yml +7 -7
  233. ansible/plugins/filter/to_nice_json.yml +5 -5
  234. ansible/plugins/filter/to_yaml.yml +2 -2
  235. ansible/plugins/filter/type_debug.yml +1 -1
  236. ansible/plugins/filter/union.yml +1 -0
  237. ansible/plugins/filter/unvault.yml +2 -2
  238. ansible/plugins/filter/urldecode.yml +13 -32
  239. ansible/plugins/filter/urlsplit.py +1 -1
  240. ansible/plugins/filter/vault.yml +1 -1
  241. ansible/plugins/filter/zip.yml +1 -1
  242. ansible/plugins/filter/zip_longest.yml +1 -1
  243. ansible/plugins/inventory/__init__.py +1 -1
  244. ansible/plugins/inventory/advanced_host_list.py +1 -1
  245. ansible/plugins/inventory/constructed.py +2 -2
  246. ansible/plugins/inventory/host_list.py +1 -1
  247. ansible/plugins/inventory/ini.py +6 -3
  248. ansible/plugins/inventory/script.py +8 -2
  249. ansible/plugins/inventory/toml.py +1 -1
  250. ansible/plugins/inventory/yaml.py +1 -1
  251. ansible/plugins/list.py +21 -17
  252. ansible/plugins/loader.py +66 -88
  253. ansible/plugins/lookup/__init__.py +1 -1
  254. ansible/plugins/lookup/config.py +16 -6
  255. ansible/plugins/lookup/csvfile.py +7 -4
  256. ansible/plugins/lookup/env.py +1 -1
  257. ansible/plugins/lookup/file.py +5 -2
  258. ansible/plugins/lookup/fileglob.py +5 -2
  259. ansible/plugins/lookup/first_found.py +20 -14
  260. ansible/plugins/lookup/ini.py +6 -3
  261. ansible/plugins/lookup/lines.py +2 -1
  262. ansible/plugins/lookup/password.py +7 -7
  263. ansible/plugins/lookup/pipe.py +1 -0
  264. ansible/plugins/lookup/random_choice.py +2 -2
  265. ansible/plugins/lookup/sequence.py +1 -1
  266. ansible/plugins/lookup/subelements.py +2 -2
  267. ansible/plugins/lookup/template.py +4 -1
  268. ansible/plugins/lookup/unvault.py +4 -1
  269. ansible/plugins/lookup/url.py +6 -6
  270. ansible/plugins/lookup/varnames.py +1 -1
  271. ansible/plugins/netconf/__init__.py +3 -3
  272. ansible/plugins/shell/__init__.py +1 -1
  273. ansible/plugins/shell/cmd.py +7 -7
  274. ansible/plugins/shell/powershell.py +1 -1
  275. ansible/plugins/strategy/__init__.py +8 -10
  276. ansible/plugins/strategy/free.py +1 -1
  277. ansible/plugins/strategy/linear.py +3 -3
  278. ansible/plugins/terminal/__init__.py +2 -2
  279. ansible/plugins/test/abs.yml +1 -1
  280. ansible/plugins/test/all.yml +1 -1
  281. ansible/plugins/test/any.yml +1 -1
  282. ansible/plugins/test/change.yml +2 -2
  283. ansible/plugins/test/changed.yml +2 -2
  284. ansible/plugins/test/contains.yml +1 -1
  285. ansible/plugins/test/core.py +1 -1
  286. ansible/plugins/test/directory.yml +1 -1
  287. ansible/plugins/test/exists.yml +3 -2
  288. ansible/plugins/test/failed.yml +2 -2
  289. ansible/plugins/test/failure.yml +2 -2
  290. ansible/plugins/test/falsy.yml +2 -2
  291. ansible/plugins/test/file.yml +1 -1
  292. ansible/plugins/test/finished.yml +2 -2
  293. ansible/plugins/test/is_abs.yml +1 -1
  294. ansible/plugins/test/is_dir.yml +1 -1
  295. ansible/plugins/test/is_file.yml +1 -1
  296. ansible/plugins/test/is_link.yml +1 -1
  297. ansible/plugins/test/is_mount.yml +1 -1
  298. ansible/plugins/test/is_same_file.yml +1 -1
  299. ansible/plugins/test/isnan.yml +1 -1
  300. ansible/plugins/test/issubset.yml +1 -2
  301. ansible/plugins/test/issuperset.yml +1 -2
  302. ansible/plugins/test/link.yml +1 -1
  303. ansible/plugins/test/link_exists.yml +1 -1
  304. ansible/plugins/test/match.yml +2 -2
  305. ansible/plugins/test/mount.yml +1 -1
  306. ansible/plugins/test/nan.yml +1 -1
  307. ansible/plugins/test/reachable.yml +2 -2
  308. ansible/plugins/test/regex.yml +1 -1
  309. ansible/plugins/test/same_file.yml +1 -1
  310. ansible/plugins/test/search.yml +2 -2
  311. ansible/plugins/test/skip.yml +3 -3
  312. ansible/plugins/test/skipped.yml +3 -3
  313. ansible/plugins/test/started.yml +2 -2
  314. ansible/plugins/test/subset.yml +1 -2
  315. ansible/plugins/test/succeeded.yml +2 -2
  316. ansible/plugins/test/success.yml +2 -2
  317. ansible/plugins/test/successful.yml +2 -2
  318. ansible/plugins/test/superset.yml +1 -2
  319. ansible/plugins/test/truthy.yml +3 -3
  320. ansible/plugins/test/unreachable.yml +2 -2
  321. ansible/plugins/test/uri.yml +1 -1
  322. ansible/plugins/test/url.yml +1 -1
  323. ansible/plugins/test/urn.yml +1 -1
  324. ansible/plugins/test/vault_encrypted.yml +1 -1
  325. ansible/plugins/test/version.yml +7 -7
  326. ansible/plugins/test/version_compare.yml +7 -7
  327. ansible/plugins/vars/host_group_vars.py +1 -1
  328. ansible/release.py +2 -2
  329. ansible/template/__init__.py +24 -26
  330. ansible/template/native_helpers.py +1 -1
  331. ansible/template/vars.py +1 -1
  332. ansible/utils/_junit_xml.py +1 -1
  333. ansible/utils/cmd_functions.py +1 -1
  334. ansible/utils/collection_loader/_collection_finder.py +12 -1
  335. ansible/utils/display.py +113 -62
  336. ansible/utils/encrypt.py +11 -14
  337. ansible/utils/hashing.py +1 -1
  338. ansible/utils/jsonrpc.py +1 -1
  339. ansible/utils/path.py +1 -1
  340. ansible/utils/plugin_docs.py +1 -1
  341. ansible/utils/py3compat.py +1 -1
  342. ansible/utils/shlex.py +2 -10
  343. ansible/utils/ssh_functions.py +5 -4
  344. ansible/utils/unicode.py +1 -1
  345. ansible/utils/unsafe_proxy.py +1 -1
  346. ansible/utils/vars.py +4 -29
  347. ansible/vars/hostvars.py +1 -2
  348. ansible/vars/manager.py +13 -9
  349. ansible/vars/plugins.py +2 -2
  350. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/COPYING +4 -5
  351. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/METADATA +2 -4
  352. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/RECORD +424 -425
  353. ansible_test/_data/completion/docker.txt +9 -9
  354. ansible_test/_data/completion/remote.txt +4 -7
  355. ansible_test/_data/completion/windows.txt +0 -2
  356. ansible_test/_data/requirements/ansible-test.txt +2 -1
  357. ansible_test/_data/requirements/ansible.txt +0 -3
  358. ansible_test/_data/requirements/constraints.txt +0 -2
  359. ansible_test/_data/requirements/sanity.ansible-doc.txt +3 -5
  360. ansible_test/_data/requirements/sanity.changelog.in +1 -2
  361. ansible_test/_data/requirements/sanity.changelog.txt +4 -6
  362. ansible_test/_data/requirements/sanity.import.plugin.txt +2 -4
  363. ansible_test/_data/requirements/sanity.import.txt +1 -3
  364. ansible_test/_data/requirements/sanity.integration-aliases.txt +1 -3
  365. ansible_test/_data/requirements/sanity.mypy.txt +12 -12
  366. ansible_test/_data/requirements/sanity.pep8.txt +1 -1
  367. ansible_test/_data/requirements/sanity.pylint.txt +6 -12
  368. ansible_test/_data/requirements/sanity.runtime-metadata.txt +1 -3
  369. ansible_test/_data/requirements/sanity.validate-modules.in +1 -1
  370. ansible_test/_data/requirements/sanity.validate-modules.txt +3 -5
  371. ansible_test/_data/requirements/sanity.yamllint.txt +3 -5
  372. ansible_test/_data/requirements/units.txt +0 -1
  373. ansible_test/_internal/ci/azp.py +4 -4
  374. ansible_test/_internal/cli/environments.py +0 -13
  375. ansible_test/_internal/commands/coverage/analyze/targets/__init__.py +4 -4
  376. ansible_test/_internal/commands/coverage/combine.py +1 -1
  377. ansible_test/_internal/commands/integration/cloud/acme.py +6 -8
  378. ansible_test/_internal/commands/integration/cloud/cs.py +4 -9
  379. ansible_test/_internal/commands/integration/cloud/galaxy.py +103 -96
  380. ansible_test/_internal/commands/integration/cloud/httptester.py +0 -3
  381. ansible_test/_internal/commands/integration/cloud/nios.py +7 -9
  382. ansible_test/_internal/commands/integration/cloud/openshift.py +2 -7
  383. ansible_test/_internal/commands/integration/cloud/vcenter.py +11 -95
  384. ansible_test/_internal/commands/sanity/__init__.py +10 -0
  385. ansible_test/_internal/commands/sanity/import.py +8 -2
  386. ansible_test/_internal/commands/sanity/pylint.py +27 -1
  387. ansible_test/_internal/commands/units/__init__.py +2 -1
  388. ansible_test/_internal/config.py +0 -7
  389. ansible_test/_internal/containers.py +11 -56
  390. ansible_test/_internal/core_ci.py +0 -7
  391. ansible_test/_internal/coverage_util.py +8 -3
  392. ansible_test/_internal/delegation.py +0 -1
  393. ansible_test/_internal/diff.py +1 -1
  394. ansible_test/_internal/docker_util.py +9 -2
  395. ansible_test/_internal/host_profiles.py +6 -6
  396. ansible_test/_internal/http.py +1 -1
  397. ansible_test/_internal/junit_xml.py +1 -1
  398. ansible_test/_internal/pypi_proxy.py +1 -1
  399. ansible_test/_internal/python_requirements.py +3 -8
  400. ansible_test/_internal/util.py +1 -6
  401. ansible_test/_util/controller/sanity/code-smell/no-get-exception.json +4 -0
  402. ansible_test/_util/controller/sanity/code-smell/replace-urlopen.json +4 -0
  403. ansible_test/_util/controller/sanity/code-smell/use-compat-six.json +4 -0
  404. ansible_test/_util/controller/sanity/mypy/ansible-core.ini +3 -0
  405. ansible_test/_util/controller/sanity/pylint/config/ansible-test-target.cfg +2 -0
  406. ansible_test/_util/controller/sanity/pylint/config/ansible-test.cfg +0 -1
  407. ansible_test/_util/controller/sanity/pylint/config/collection.cfg +1 -0
  408. ansible_test/_util/controller/sanity/pylint/plugins/deprecated.py +172 -10
  409. ansible_test/_util/controller/sanity/pylint/plugins/string_format.py +13 -2
  410. ansible_test/_util/controller/sanity/pylint/plugins/unwanted.py +7 -1
  411. ansible_test/_util/controller/sanity/validate-modules/validate_modules/main.py +6 -6
  412. ansible_test/_util/controller/sanity/validate-modules/validate_modules/module_args.py +1 -1
  413. ansible_test/_util/controller/sanity/validate-modules/validate_modules/utils.py +1 -1
  414. ansible_test/_util/controller/sanity/yamllint/yamllinter.py +3 -3
  415. ansible_test/_util/controller/tools/collection_detail.py +2 -2
  416. ansible_test/_util/target/common/constants.py +2 -2
  417. ansible_test/_util/target/pytest/plugins/ansible_forked.py +103 -0
  418. ansible_test/_util/target/sanity/import/importer.py +0 -8
  419. ansible_test/_util/target/setup/bootstrap.sh +36 -16
  420. ansible_test/_util/target/setup/quiet_pip.py +0 -4
  421. ansible/modules/_include.py +0 -80
  422. ansible_test/_internal/commands/integration/cloud/foreman.py +0 -102
  423. ansible_test/_util/target/setup/ConfigureRemotingForAnsible.ps1 +0 -435
  424. {ansible_core-2.15.4rc1.data → ansible_core-2.16.0b2.data}/scripts/ansible-test +0 -0
  425. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/WHEEL +0 -0
  426. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/entry_points.txt +0 -0
  427. {ansible_core-2.15.4rc1.dist-info → ansible_core-2.16.0b2.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,9 @@
1
- base image=quay.io/ansible/base-test-container:4.1.0 python=3.11,2.7,3.5,3.6,3.7,3.8,3.9,3.10
2
- default image=quay.io/ansible/default-test-container:7.14.0 python=3.11,2.7,3.5,3.6,3.7,3.8,3.9,3.10 context=collection
3
- default image=quay.io/ansible/ansible-core-test-container:7.14.0 python=3.11,2.7,3.5,3.6,3.7,3.8,3.9,3.10 context=ansible-core
4
- alpine3 image=quay.io/ansible/alpine3-test-container:5.0.0 python=3.10 cgroup=none audit=none
5
- centos7 image=quay.io/ansible/centos7-test-container:5.0.0 python=2.7 cgroup=v1-only
6
- fedora37 image=quay.io/ansible/fedora37-test-container:5.0.0 python=3.11
7
- opensuse15 image=quay.io/ansible/opensuse15-test-container:5.0.0 python=3.6
8
- ubuntu2004 image=quay.io/ansible/ubuntu2004-test-container:5.0.0 python=3.8
9
- ubuntu2204 image=quay.io/ansible/ubuntu2204-test-container:5.0.0 python=3.10
1
+ base image=quay.io/ansible/base-test-container:5.9.0 python=3.11,2.7,3.6,3.7,3.8,3.9,3.10,3.12
2
+ default image=quay.io/ansible/default-test-container:8.11.0 python=3.11,2.7,3.6,3.7,3.8,3.9,3.10,3.12 context=collection
3
+ default image=quay.io/ansible/ansible-core-test-container:8.11.0 python=3.11,2.7,3.6,3.7,3.8,3.9,3.10,3.12 context=ansible-core
4
+ alpine3 image=quay.io/ansible/alpine3-test-container:6.3.0 python=3.11 cgroup=none audit=none
5
+ centos7 image=quay.io/ansible/centos7-test-container:6.3.0 python=2.7 cgroup=v1-only
6
+ fedora38 image=quay.io/ansible/fedora38-test-container:6.3.0 python=3.11
7
+ opensuse15 image=quay.io/ansible/opensuse15-test-container:6.3.0 python=3.6
8
+ ubuntu2004 image=quay.io/ansible/ubuntu2004-test-container:6.3.0 python=3.8
9
+ ubuntu2204 image=quay.io/ansible/ubuntu2204-test-container:6.3.0 python=3.10
@@ -1,17 +1,14 @@
1
- alpine/3.17 python=3.10 become=doas_sudo provider=aws arch=x86_64
1
+ alpine/3.18 python=3.11 become=doas_sudo provider=aws arch=x86_64
2
2
  alpine become=doas_sudo provider=aws arch=x86_64
3
- fedora/37 python=3.11 become=sudo provider=aws arch=x86_64 # untested in CI, known to occasionally hang during boot
4
3
  fedora/38 python=3.11 become=sudo provider=aws arch=x86_64
5
4
  fedora become=sudo provider=aws arch=x86_64
6
- freebsd/12.4 python=3.9 python_dir=/usr/local/bin become=su_sudo provider=aws arch=x86_64
7
- freebsd/13.1 python=3.8,3.7,3.9,3.10 python_dir=/usr/local/bin become=su_sudo provider=aws arch=x86_64
5
+ freebsd/13.2 python=3.9,3.11 python_dir=/usr/local/bin become=su_sudo provider=aws arch=x86_64
8
6
  freebsd python_dir=/usr/local/bin become=su_sudo provider=aws arch=x86_64
9
7
  macos/13.2 python=3.11 python_dir=/usr/local/bin become=sudo provider=parallels arch=x86_64
10
8
  macos python_dir=/usr/local/bin become=sudo provider=parallels arch=x86_64
11
9
  rhel/7.9 python=2.7 become=sudo provider=aws arch=x86_64
12
- rhel/8.7 python=3.6,3.8,3.9 become=sudo provider=aws arch=x86_64
13
- rhel/9.1 python=3.9 become=sudo provider=aws arch=x86_64
10
+ rhel/8.8 python=3.6,3.11 become=sudo provider=aws arch=x86_64
11
+ rhel/9.2 python=3.9,3.11 become=sudo provider=aws arch=x86_64
14
12
  rhel become=sudo provider=aws arch=x86_64
15
- ubuntu/20.04 python=3.8,3.9 become=sudo provider=aws arch=x86_64
16
13
  ubuntu/22.04 python=3.10 become=sudo provider=aws arch=x86_64
17
14
  ubuntu become=sudo provider=aws arch=x86_64
@@ -1,5 +1,3 @@
1
- windows/2012 provider=aws arch=x86_64
2
- windows/2012-R2 provider=aws arch=x86_64
3
1
  windows/2016 provider=aws arch=x86_64
4
2
  windows/2019 provider=aws arch=x86_64
5
3
  windows/2022 provider=aws arch=x86_64
@@ -1,4 +1,5 @@
1
1
  # The test-constraints sanity test verifies this file, but changes must be made manually to keep it in up-to-date.
2
2
  virtualenv == 16.7.12 ; python_version < '3'
3
- coverage == 6.5.0 ; python_version >= '3.7' and python_version <= '3.11'
3
+ coverage == 7.3.2 ; python_version >= '3.8' and python_version <= '3.12'
4
+ coverage == 6.5.0 ; python_version >= '3.7' and python_version <= '3.7'
4
5
  coverage == 4.5.4 ; python_version >= '2.6' and python_version <= '3.6'
@@ -7,9 +7,6 @@ jinja2 >= 3.0.0
7
7
  PyYAML >= 5.1 # PyYAML 5.1 is required for Python 3.8+ support
8
8
  cryptography
9
9
  packaging
10
- # importlib.resources in stdlib for py3.9 is lacking native hooks for
11
- # importlib.resources.files
12
- importlib_resources >= 5.0, < 5.1; python_version < '3.10'
13
10
  # NOTE: resolvelib 0.x version bumps should be considered major/breaking
14
11
  # NOTE: and we should update the upper cap with care, at least until 1.0
15
12
  # NOTE: Ref: https://github.com/sarugaku/resolvelib/issues/69
@@ -5,7 +5,6 @@ pywinrm >= 0.3.0 ; python_version < '3.11' # message encryption support
5
5
  pywinrm >= 0.4.3 ; python_version >= '3.11' # support for Python 3.11
6
6
  pytest < 5.0.0, >= 4.5.0 ; python_version == '2.7' # pytest 5.0.0 and later will no longer support python 2.7
7
7
  pytest >= 4.5.0 ; python_version > '2.7' # pytest 4.5.0 added support for --strict-markers
8
- pytest-forked >= 1.0.2 # pytest-forked before 1.0.2 does not work with pytest 4.2.0+
9
8
  ntlm-auth >= 1.3.0 # message encryption support using cryptography
10
9
  requests-ntlm >= 1.1.0 # message encryption support
11
10
  requests-credssp >= 0.1.0 # message encryption support
@@ -13,5 +12,4 @@ pyparsing < 3.0.0 ; python_version < '3.5' # pyparsing 3 and later require pytho
13
12
  mock >= 2.0.0 # needed for features backported from Python 3.6 unittest.mock (assert_called, assert_called_once...)
14
13
  pytest-mock >= 1.4.0 # needed for mock_use_standalone_module pytest option
15
14
  setuptools < 45 ; python_version == '2.7' # setuptools 45 and later require python 3.5 or later
16
- pyspnego >= 0.1.6 ; python_version >= '3.10' # bug in older releases breaks on Python 3.10
17
15
  wheel < 0.38.0 ; python_version < '3.7' # wheel 0.38.0 and later require python 3.7 or later
@@ -1,7 +1,5 @@
1
1
  # edit "sanity.ansible-doc.in" and generate with: hacking/update-sanity-requirements.py --test ansible-doc
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
2
  Jinja2==3.1.2
5
- MarkupSafe==2.1.2
6
- packaging==23.0
7
- PyYAML==6.0
3
+ MarkupSafe==2.1.3
4
+ packaging==23.2
5
+ PyYAML==6.0.1
@@ -1,3 +1,2 @@
1
- rstcheck < 6 # match version used in other sanity tests
1
+ rstcheck < 6 # newer versions have too many dependencies
2
2
  antsibull-changelog
3
- docutils
@@ -1,11 +1,9 @@
1
1
  # edit "sanity.changelog.in" and generate with: hacking/update-sanity-requirements.py --test changelog
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
- antsibull-changelog==0.19.0
2
+ antsibull-changelog==0.23.0
5
3
  docutils==0.18.1
6
- packaging==23.0
7
- PyYAML==6.0
4
+ packaging==23.2
5
+ PyYAML==6.0.1
8
6
  rstcheck==5.0.0
9
7
  semantic-version==2.10.0
10
8
  types-docutils==0.18.3
11
- typing_extensions==4.5.0
9
+ typing_extensions==4.8.0
@@ -1,6 +1,4 @@
1
1
  # edit "sanity.import.plugin.in" and generate with: hacking/update-sanity-requirements.py --test import.plugin
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
2
  Jinja2==3.1.2
5
- MarkupSafe==2.1.2
6
- PyYAML==6.0
3
+ MarkupSafe==2.1.3
4
+ PyYAML==6.0.1
@@ -1,4 +1,2 @@
1
1
  # edit "sanity.import.in" and generate with: hacking/update-sanity-requirements.py --test import
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
- PyYAML==6.0
2
+ PyYAML==6.0.1
@@ -1,4 +1,2 @@
1
1
  # edit "sanity.integration-aliases.in" and generate with: hacking/update-sanity-requirements.py --test integration-aliases
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
- PyYAML==6.0
2
+ PyYAML==6.0.1
@@ -1,18 +1,18 @@
1
1
  # edit "sanity.mypy.in" and generate with: hacking/update-sanity-requirements.py --test mypy
2
- cffi==1.15.1
3
- cryptography==40.0.1
2
+ cffi==1.16.0
3
+ cryptography==41.0.4
4
4
  Jinja2==3.1.2
5
- MarkupSafe==2.1.2
6
- mypy==1.1.1
5
+ MarkupSafe==2.1.3
6
+ mypy==1.5.1
7
7
  mypy-extensions==1.0.0
8
- packaging==23.0
8
+ packaging==23.2
9
9
  pycparser==2.21
10
10
  tomli==2.0.1
11
11
  types-backports==0.1.3
12
- types-paramiko==3.0.0.6
13
- types-PyYAML==6.0.12.9
14
- types-requests==2.28.11.17
15
- types-setuptools==67.6.0.6
16
- types-toml==0.10.8.6
17
- types-urllib3==1.26.25.10
18
- typing_extensions==4.5.0
12
+ types-paramiko==3.3.0.0
13
+ types-PyYAML==6.0.12.12
14
+ types-requests==2.31.0.7
15
+ types-setuptools==68.2.0.0
16
+ types-toml==0.10.8.7
17
+ typing_extensions==4.8.0
18
+ urllib3==2.0.6
@@ -1,2 +1,2 @@
1
1
  # edit "sanity.pep8.in" and generate with: hacking/update-sanity-requirements.py --test pep8
2
- pycodestyle==2.10.0
2
+ pycodestyle==2.11.0
@@ -1,15 +1,9 @@
1
1
  # edit "sanity.pylint.in" and generate with: hacking/update-sanity-requirements.py --test pylint
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
- astroid==2.15.4
5
- dill==0.3.6
2
+ astroid==3.0.0
3
+ dill==0.3.7
6
4
  isort==5.12.0
7
- lazy-object-proxy==1.9.0
8
5
  mccabe==0.7.0
9
- platformdirs==3.3.0
10
- pylint==2.17.3
11
- PyYAML==6.0
12
- tomli==2.0.1
13
- tomlkit==0.11.7
14
- typing_extensions==4.5.0
15
- wrapt==1.15.0
6
+ platformdirs==3.11.0
7
+ pylint==3.0.0
8
+ PyYAML==6.0.1
9
+ tomlkit==0.12.1
@@ -1,5 +1,3 @@
1
1
  # edit "sanity.runtime-metadata.in" and generate with: hacking/update-sanity-requirements.py --test runtime-metadata
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
- PyYAML==6.0
2
+ PyYAML==6.0.1
5
3
  voluptuous==0.13.1
@@ -1,4 +1,4 @@
1
1
  jinja2 # ansible-core requirement
2
2
  pyyaml # needed for collection_detail.py
3
3
  voluptuous
4
- antsibull-docs-parser==0.2.0
4
+ antsibull-docs-parser==1.0.0
@@ -1,8 +1,6 @@
1
1
  # edit "sanity.validate-modules.in" and generate with: hacking/update-sanity-requirements.py --test validate-modules
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
- antsibull-docs-parser==0.2.0
2
+ antsibull-docs-parser==1.0.0
5
3
  Jinja2==3.1.2
6
- MarkupSafe==2.1.2
7
- PyYAML==6.0
4
+ MarkupSafe==2.1.3
5
+ PyYAML==6.0.1
8
6
  voluptuous==0.13.1
@@ -1,6 +1,4 @@
1
1
  # edit "sanity.yamllint.in" and generate with: hacking/update-sanity-requirements.py --test yamllint
2
- # pre-build requirement: pyyaml == 6.0
3
- # pre-build constraint: Cython < 3.0
4
- pathspec==0.11.1
5
- PyYAML==6.0
6
- yamllint==1.30.0
2
+ pathspec==0.11.2
3
+ PyYAML==6.0.1
4
+ yamllint==1.32.0
@@ -2,5 +2,4 @@ mock
2
2
  pytest
3
3
  pytest-mock
4
4
  pytest-xdist
5
- pytest-forked
6
5
  pyyaml # required by the collection loader (only needed for collections)
@@ -70,7 +70,7 @@ class AzurePipelines(CIProvider):
70
70
  os.environ['SYSTEM_JOBIDENTIFIER'],
71
71
  )
72
72
  except KeyError as ex:
73
- raise MissingEnvironmentVariable(name=ex.args[0])
73
+ raise MissingEnvironmentVariable(name=ex.args[0]) from None
74
74
 
75
75
  return prefix
76
76
 
@@ -121,7 +121,7 @@ class AzurePipelines(CIProvider):
121
121
  task_id=str(uuid.UUID(os.environ['SYSTEM_TASKINSTANCEID'])),
122
122
  )
123
123
  except KeyError as ex:
124
- raise MissingEnvironmentVariable(name=ex.args[0])
124
+ raise MissingEnvironmentVariable(name=ex.args[0]) from None
125
125
 
126
126
  self.auth.sign_request(request)
127
127
 
@@ -154,7 +154,7 @@ class AzurePipelinesAuthHelper(CryptographyAuthHelper):
154
154
  try:
155
155
  agent_temp_directory = os.environ['AGENT_TEMPDIRECTORY']
156
156
  except KeyError as ex:
157
- raise MissingEnvironmentVariable(name=ex.args[0])
157
+ raise MissingEnvironmentVariable(name=ex.args[0]) from None
158
158
 
159
159
  # the temporary file cannot be deleted because we do not know when the agent has processed it
160
160
  # placing the file in the agent's temp directory allows it to be picked up when the job is running in a container
@@ -181,7 +181,7 @@ class AzurePipelinesChanges:
181
181
  self.source_branch_name = os.environ['BUILD_SOURCEBRANCHNAME']
182
182
  self.pr_branch_name = os.environ.get('SYSTEM_PULLREQUEST_TARGETBRANCH')
183
183
  except KeyError as ex:
184
- raise MissingEnvironmentVariable(name=ex.args[0])
184
+ raise MissingEnvironmentVariable(name=ex.args[0]) from None
185
185
 
186
186
  if self.source_branch.startswith('refs/tags/'):
187
187
  raise ChangeDetectionNotSupported('Change detection is not supported for tags.')
@@ -146,12 +146,6 @@ def add_global_options(
146
146
  help='install command requirements',
147
147
  )
148
148
 
149
- global_parser.add_argument(
150
- '--no-pip-check',
151
- action='store_true',
152
- help=argparse.SUPPRESS, # deprecated, kept for now (with a warning) for backwards compatibility
153
- )
154
-
155
149
  add_global_remote(global_parser, controller_mode)
156
150
  add_global_docker(global_parser, controller_mode)
157
151
 
@@ -396,7 +390,6 @@ def add_global_docker(
396
390
  """Add global options for Docker."""
397
391
  if controller_mode != ControllerMode.DELEGATED:
398
392
  parser.set_defaults(
399
- docker_no_pull=False,
400
393
  docker_network=None,
401
394
  docker_terminate=None,
402
395
  prime_containers=False,
@@ -406,12 +399,6 @@ def add_global_docker(
406
399
 
407
400
  return
408
401
 
409
- parser.add_argument(
410
- '--docker-no-pull',
411
- action='store_true',
412
- help=argparse.SUPPRESS, # deprecated, kept for now (with a warning) for backwards compatibility
413
- )
414
-
415
402
  parser.add_argument(
416
403
  '--docker-network',
417
404
  metavar='NET',
@@ -57,9 +57,9 @@ def load_report(report: dict[str, t.Any]) -> tuple[list[str], Arcs, Lines]:
57
57
  arc_data: dict[str, dict[str, int]] = report['arcs']
58
58
  line_data: dict[str, dict[int, int]] = report['lines']
59
59
  except KeyError as ex:
60
- raise ApplicationError('Document is missing key "%s".' % ex.args)
60
+ raise ApplicationError('Document is missing key "%s".' % ex.args) from None
61
61
  except TypeError:
62
- raise ApplicationError('Document is type "%s" instead of "dict".' % type(report).__name__)
62
+ raise ApplicationError('Document is type "%s" instead of "dict".' % type(report).__name__) from None
63
63
 
64
64
  arcs = dict((path, dict((parse_arc(arc), set(target_sets[index])) for arc, index in data.items())) for path, data in arc_data.items())
65
65
  lines = dict((path, dict((int(line), set(target_sets[index])) for line, index in data.items())) for path, data in line_data.items())
@@ -72,12 +72,12 @@ def read_report(path: str) -> tuple[list[str], Arcs, Lines]:
72
72
  try:
73
73
  report = read_json_file(path)
74
74
  except Exception as ex:
75
- raise ApplicationError('File "%s" is not valid JSON: %s' % (path, ex))
75
+ raise ApplicationError('File "%s" is not valid JSON: %s' % (path, ex)) from None
76
76
 
77
77
  try:
78
78
  return load_report(report)
79
79
  except ApplicationError as ex:
80
- raise ApplicationError('File "%s" is not an aggregated coverage data file. %s' % (path, ex))
80
+ raise ApplicationError('File "%s" is not an aggregated coverage data file. %s' % (path, ex)) from None
81
81
 
82
82
 
83
83
  def write_report(args: CoverageAnalyzeTargetsConfig, report: dict[str, t.Any], path: str) -> None:
@@ -121,7 +121,7 @@ def _command_coverage_combine_python(args: CoverageCombineConfig, host_state: Ho
121
121
  coverage_files = get_python_coverage_files()
122
122
 
123
123
  def _default_stub_value(source_paths: list[str]) -> dict[str, set[tuple[int, int]]]:
124
- return {path: set() for path in source_paths}
124
+ return {path: {(0, 0)} for path in source_paths}
125
125
 
126
126
  counter = 0
127
127
  sources = _get_coverage_targets(args, walk_compile_targets)
@@ -8,7 +8,6 @@ from ....config import (
8
8
  )
9
9
 
10
10
  from ....containers import (
11
- CleanupMode,
12
11
  run_support_container,
13
12
  )
14
13
 
@@ -22,8 +21,6 @@ from . import (
22
21
  class ACMEProvider(CloudProvider):
23
22
  """ACME plugin. Sets up cloud resources for tests."""
24
23
 
25
- DOCKER_SIMULATOR_NAME = 'acme-simulator'
26
-
27
24
  def __init__(self, args: IntegrationConfig) -> None:
28
25
  super().__init__(args)
29
26
 
@@ -51,17 +48,18 @@ class ACMEProvider(CloudProvider):
51
48
  14000, # Pebble ACME CA
52
49
  ]
53
50
 
54
- run_support_container(
51
+ descriptor = run_support_container(
55
52
  self.args,
56
53
  self.platform,
57
54
  self.image,
58
- self.DOCKER_SIMULATOR_NAME,
55
+ 'acme-simulator',
59
56
  ports,
60
- allow_existing=True,
61
- cleanup=CleanupMode.YES,
62
57
  )
63
58
 
64
- self._set_cloud_config('acme_host', self.DOCKER_SIMULATOR_NAME)
59
+ if not descriptor:
60
+ return
61
+
62
+ self._set_cloud_config('acme_host', descriptor.name)
65
63
 
66
64
  def _setup_static(self) -> None:
67
65
  raise NotImplementedError()
@@ -21,7 +21,6 @@ from ....docker_util import (
21
21
  )
22
22
 
23
23
  from ....containers import (
24
- CleanupMode,
25
24
  run_support_container,
26
25
  wait_for_file,
27
26
  )
@@ -36,8 +35,6 @@ from . import (
36
35
  class CsCloudProvider(CloudProvider):
37
36
  """CloudStack cloud provider plugin. Sets up cloud resources before delegation."""
38
37
 
39
- DOCKER_SIMULATOR_NAME = 'cloudstack-sim'
40
-
41
38
  def __init__(self, args: IntegrationConfig) -> None:
42
39
  super().__init__(args)
43
40
 
@@ -96,10 +93,8 @@ class CsCloudProvider(CloudProvider):
96
93
  self.args,
97
94
  self.platform,
98
95
  self.image,
99
- self.DOCKER_SIMULATOR_NAME,
96
+ 'cloudstack-sim',
100
97
  ports,
101
- allow_existing=True,
102
- cleanup=CleanupMode.YES,
103
98
  )
104
99
 
105
100
  if not descriptor:
@@ -107,7 +102,7 @@ class CsCloudProvider(CloudProvider):
107
102
 
108
103
  # apply work-around for OverlayFS issue
109
104
  # https://github.com/docker/for-linux/issues/72#issuecomment-319904698
110
- docker_exec(self.args, self.DOCKER_SIMULATOR_NAME, ['find', '/var/lib/mysql', '-type', 'f', '-exec', 'touch', '{}', ';'], capture=True)
105
+ docker_exec(self.args, descriptor.name, ['find', '/var/lib/mysql', '-type', 'f', '-exec', 'touch', '{}', ';'], capture=True)
111
106
 
112
107
  if self.args.explain:
113
108
  values = dict(
@@ -115,10 +110,10 @@ class CsCloudProvider(CloudProvider):
115
110
  PORT=str(self.port),
116
111
  )
117
112
  else:
118
- credentials = self._get_credentials(self.DOCKER_SIMULATOR_NAME)
113
+ credentials = self._get_credentials(descriptor.name)
119
114
 
120
115
  values = dict(
121
- HOST=self.DOCKER_SIMULATOR_NAME,
116
+ HOST=descriptor.name,
122
117
  PORT=str(self.port),
123
118
  KEY=credentials['apikey'],
124
119
  SECRET=credentials['secretkey'],