Add logic to the functional test's Cgroup class to make it analogous to libcgroup's struct cgroup. By adding __init__(), __str__(), and __eq__() methods, the cgroup class can very closely mirror struct cgroup.
Signed-off-by: Tom Hromatka <tom.hroma...@oracle.com> --- ftests/cgroup.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/ftests/cgroup.py b/ftests/cgroup.py index 146ced711a46..9e1d46c9b955 100644 --- a/ftests/cgroup.py +++ b/ftests/cgroup.py @@ -20,9 +20,11 @@ # import consts +from controller import Controller from enum import Enum import os from run import Run +import utils class CgroupVersion(Enum): CGROUP_UNK = 0 @@ -50,6 +52,32 @@ class CgroupVersion(Enum): return CgroupVersion.CGROUP_UNK class Cgroup(object): + # This class is analogous to libcgroup's struct cgroup + def __init__(self, name): + self.name = name + # self.controllers maps to + # struct cgroup_controller *controller[CG_CONTROLLER_MAX]; + self.controllers = dict() + + def __str__(self): + out_str = "Cgroup {}\n".format(self.name) + for ctrl_key in self.controllers: + out_str += utils.indent(str(self.controllers[ctrl_key]), 4) + + return out_str + + def __eq__(self, other): + if not isinstance(other, Cgroup): + return False + + if not self.name == other.name: + return False + + if self.controllers != other.controllers: + return False + + return True + @staticmethod def build_cmd_path(in_container, cmd): if in_container: -- 2.25.4 _______________________________________________ Libcg-devel mailing list Libcg-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/libcg-devel