mirror of https://github.com/borgbackup/borg.git
move code from borg.helpers.usergroup to borg.platform.posix
This commit is contained in:
parent
78a3f2475e
commit
b997d5ba5b
|
@ -29,7 +29,7 @@ from .helpers import Manifest
|
|||
from .helpers import hardlinkable
|
||||
from .helpers import ChunkIteratorFileWrapper, open_item
|
||||
from .helpers import Error, IntegrityError, set_ec
|
||||
from .helpers import uid2user, user2uid, gid2group, group2gid
|
||||
from .platform import uid2user, user2uid, gid2group, group2gid
|
||||
from .helpers import parse_timestamp, to_localtime
|
||||
from .helpers import OutputTimestamp, format_timedelta, format_file_size, file_status, FileSize
|
||||
from .helpers import safe_encode, safe_decode, make_path_safe, remove_surrogates
|
||||
|
|
|
@ -16,7 +16,6 @@ from .parseformat import * # NOQA
|
|||
from .process import * # NOQA
|
||||
from .progress import * # NOQA
|
||||
from .time import * # NOQA
|
||||
from .usergroup import * # NOQA
|
||||
from .yes import * # NOQA
|
||||
|
||||
from .msgpack import is_slow_msgpack, int_to_bigint, bigint_to_int, get_limited_unpacker
|
||||
|
|
|
@ -19,7 +19,6 @@ logger = create_logger()
|
|||
from .errors import Error
|
||||
from .fs import get_keys_dir
|
||||
from .time import OutputTimestamp, format_time, to_localtime, safe_timestamp, safe_s
|
||||
from .usergroup import uid2user
|
||||
from .. import __version__ as borg_version
|
||||
from .. import __version_tuple__ as borg_version_tuple
|
||||
from ..constants import * # NOQA
|
||||
|
@ -179,7 +178,7 @@ def format_line(format, data):
|
|||
|
||||
def replace_placeholders(text):
|
||||
"""Replace placeholders in text with their values."""
|
||||
from ..platform import fqdn, hostname
|
||||
from ..platform import fqdn, hostname, getosusername
|
||||
current_time = datetime.now(timezone.utc)
|
||||
data = {
|
||||
'pid': os.getpid(),
|
||||
|
@ -188,7 +187,7 @@ def replace_placeholders(text):
|
|||
'hostname': hostname,
|
||||
'now': DatetimeWrapper(current_time.astimezone(None)),
|
||||
'utcnow': DatetimeWrapper(current_time),
|
||||
'user': uid2user(os.getuid(), os.getuid()),
|
||||
'user': getosusername(),
|
||||
'uuid4': str(uuid.uuid4()),
|
||||
'borgversion': borg_version,
|
||||
'borgmajor': '%d' % borg_version_tuple[:1],
|
||||
|
|
|
@ -1,50 +0,0 @@
|
|||
import grp
|
||||
import pwd
|
||||
from functools import lru_cache
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def uid2user(uid, default=None):
|
||||
try:
|
||||
return pwd.getpwuid(uid).pw_name
|
||||
except KeyError:
|
||||
return default
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def user2uid(user, default=None):
|
||||
try:
|
||||
return user and pwd.getpwnam(user).pw_uid
|
||||
except KeyError:
|
||||
return default
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def gid2group(gid, default=None):
|
||||
try:
|
||||
return grp.getgrgid(gid).gr_name
|
||||
except KeyError:
|
||||
return default
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def group2gid(group, default=None):
|
||||
try:
|
||||
return group and grp.getgrnam(group).gr_gid
|
||||
except KeyError:
|
||||
return default
|
||||
|
||||
|
||||
def posix_acl_use_stored_uid_gid(acl):
|
||||
"""Replace the user/group field with the stored uid/gid
|
||||
"""
|
||||
from .parseformat import safe_decode, safe_encode
|
||||
entries = []
|
||||
for entry in safe_decode(acl).split('\n'):
|
||||
if entry:
|
||||
fields = entry.split(':')
|
||||
if len(fields) == 4:
|
||||
entries.append(':'.join([fields[0], fields[3], fields[2]]))
|
||||
else:
|
||||
entries.append(entry)
|
||||
return safe_encode('\n'.join(entries))
|
|
@ -19,6 +19,7 @@ if not sys.platform.startswith(('win32', )):
|
|||
from .posix import process_alive, local_pid_alive
|
||||
# posix swidth implementation works for: linux, freebsd, darwin, openindiana, cygwin
|
||||
from .posix import swidth
|
||||
from .posix import uid2user, user2uid, gid2group, group2gid, getosusername
|
||||
|
||||
if sys.platform.startswith('linux'): # pragma: linux only
|
||||
from .linux import API_VERSION as OS_API_VERSION
|
||||
|
|
|
@ -2,7 +2,7 @@ import os
|
|||
|
||||
from libc.stdint cimport uint32_t
|
||||
|
||||
from ..helpers import user2uid, group2gid
|
||||
from .posix import user2uid, group2gid
|
||||
from ..helpers import safe_decode, safe_encode
|
||||
from .xattr import _listxattr_inner, _getxattr_inner, _setxattr_inner, split_string0
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import os
|
||||
|
||||
from ..helpers import posix_acl_use_stored_uid_gid
|
||||
from .posix import posix_acl_use_stored_uid_gid
|
||||
from ..helpers import safe_encode, safe_decode
|
||||
from .xattr import _listxattr_inner, _getxattr_inner, _setxattr_inner, split_lstring
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@ import re
|
|||
import stat
|
||||
import subprocess
|
||||
|
||||
from ..helpers import posix_acl_use_stored_uid_gid
|
||||
from ..helpers import user2uid, group2gid
|
||||
from .posix import posix_acl_use_stored_uid_gid
|
||||
from .posix import user2uid, group2gid
|
||||
from ..helpers import safe_decode, safe_encode
|
||||
from .base import SyncFile as BaseSyncFile
|
||||
from .base import safe_fadvise
|
||||
|
|
|
@ -1,5 +1,10 @@
|
|||
import errno
|
||||
import os
|
||||
# begin moved form helpers/usergroup.py
|
||||
import grp
|
||||
import pwd
|
||||
from functools import lru_cache
|
||||
# end moved
|
||||
|
||||
from libc.errno cimport errno as c_errno
|
||||
|
||||
|
@ -61,3 +66,56 @@ def local_pid_alive(pid):
|
|||
return False
|
||||
# Any other error (eg. permissions) means that the process ID refers to a live process.
|
||||
return True
|
||||
|
||||
# begin moved form helpers/usergroup.py
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def uid2user(uid, default=None):
|
||||
try:
|
||||
return pwd.getpwuid(uid).pw_name
|
||||
except KeyError:
|
||||
return default
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def user2uid(user, default=None):
|
||||
try:
|
||||
return user and pwd.getpwnam(user).pw_uid
|
||||
except KeyError:
|
||||
return default
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def gid2group(gid, default=None):
|
||||
try:
|
||||
return grp.getgrgid(gid).gr_name
|
||||
except KeyError:
|
||||
return default
|
||||
|
||||
|
||||
@lru_cache(maxsize=None)
|
||||
def group2gid(group, default=None):
|
||||
try:
|
||||
return group and grp.getgrnam(group).gr_gid
|
||||
except KeyError:
|
||||
return default
|
||||
|
||||
|
||||
def posix_acl_use_stored_uid_gid(acl):
|
||||
"""Replace the user/group field with the stored uid/gid
|
||||
"""
|
||||
from ..helpers import safe_decode, safe_encode
|
||||
entries = []
|
||||
for entry in safe_decode(acl).split('\n'):
|
||||
if entry:
|
||||
fields = entry.split(':')
|
||||
if len(fields) == 4:
|
||||
entries.append(':'.join([fields[0], fields[3], fields[2]]))
|
||||
else:
|
||||
entries.append(entry)
|
||||
return safe_encode('\n'.join(entries))
|
||||
#end moved
|
||||
|
||||
def getosusername():
|
||||
"""Return the os user name."""
|
||||
return uid2user(os.getuid(), os.getuid())
|
||||
|
|
Loading…
Reference in New Issue