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.hroma...@oracle.com>
---
 ftests/utils.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 65 insertions(+)

diff --git a/ftests/utils.py b/ftests/utils.py
index 47a63e5caa82..f35301793256 100644
--- a/ftests/utils.py
+++ b/ftests/utils.py
@@ -19,7 +19,72 @@
 # 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)
-- 
2.26.2



_______________________________________________
Libcg-devel mailing list
Libcg-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/libcg-devel

Reply via email to