From ca1237602fff7678041e8c338b067453c267712d Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Mon, 15 Oct 2012 13:32:14 -0500 Subject: POSIX: Switch from perms to mode Bcfg2 has traditionally used the 'perms' attribute to specify the file mode for POSIX entries. Switching to a 'mode' attribute will allow us to be more consistent with other tools as well as POSIX itself. Signed-off-by: Sol Jerome --- src/lib/Bcfg2/Client/Tools/POSIX/Directory.py | 2 +- src/lib/Bcfg2/Client/Tools/POSIX/File.py | 2 +- src/lib/Bcfg2/Client/Tools/POSIX/Permissions.py | 2 +- src/lib/Bcfg2/Client/Tools/POSIX/base.py | 40 ++++++++++++------------- 4 files changed, 23 insertions(+), 23 deletions(-) (limited to 'src/lib/Bcfg2/Client/Tools/POSIX') diff --git a/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py b/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py index 9aa8e7fa1..9b0b998bb 100644 --- a/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py +++ b/src/lib/Bcfg2/Client/Tools/POSIX/Directory.py @@ -10,7 +10,7 @@ from Bcfg2.Client.Tools.POSIX.base import POSIXTool class POSIXDirectory(POSIXTool): """ Handle entries """ - __req__ = ['name', 'perms', 'owner', 'group'] + __req__ = ['name', 'mode', 'owner', 'group'] def verify(self, entry, modlist): ondisk = self._exists(entry) diff --git a/src/lib/Bcfg2/Client/Tools/POSIX/File.py b/src/lib/Bcfg2/Client/Tools/POSIX/File.py index 40aade818..5842c4e1f 100644 --- a/src/lib/Bcfg2/Client/Tools/POSIX/File.py +++ b/src/lib/Bcfg2/Client/Tools/POSIX/File.py @@ -12,7 +12,7 @@ from Bcfg2.Compat import unicode, b64encode, b64decode # pylint: disable=W0622 class POSIXFile(POSIXTool): """ Handle entries """ - __req__ = ['name', 'perms', 'owner', 'group'] + __req__ = ['name', 'mode', 'owner', 'group'] def fully_specified(self, entry): return entry.text is not None or entry.get('empty', 'false') == 'true' diff --git a/src/lib/Bcfg2/Client/Tools/POSIX/Permissions.py b/src/lib/Bcfg2/Client/Tools/POSIX/Permissions.py index 5859f844a..d575dbab0 100644 --- a/src/lib/Bcfg2/Client/Tools/POSIX/Permissions.py +++ b/src/lib/Bcfg2/Client/Tools/POSIX/Permissions.py @@ -5,4 +5,4 @@ from Bcfg2.Client.Tools.POSIX.base import POSIXTool class POSIXPermissions(POSIXTool): """ Handle entries """ - __req__ = ['name', 'perms', 'owner', 'group'] + __req__ = ['name', 'mode', 'owner', 'group'] diff --git a/src/lib/Bcfg2/Client/Tools/POSIX/base.py b/src/lib/Bcfg2/Client/Tools/POSIX/base.py index 07d4ab015..8c9e5a1f5 100644 --- a/src/lib/Bcfg2/Client/Tools/POSIX/base.py +++ b/src/lib/Bcfg2/Client/Tools/POSIX/base.py @@ -113,16 +113,16 @@ class POSIXTool(Bcfg2.Client.Tools.Tool): path) rv = False - if entry.get("perms"): - wanted_perms = int(entry.get('perms'), 8) + if entry.get("mode"): + wanted_mode = int(entry.get('mode'), 8) if entry.get('dev_type'): - wanted_perms |= device_map[entry.get('dev_type')] + wanted_mode |= device_map[entry.get('dev_type')] try: - self.logger.debug("POSIX: Setting permissions on %s to %s" % - (path, oct(wanted_perms))) - os.chmod(path, wanted_perms) + self.logger.debug("POSIX: Setting mode on %s to %s" % + (path, oct(wanted_mode))) + os.chmod(path, wanted_mode) except (OSError, KeyError): - self.logger.error('POSIX: Failed to change permissions on %s' % + self.logger.error('POSIX: Failed to change mode on %s' % path) rv = False @@ -426,12 +426,12 @@ class POSIXTool(Bcfg2.Client.Tools.Tool): group = None try: - perms = oct(ondisk[stat.ST_MODE])[-4:] + mode = oct(ondisk[stat.ST_MODE])[-4:] except (OSError, KeyError, TypeError): err = sys.exc_info()[1] self.logger.debug("POSIX: Could not get current permissions of " "%s: %s" % (path, err)) - perms = None + mode = None if HAS_SELINUX: try: @@ -448,17 +448,17 @@ class POSIXTool(Bcfg2.Client.Tools.Tool): acls = self._list_file_acls(path) else: acls = None - return (ondisk, owner, group, perms, secontext, acls) + return (ondisk, owner, group, mode, secontext, acls) def _verify_metadata(self, entry, path=None): # pylint: disable=R0912 - """ generic method to verify perms, owner, group, secontext, acls, + """ generic method to verify mode, owner, group, secontext, acls, and mtime """ # allow setting an alternate path for recursive permissions checking if path is None: path = entry.get('name') attrib = dict() ondisk, attrib['current_owner'], attrib['current_group'], \ - attrib['current_perms'], attrib['current_secontext'] = \ + attrib['current_mode'], attrib['current_secontext'] = \ self._gather_data(path)[0:5] if not ondisk: @@ -473,17 +473,17 @@ class POSIXTool(Bcfg2.Client.Tools.Tool): # symlink and hardlink entries, which have SELinux contexts # but not other permissions, optional secontext and mtime # attrs, and so on. - wanted_owner, wanted_group, wanted_perms, mtime = None, None, None, -1 + wanted_owner, wanted_group, wanted_mode, mtime = None, None, None, -1 if entry.get('mtime', '-1') != '-1': mtime = str(ondisk[stat.ST_MTIME]) if entry.get("owner"): wanted_owner = str(self._norm_entry_uid(entry)) if entry.get("group"): wanted_group = str(self._norm_entry_gid(entry)) - if entry.get("perms"): - while len(entry.get('perms', '')) < 4: - entry.set('perms', '0' + entry.get('perms', '')) - wanted_perms = int(entry.get('perms'), 8) + if entry.get("mode"): + while len(entry.get('mode', '')) < 4: + entry.set('mode', '0' + entry.get('mode', '')) + wanted_mode = int(entry.get('mode'), 8) errors = [] if wanted_owner and attrib['current_owner'] != wanted_owner: @@ -496,11 +496,11 @@ class POSIXTool(Bcfg2.Client.Tools.Tool): "Current group is %s but should be %s" % (path, attrib['current_group'], entry.get('group'))) - if (wanted_perms and - oct(int(attrib['current_perms'], 8)) != oct(wanted_perms)): + if (wanted_mode and + oct(int(attrib['current_mode'], 8)) != oct(wanted_mode)): errors.append("Permissions for path %s are incorrect. " "Current permissions are %s but should be %s" % - (path, attrib['current_perms'], entry.get('perms'))) + (path, attrib['current_mode'], entry.get('mode'))) if entry.get('mtime'): attrib['current_mtime'] = mtime -- cgit v1.2.3-1-g7c22