From: Tom Hromatka Date: Thu, 16 Dec 2021 14:59:11 +0000 (-0700) Subject: ftests: Add support for cgxset to the Cgroup class X-Git-Tag: v3.1.0~308^2~2^2~105^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0bfc48ec2741aaf32b5cb7d13d0cc49a62bd36e;p=thirdparty%2Flibcgroup.git ftests: Add support for cgxset to the Cgroup class Add support for cgxset to the Cgroup class The pydoc for Cgroup.xset() is available by running: $ python -c "from cgroup import Cgroup;help(Cgroup.xset)" Signed-off-by: Tom Hromatka --- diff --git a/ftests/cgroup.py b/ftests/cgroup.py index fffb77f8..9868686d 100644 --- a/ftests/cgroup.py +++ b/ftests/cgroup.py @@ -173,29 +173,8 @@ class Cgroup(object): Run.run(cmd) @staticmethod - def set(config, cgname=None, setting=None, value=None, copy_from=None, - cghelp=False): - """cgset equivalent method - - The following variants of cgset are being tested by the - automated functional tests: - - Command Test Number - cgset -r setting=value cgname various - cgset -r setting1=val1 -r setting2=val2 - -r setting3=val2 cgname 022 - cgset --copy_from foo bar 023 - cgset --copy_from foo bar1 bar2 024 - cgset -r setting=value foo bar 025 - cgset -r setting1=value1 setting2=value2 foo bar 026 - various invalid flag combinations 027 - """ - cmd = list() - - if not config.args.container: - cmd.append('sudo') - cmd.append(Cgroup.build_cmd_path('cgset')) - + def __set(config, cmd, cgname=None, setting=None, value=None, + copy_from=None, cghelp=False): if setting is not None or value is not None: if isinstance(setting, str) and isinstance(value, str): cmd.append('-r') @@ -231,6 +210,54 @@ class Cgroup(object): else: return Run.run(cmd) + @staticmethod + def set(config, cgname=None, setting=None, value=None, copy_from=None, + cghelp=False): + """cgset equivalent method + + The following variants of cgset are being tested by the + automated functional tests: + + Command Test Number + cgset -r setting=value cgname various + cgset -r setting1=val1 -r setting2=val2 + -r setting3=val2 cgname 022 + cgset --copy_from foo bar 023 + cgset --copy_from foo bar1 bar2 024 + cgset -r setting=value foo bar 025 + cgset -r setting1=value1 setting2=value2 foo bar 026 + various invalid flag combinations 027 + """ + cmd = list() + if not config.args.container: + cmd.append('sudo') + cmd.append(Cgroup.build_cmd_path('cgset')) + + return Cgroup.__set(config, cmd, cgname, setting, value, copy_from, + cghelp) + + @staticmethod + def xset(config, cgname=None, setting=None, value=None, copy_from=None, + version=CgroupVersion.CGROUP_UNK, cghelp=False, + ignore_unmappable=False): + """cgxset equivalent method + """ + cmd = list() + if not config.args.container: + cmd.append('sudo') + cmd.append(Cgroup.build_cmd_path('cgxset')) + + if version == CgroupVersion.CGROUP_V1: + cmd.append('-1') + elif version == CgroupVersion.CGROUP_V2: + cmd.append('-2') + + if ignore_unmappable: + cmd.append('-i') + + return Cgroup.__set(config, cmd, cgname, setting, value, copy_from, + cghelp) + @staticmethod def __get(config, cmd, controller=None, cgname=None, setting=None, print_headers=True, values_only=False,