]> git.ipfire.org Git - thirdparty/libcgroup.git/commitdiff
ftests: Use sudo for many cgroup commands when not in a container
authorTom Hromatka <tom.hromatka@oracle.com>
Wed, 3 Feb 2021 17:00:52 +0000 (10:00 -0700)
committerTom Hromatka <tom.hromatka@oracle.com>
Wed, 3 Feb 2021 22:11:53 +0000 (22:11 +0000)
When not running in a container, prepend 'sudo' to the
front of cgcreate, cgdelete, cgset, and cgclassify.

It would be advantageous to properly utilize permissions
within Linux so that we don't need to 'sudo' these
commands, but that's more of a kernel/sysfs/cgroups
issue than a libcgroup issue.  (Yes, libcgroup does allow
for setting owners and permissions, so someday we should
test this, but that's not a high priority at present.)

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

index 5906a199dd488bc8623b37f42b3ba46e7cd297fb..4ff64c6f3224c116905e456afa2f6594c6a79986 100644 (file)
@@ -90,6 +90,9 @@ class Cgroup(object):
             controller_list = [controller_list]
 
         cmd = list()
+
+        if not config.args.container:
+            cmd.append('sudo')
         cmd.append(Cgroup.build_cmd_path('cgcreate'))
 
         controllers_and_path = '{}:{}'.format(
@@ -109,6 +112,9 @@ class Cgroup(object):
             controller_list = [controller_list]
 
         cmd = list()
+
+        if not config.args.container:
+            cmd.append('sudo')
         cmd.append(Cgroup.build_cmd_path('cgdelete'))
 
         if recursive:
@@ -128,6 +134,9 @@ class Cgroup(object):
     @staticmethod
     def set(config, cgname, setting, value):
         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):
@@ -226,6 +235,9 @@ class Cgroup(object):
     def classify(config, controller, cgname, pid_list, sticky=False,
                  cancel_sticky=False):
         cmd = list()
+
+        if not config.args.container:
+            cmd.append('sudo')
         cmd.append(Cgroup.build_cmd_path('cgclassify'))
         cmd.append('-g')
         cmd.append('{}:{}'.format(controller, cgname))