From dc0a56141fd41c94ff7c79dc902f97255da295cb Mon Sep 17 00:00:00 2001 From: Lauri Tirkkonen Date: Mon, 17 May 2021 19:55:00 +0300 Subject: [PATCH] zfs_delegate_admin: drop choices from permissions (#2540) instead of whitelisting some subset of known existing permissions, just allow any string to be used as permissions. this way, any permission supported by the underlying zfs commands can be used, eg. 'bookmark', 'load-key', 'change-key' and all property permissions, which were missing from the choices list. --- changelogs/fragments/2540-zfs-delegate-choices.yml | 2 ++ plugins/modules/storage/zfs/zfs_delegate_admin.py | 8 +++----- 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 changelogs/fragments/2540-zfs-delegate-choices.yml diff --git a/changelogs/fragments/2540-zfs-delegate-choices.yml b/changelogs/fragments/2540-zfs-delegate-choices.yml new file mode 100644 index 0000000000..8e0138420c --- /dev/null +++ b/changelogs/fragments/2540-zfs-delegate-choices.yml @@ -0,0 +1,2 @@ +minor_changes: + - zfs_delegate_admin - drop choices from permissions, allowing any permission supported by the underlying zfs commands (https://github.com/ansible-collections/community.general/pull/2540). diff --git a/plugins/modules/storage/zfs/zfs_delegate_admin.py b/plugins/modules/storage/zfs/zfs_delegate_admin.py index 71225fa155..ead4041150 100644 --- a/plugins/modules/storage/zfs/zfs_delegate_admin.py +++ b/plugins/modules/storage/zfs/zfs_delegate_admin.py @@ -51,8 +51,9 @@ options: permissions: description: - The list of permission(s) to delegate (required if C(state) is C(present)). + - Supported permissions depend on the ZFS version in use. See for example + U(https://openzfs.github.io/openzfs-docs/man/8/zfs-allow.8.html) for OpenZFS. type: list - choices: [ allow, clone, create, destroy, diff, hold, mount, promote, readonly, receive, release, rename, rollback, send, share, snapshot, unallow ] elements: str local: description: @@ -248,10 +249,7 @@ def main(): users=dict(type='list', elements='str'), groups=dict(type='list', elements='str'), everyone=dict(type='bool', default=False), - permissions=dict(type='list', elements='str', - choices=['allow', 'clone', 'create', 'destroy', 'diff', 'hold', 'mount', 'promote', - 'readonly', 'receive', 'release', 'rename', 'rollback', 'send', 'share', - 'snapshot', 'unallow']), + permissions=dict(type='list', elements='str'), local=dict(type='bool'), descendents=dict(type='bool'), recursive=dict(type='bool', default=False),