]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
cgroup.py: Add support for lscgroup
authorTom Hromatka <tom.hromatka@oracle.com>
Thu, 25 Mar 2021 16:33:38 +0000 (16:33 +0000)
committerTom Hromatka <tom.hromatka@oracle.com>
Thu, 8 Apr 2021 19:09:51 +0000 (13:09 -0600)
Add support for lscgroup to the Cgroup class.

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

index 0e2dd3a2179ac61ddc196314fe8ef8a092da875c..31e06bd79b4a0039c5a275ba1e2f9d09e128fc9b 100644 (file)
@@ -750,3 +750,36 @@ class Cgroup(object):
                             mount_list.append(mount_copy)
 
         return mount_list
+
+    @staticmethod
+    def lscgroup(config, cghelp=False, controller=None, path=None):
+        cmd = list()
+
+        cmd.append(Cgroup.build_cmd_path('lscgroup'))
+
+        if cghelp:
+            cmd.append('-h')
+
+        if controller is not None and path is not None:
+            if isinstance(controller, list):
+                for idx, ctrl in enumerate(controller):
+                    cmd.append('-g')
+                    cmd.append('{}:{}'.format(ctrl, path[idx]))
+            elif isinstance(controller, str):
+                cmd.append('-g')
+                cmd.append('{}:{}'.format(controller, path))
+            else:
+                raise ValueError('Unsupported controller value')
+
+        if config.args.container:
+            ret = config.container.run(cmd)
+        else:
+            try:
+                ret = Run.run(cmd)
+            except RunError as re:
+                if "profiling" in re.stderr:
+                    ret = re.stdout
+                else:
+                    raise re
+
+        return ret