]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
utils.py: Add functions to get permissions, users, and groups
authorTom Hromatka <tom.hromatka@oracle.com>
Tue, 9 Mar 2021 22:12:39 +0000 (22:12 +0000)
committerTom Hromatka <tom.hromatka@oracle.com>
Mon, 22 Mar 2021 16:44:01 +0000 (10:44 -0600)
Add a few functions to utils.py to get file permissions, owners,
and convert usernames to uids and group names to gids.

Functions added:
get_file_owner_uid()
get_file_owner_username()
get_file_owner_gid()
get_file_owner_group_name()
get_file_permissions()

Signed-off-by: Tom Hromatka <tom.hromatka@oracle.com>
ftests/utils.py

index 47a63e5caa82135604207e4cd03ea28914eaeb51..f353017932567a32be5eab5b0b070bd3f75aca26 100644 (file)
 # along with this library; if not, see <http://www.gnu.org/licenses>.
 #
 
+import grp
+import os
+from run import Run
+
 # function to indent a block of text by cnt number of spaces
 def indent(in_str, cnt):
     leading_indent = cnt * ' '
     return ''.join(leading_indent + line for line in in_str.splitlines(True))
+
+def get_file_owner_uid(config, filename):
+    cmd = list()
+    cmd.append('stat')
+    cmd.append('-c')
+    cmd.append('\'%u\'')
+    cmd.append(filename)
+
+    if config.args.container:
+        return config.container.run(cmd, shell_bool=True)
+    else:
+        return Run.run(cmd, shell_bool=True)
+
+def get_file_owner_username(config, filename):
+    cmd = list()
+    cmd.append('stat')
+    cmd.append('-c')
+    cmd.append('\'%U\'')
+    cmd.append(filename)
+
+    if config.args.container:
+        return config.container.run(cmd, shell_bool=True)
+    else:
+        return Run.run(cmd, shell_bool=True)
+    return os.stat(filename).st_uid
+
+def get_file_owner_gid(config, filename):
+    cmd = list()
+    cmd.append('stat')
+    cmd.append('-c')
+    cmd.append('\'%g\'')
+    cmd.append(filename)
+
+    if config.args.container:
+        return config.container.run(cmd, shell_bool=True)
+    else:
+        return Run.run(cmd, shell_bool=True)
+
+def get_file_owner_group_name(config, filename):
+    cmd = list()
+    cmd.append('stat')
+    cmd.append('-c')
+    cmd.append('\'%G\'')
+    cmd.append(filename)
+
+    if config.args.container:
+        return config.container.run(cmd, shell_bool=True)
+    else:
+        return Run.run(cmd, shell_bool=True)
+
+def get_file_permissions(config, filename):
+    cmd = list()
+    cmd.append('stat')
+    cmd.append('-c')
+    cmd.append('\'%a\'')
+    cmd.append(filename)
+
+    if config.args.container:
+        return config.container.run(cmd, shell_bool=True)
+    else:
+        return Run.run(cmd, shell_bool=True)