mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
zfs_delegate_admin: fix: zfs allow cannot parse unknown uid/gid (#5943)
When setting allow permissions for particular users or groups there will be circumstances when that user is not known to the host system. In that case the output of `zfs allow <pool/dataset>` looks similar to this: $ sudo zfs allow tank/test ---- Permissions on tank/test --------------------------------------- Local+Descendent permissions: user (unknown: 1002) hold user zfsuser receive The fix in this commit removes ' (unknown: '+')' from the output leaving only the uid/gid. This allows the current parser to continue even if the uid/gid is not known. This situation occurs most often when moving a zpool from one system to another that may not have the same users/groups. Simply adding permissions to a user/group and then deleting the user/group from the system will cause this situation to occur.
This commit is contained in:
parent
f0529dcb0e
commit
53f729730b
2 changed files with 5 additions and 0 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- zfs_delegate_admin - zfs allow output can now be parsed when uids/gids are not known to the host system (https://github.com/ansible-collections/community.general/pull/5943).
|
|
@ -184,6 +184,9 @@ class ZfsDelegateAdmin(object):
|
||||||
scope = linemap.get(line, scope)
|
scope = linemap.get(line, scope)
|
||||||
if not scope:
|
if not scope:
|
||||||
continue
|
continue
|
||||||
|
if ' (unknown: ' in line:
|
||||||
|
line = line.replace('(unknown: ', '', 1)
|
||||||
|
line = line.replace(')', '', 1)
|
||||||
try:
|
try:
|
||||||
if line.startswith('\tuser ') or line.startswith('\tgroup '):
|
if line.startswith('\tuser ') or line.startswith('\tgroup '):
|
||||||
ent_type, ent, cur_perms = line.split()
|
ent_type, ent, cur_perms = line.split()
|
||||||
|
|
Loading…
Reference in a new issue