summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Fontein <felix@fontein.de>2022-03-18 23:50:22 +0100
committerGitHub <noreply@github.com>2022-03-18 15:50:22 -0700
commit660e8fa07d1b48412714c64b569a6d701dac312e (patch)
treef6cefcf39e7e485a5f643db2fc6baf432e1d2350
parent7ddf9c6bff95a5c688cfb79a35b6e246453528ab (diff)
downloadansible-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.yml2
-rw-r--r--lib/ansible/modules/unarchive.py11
-rw-r--r--test/sanity/ignore.txt1
-rw-r--r--test/units/modules/test_unarchive.py2
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