diff options
author | Felix Fontein <felix@fontein.de> | 2022-03-18 23:50:22 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-03-18 15:50:22 -0700 |
commit | 660e8fa07d1b48412714c64b569a6d701dac312e (patch) | |
tree | f6cefcf39e7e485a5f643db2fc6baf432e1d2350 | |
parent | 7ddf9c6bff95a5c688cfb79a35b6e246453528ab (diff) | |
download | ansible-660e8fa07d1b48412714c64b569a6d701dac312e.tar.gz |
unarchive: fix io_buffer_size option, remove ignore.txt entry (#77271) (#77311)
* Fix io_buffer_size option.
* Remove ignore.txt entry by adding action plugin only options to module's argument spec.
* Add changelog fragment.
* Adjust unit tests.
(cherry picked from commit e3c72230cda45798b4d9bd98c7f296d2895c4027)
-rw-r--r-- | changelogs/fragments/77271-unarchive.yml | 2 | ||||
-rw-r--r-- | lib/ansible/modules/unarchive.py | 11 | ||||
-rw-r--r-- | test/sanity/ignore.txt | 1 | ||||
-rw-r--r-- | test/units/modules/test_unarchive.py | 2 |
4 files changed, 13 insertions, 3 deletions
diff --git a/changelogs/fragments/77271-unarchive.yml b/changelogs/fragments/77271-unarchive.yml new file mode 100644 index 0000000000..deca48e504 --- /dev/null +++ b/changelogs/fragments/77271-unarchive.yml @@ -0,0 +1,2 @@ +bugfixes: + - "unarchive - the ``io_buffer_size`` option added in 2.12 was not accepted by the module (https://github.com/ansible/ansible/pull/77271)." diff --git a/lib/ansible/modules/unarchive.py b/lib/ansible/modules/unarchive.py index 0b265943b7..3eba055aef 100644 --- a/lib/ansible/modules/unarchive.py +++ b/lib/ansible/modules/unarchive.py @@ -53,7 +53,7 @@ options: description: - Size of the volatile memory buffer that is used for extracting files from the archive in bytes. type: int - default: 64 KiB + default: 65536 version_added: "2.12" list_files: description: @@ -305,7 +305,7 @@ class ZipArchive(object): self.file_args = file_args self.opts = module.params['extra_opts'] self.module = module - self.io_buffer_size = module.params.get("io_buffer_size", 64 * 1024) + self.io_buffer_size = module.params["io_buffer_size"] self.excludes = module.params['exclude'] self.includes = [] self.include_files = self.module.params['include'] @@ -977,6 +977,13 @@ def main(): include=dict(type='list', elements='str', default=[]), extra_opts=dict(type='list', elements='str', default=[]), validate_certs=dict(type='bool', default=True), + io_buffer_size=dict(type='int', default=64 * 1024), + + # Options that are for the action plugin, but ignored by the module itself. + # We have them here so that the sanity tests pass without ignores, which + # reduces the likelihood of further bugs added. + copy=dict(type='bool', default=True), + decrypt=dict(type='bool', default=True), ), add_file_common_args=True, # check-mode only works for zip files, we cover that later diff --git a/test/sanity/ignore.txt b/test/sanity/ignore.txt index 058331e1d3..1dba93b03e 100644 --- a/test/sanity/ignore.txt +++ b/test/sanity/ignore.txt @@ -101,7 +101,6 @@ lib/ansible/modules/stat.py validate-modules:undocumented-parameter lib/ansible/modules/systemd.py validate-modules:parameter-invalid lib/ansible/modules/systemd.py validate-modules:return-syntax-error lib/ansible/modules/sysvinit.py validate-modules:return-syntax-error -lib/ansible/modules/unarchive.py validate-modules:nonexistent-parameter-documented lib/ansible/modules/uri.py pylint:disallowed-name lib/ansible/modules/uri.py validate-modules:doc-required-mismatch lib/ansible/modules/user.py validate-modules:doc-default-does-not-match-spec diff --git a/test/units/modules/test_unarchive.py b/test/units/modules/test_unarchive.py index c330037276..3e7a58c98b 100644 --- a/test/units/modules/test_unarchive.py +++ b/test/units/modules/test_unarchive.py @@ -52,6 +52,7 @@ class TestCaseZipArchive: "extra_opts": "", "exclude": "", "include": "", + "io_buffer_size": 65536, } z = ZipArchive( @@ -74,6 +75,7 @@ class TestCaseTgzArchive: "extra_opts": "", "exclude": "", "include": "", + "io_buffer_size": 65536, } fake_ansible_module.check_mode = False |