summaryrefslogtreecommitdiff
path: root/rdiff-backup/rdiff_backup/user_group.py
diff options
context:
space:
mode:
authorbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2003-09-18 02:10:14 +0000
committerbescoto <bescoto@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109>2003-09-18 02:10:14 +0000
commitbfd24043e3f728e960cf8c8829df36d799505106 (patch)
treec17ceb5abdb684d868e77f38780a4a523ada322d /rdiff-backup/rdiff_backup/user_group.py
parent70b97a3bc174351ff9a3044414c2699070304488 (diff)
downloadrdiff-backup-bfd24043e3f728e960cf8c8829df36d799505106.tar.gz
Added --never-drop-acls, ACL entry dropping. Final for 0.13.2
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@442 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/user_group.py')
-rw-r--r--rdiff-backup/rdiff_backup/user_group.py28
1 files changed, 28 insertions, 0 deletions
diff --git a/rdiff-backup/rdiff_backup/user_group.py b/rdiff-backup/rdiff_backup/user_group.py
index 896e60e..b34f0cf 100644
--- a/rdiff-backup/rdiff_backup/user_group.py
+++ b/rdiff-backup/rdiff_backup/user_group.py
@@ -60,6 +60,16 @@ def gid2gname(gid):
gid2gname_dict[gid] = gname
return gname
+def uname2uid(uname):
+ """Given uname, return uid or None if cannot find"""
+ try: uname = pwd.getpwnam(uname)[2]
+ except KeyError: return None
+
+def gname2gid(gname):
+ """Given gname, return gid or None if cannot find"""
+ try: gname = grp.getgrnam(gname)[2]
+ except KeyError: return None
+
class Map:
"""Used for mapping names and id on source side to dest side"""
@@ -77,12 +87,25 @@ class Map:
self.name2id_dict[name] = out_id
return out_id
+ def get_id_from_name(self, name):
+ """Return mapped id from name only, or None if cannot"""
+ try: return self.name2id_dict[name]
+ except KeyError:
+ out_id = self.find_id_from_name(name)
+ self.name2id_dict[name] = out_id
+ return out_id
+
def get_id_from_id(self, id): return id
def find_id(self, id, name):
"""Find the proper id to use with given id and name"""
try: return self.name2id_func(name)
except KeyError: return id
+
+ def find_id_from_name(self, name):
+ """Look up proper id to use with name, or None"""
+ try: return self.name2id_func(name)
+ except KeyError: return None
class DefinedMap(Map):
"""Map names and ids on source side to appropriate ids on dest side
@@ -134,6 +157,11 @@ class DefinedMap(Map):
try: return self.id_mapping_dict[id]
except KeyError: return Map.find_id(self, id, name)
+ def find_id_from_name(self, name):
+ """Find id to map name to, or None if we can't"""
+ try: return self.name_mapping_dict[name]
+ except KeyError: return Map.find_id_from_name(name)
+
def init_user_mapping(mapping_string = None):
"""Initialize user mapping with given mapping string or None"""
global UserMap