]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
cgroup.py: Add support for cgset --copy-from flag
authorTom Hromatka <tom.hromatka@oracle.com>
Wed, 10 Mar 2021 17:15:19 +0000 (17:15 +0000)
committerTom Hromatka <tom.hromatka@oracle.com>
Mon, 22 Mar 2021 17:34:24 +0000 (11:34 -0600)
Add support for cgset's --copy-from flag to Cgroup.set().

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

index c7213077c44433ffca4a37b1f7659dee2d0f210f..bd4a7a5cbf73973a79ebcf07c9f00083f949aa00 100644 (file)
@@ -141,23 +141,31 @@ class Cgroup(object):
             Run.run(cmd)
 
     @staticmethod
-    def set(config, cgname, setting, value):
+    def set(config, cgname, setting=None, value=None, copy_from=None):
         cmd = list()
 
         if not config.args.container:
             cmd.append('sudo')
         cmd.append(Cgroup.build_cmd_path('cgset'))
 
-        if isinstance(setting, str) and isinstance(value, str):
-            cmd.append('-r')
-            cmd.append('{}={}'.format(setting, value))
-        elif isinstance(setting, list) and isinstance(value, list):
-            if len(setting) != len(value):
-                raise ValueError('Settings list length must equal values list length')
-
-            for idx, stg in enumerate(setting):
+        if setting is not None or value is not None:
+            if isinstance(setting, str) and isinstance(value, str):
                 cmd.append('-r')
-                cmd.append('{}={}'.format(stg, value[idx]))
+                cmd.append('{}={}'.format(setting, value))
+            elif isinstance(setting, list) and isinstance(value, list):
+                if len(setting) != len(value):
+                    raise ValueError('Settings list length must equal values list length')
+
+                for idx, stg in enumerate(setting):
+                    cmd.append('-r')
+                    cmd.append('{}={}'.format(stg, value[idx]))
+            else:
+                raise ValueError('Invalid inputs to cgget:\nsetting: {}\n' \
+                                 'value{}'.format(setting, value))
+
+        if copy_from is not None:
+            cmd.append('--copy-from')
+            cmd.append(copy_from)
 
         cmd.append(cgname)