diff --git a/changelogs/fragments/1766-zfs-fixed-sanity.yml b/changelogs/fragments/1766-zfs-fixed-sanity.yml new file mode 100644 index 0000000000..ac31084e2c --- /dev/null +++ b/changelogs/fragments/1766-zfs-fixed-sanity.yml @@ -0,0 +1,2 @@ +bugfixes: + - zfs_delegate_admin - the elements of ``users``, ``groups`` and ``permissions`` are now enforced to be strings (https://github.com/ansible-collections/community.general/pull/1766). diff --git a/plugins/modules/storage/zfs/zfs.py b/plugins/modules/storage/zfs/zfs.py index 6b2260fb14..8013dd1128 100644 --- a/plugins/modules/storage/zfs/zfs.py +++ b/plugins/modules/storage/zfs/zfs.py @@ -19,6 +19,7 @@ options: description: - File system, snapshot or volume name e.g. C(rpool/myfs). required: true + type: str state: description: - Whether to create (C(present)), or remove (C(absent)) a @@ -26,13 +27,16 @@ options: will be created/destroyed as needed to reach the desired state. choices: [ absent, present ] required: true + type: str origin: description: - Snapshot from which to create a clone. + type: str extra_zfs_properties: description: - A dictionary of zfs properties to be set. - See the zfs(8) man page for more information. + type: dict author: - Johan Wiren (@johanwiren) ''' diff --git a/plugins/modules/storage/zfs/zfs_delegate_admin.py b/plugins/modules/storage/zfs/zfs_delegate_admin.py index 223d7f72ad..71225fa155 100644 --- a/plugins/modules/storage/zfs/zfs_delegate_admin.py +++ b/plugins/modules/storage/zfs/zfs_delegate_admin.py @@ -32,14 +32,17 @@ options: - When set to C(absent), removes permissions from the specified entities, or removes all permissions if no entity params are specified. choices: [ absent, present ] default: present + type: str users: description: - List of users to whom permission(s) should be granted. type: list + elements: str groups: description: - List of groups to whom permission(s) should be granted. type: list + elements: str everyone: description: - Apply permissions to everyone. @@ -50,6 +53,7 @@ options: - The list of permission(s) to delegate (required if C(state) is C(present)). type: list choices: [ allow, clone, create, destroy, diff, hold, mount, promote, readonly, receive, release, rename, rollback, send, share, snapshot, unallow ] + elements: str local: description: - Apply permissions to C(name) locally (C(zfs allow -l)). @@ -241,10 +245,10 @@ def main(): argument_spec=dict( name=dict(type='str', required=True), state=dict(type='str', default='present', choices=['absent', 'present']), - users=dict(type='list'), - groups=dict(type='list'), + users=dict(type='list', elements='str'), + groups=dict(type='list', elements='str'), everyone=dict(type='bool', default=False), - permissions=dict(type='list', + permissions=dict(type='list', elements='str', choices=['allow', 'clone', 'create', 'destroy', 'diff', 'hold', 'mount', 'promote', 'readonly', 'receive', 'release', 'rename', 'rollback', 'send', 'share', 'snapshot', 'unallow']), diff --git a/plugins/modules/storage/zfs/zfs_facts.py b/plugins/modules/storage/zfs/zfs_facts.py index e7719f688f..930214743a 100644 --- a/plugins/modules/storage/zfs/zfs_facts.py +++ b/plugins/modules/storage/zfs/zfs_facts.py @@ -21,6 +21,7 @@ options: - ZFS dataset name. required: yes aliases: [ "ds", "dataset" ] + type: str recurse: description: - Specifies if properties for any children should be recursively @@ -38,15 +39,18 @@ options: - Specifies which dataset properties should be queried in comma-separated format. For more information about dataset properties, check zfs(1M) man page. default: all + type: str type: description: - Specifies which datasets types to display. Multiple values have to be provided in comma-separated form. choices: [ 'all', 'filesystem', 'volume', 'snapshot', 'bookmark' ] default: all + type: str depth: description: - Specifies recursion depth. + type: int ''' EXAMPLES = ''' diff --git a/plugins/modules/storage/zfs/zpool_facts.py b/plugins/modules/storage/zfs/zpool_facts.py index 728c077902..eced85000e 100644 --- a/plugins/modules/storage/zfs/zpool_facts.py +++ b/plugins/modules/storage/zfs/zpool_facts.py @@ -19,6 +19,7 @@ options: name: description: - ZFS pool name. + type: str aliases: [ "pool", "zpool" ] required: false parsable: @@ -32,6 +33,7 @@ options: description: - Specifies which dataset properties should be queried in comma-separated format. For more information about dataset properties, check zpool(1M) man page. + type: str default: all required: false ''' diff --git a/tests/sanity/ignore-2.10.txt b/tests/sanity/ignore-2.10.txt index 9e3283161a..5c81a09782 100644 --- a/tests/sanity/ignore-2.10.txt +++ b/tests/sanity/ignore-2.10.txt @@ -504,11 +504,6 @@ plugins/modules/storage/purestorage/purefa_facts.py validate-modules:parameter-l plugins/modules/storage/purestorage/purefa_facts.py validate-modules:return-syntax-error plugins/modules/storage/purestorage/purefb_facts.py validate-modules:parameter-list-no-elements plugins/modules/storage/purestorage/purefb_facts.py validate-modules:return-syntax-error -plugins/modules/storage/zfs/zfs.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zfs_delegate_admin.py validate-modules:parameter-list-no-elements -plugins/modules/storage/zfs/zfs_delegate_admin.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zfs_facts.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zpool_facts.py validate-modules:parameter-type-not-in-doc plugins/modules/system/alternatives.py pylint:blacklisted-name plugins/modules/system/beadm.py pylint:blacklisted-name plugins/modules/system/cronvar.py pylint:blacklisted-name diff --git a/tests/sanity/ignore-2.11.txt b/tests/sanity/ignore-2.11.txt index bd80608c65..6c58cd5e6f 100644 --- a/tests/sanity/ignore-2.11.txt +++ b/tests/sanity/ignore-2.11.txt @@ -492,11 +492,6 @@ plugins/modules/storage/purestorage/purefa_facts.py validate-modules:parameter-l plugins/modules/storage/purestorage/purefa_facts.py validate-modules:return-syntax-error plugins/modules/storage/purestorage/purefb_facts.py validate-modules:parameter-list-no-elements plugins/modules/storage/purestorage/purefb_facts.py validate-modules:return-syntax-error -plugins/modules/storage/zfs/zfs.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zfs_delegate_admin.py validate-modules:parameter-list-no-elements -plugins/modules/storage/zfs/zfs_delegate_admin.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zfs_facts.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zpool_facts.py validate-modules:parameter-type-not-in-doc plugins/modules/system/alternatives.py pylint:blacklisted-name plugins/modules/system/beadm.py pylint:blacklisted-name plugins/modules/system/cronvar.py pylint:blacklisted-name diff --git a/tests/sanity/ignore-2.9.txt b/tests/sanity/ignore-2.9.txt index 6c2debeaf5..30e4d00d08 100644 --- a/tests/sanity/ignore-2.9.txt +++ b/tests/sanity/ignore-2.9.txt @@ -452,10 +452,6 @@ plugins/modules/storage/purestorage/purefa_facts.py validate-modules:return-synt plugins/modules/storage/purestorage/purefb_facts.py validate-modules:deprecation-mismatch plugins/modules/storage/purestorage/purefb_facts.py validate-modules:invalid-documentation plugins/modules/storage/purestorage/purefb_facts.py validate-modules:return-syntax-error -plugins/modules/storage/zfs/zfs.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zfs_delegate_admin.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zfs_facts.py validate-modules:parameter-type-not-in-doc -plugins/modules/storage/zfs/zpool_facts.py validate-modules:parameter-type-not-in-doc plugins/modules/system/alternatives.py pylint:blacklisted-name plugins/modules/system/beadm.py pylint:blacklisted-name plugins/modules/system/cronvar.py pylint:blacklisted-name