From 7ccaa245b62ac28ad62fc748e86e8a188e6a0f1f Mon Sep 17 00:00:00 2001 From: Jarrod Johnson Date: Fri, 8 Oct 2021 10:02:13 -0400 Subject: [PATCH] Provide both string and numeric for owner/group To provide a fallback for unrecognized user/group, provide an id for syncfileclient to resort for. --- confluent_server/confluent/syncfiles.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/confluent_server/confluent/syncfiles.py b/confluent_server/confluent/syncfiles.py index 86c89e45..8f7d455d 100644 --- a/confluent_server/confluent/syncfiles.py +++ b/confluent_server/confluent/syncfiles.py @@ -22,6 +22,8 @@ import confluent.sshutil as sshutil import eventlet.green.subprocess as subprocess import confluent.noderange as noderange import eventlet +import pwd +import grp def mkdirp(path): try: @@ -93,6 +95,18 @@ class SyncList(object): opts = opts[1:-1] for opt in opts.split(','): optname, optval = opt.split('=') + if optname == 'owner': + try: + uid = pwd.getpwnam(optval).pw_uid + except KeyError: + uid = None + optval = {'name': optval, 'id': uid} + elif optname == 'group': + try: + gid = grp.getgrnam(optval).gr_gid + except KeyError: + gid = None + optval = {'name': optval, 'id': gid} entopts[optname] = optval currmap[k] = v targ = v if v else k