def teardown(config):
    pids = Cgroup.get_pids_in_cgroup(config, CGNAME, CONTROLLER)
    if pids:
        for p in pids.splitlines():
            if config.args.container:
                config.container.run(['kill', '-9', p])
            else:
                Run.run(['sudo', 'kill', '-9', p])

    Cgroup.delete(config, CONTROLLER, CGNAME)
예제 #2
0
def teardown(config):
    os.remove(CONFIG_FILE_NAME)

    try:
        if config.args.container:
            config.container.run(['userdel', USER])
            config.container.run(['groupdel', GROUP])
        else:
            Run.run(['sudo', 'userdel', USER])
            Run.run(['sudo', 'groupdel', GROUP])
    except (ContainerError, RunError, ValueError):
        pass

    Cgroup.delete(config, CONTROLLER, CGNAME)
def test(config):
    result = consts.TEST_PASSED
    cause = None

    try:
        Cgroup.delete(config, CONTROLLER2, CGNAME)
    except RunError as re:
        if 'No such file or directory' in re.stderr:
            cause = 'cpu and cpuacct controllers do not share mount points.'
            result = consts.TEST_FAILED
        else:
            raise re

    try:
        Cgroup.delete(config, CONTROLLER1, CGNAME)
    except RunError as re:
        if 'No such file or directory' in re.stderr:
            cause = 'Missing support to delete cgroup on shared mount points.'
            result = consts.TEST_FAILED
        else:
            raise re

    return result, cause
def teardown(config):
    ver1 = CgroupVersion.get_version(CONTROLLER1)
    ver2 = CgroupVersion.get_version(CONTROLLER2)

    if ver1 == CgroupVersion.CGROUP_V2 and \
       ver2 == CgroupVersion.CGROUP_V2:
        # If both controllers are cgroup v2, then we only need to delete
        # one cgroup.  The path will be the same for both
        Cgroup.delete(config, [CONTROLLER1, CONTROLLER2], CGNAME)
    else:
        Cgroup.delete(config, CONTROLLER1, CGNAME)
        Cgroup.delete(config, CONTROLLER2, CGNAME)
 def _termination_handler(signal, frame):
     cg = Cgroup('level_201')
     cg.remove_task(pid)
     cg.delete()
def teardown(config):
    for cg in CGNAMES:
        Cgroup.delete(config, CONTROLLER, cg)
def teardown(config):
    Cgroup.delete(config, CONTROLLER, SRC_CGNAME)
    Cgroup.delete(config, CONTROLLER, DST_CGNAME)
예제 #8
0
def teardown(config):
    Cgroup.delete(config, CONTROLLER, CGNAME1)
    Cgroup.delete(config, CONTROLLER, CGNAME2)
def teardown(config):
    CgroupCli.delete(config, CONTROLLER, CGNAME)
예제 #10
0
def test(config):
    Cgroup.delete(config, CONTROLLER, PARENT, recursive=True)

    return consts.TEST_PASSED, None
def teardown(config):
    CgroupCli.delete(config, None, CGNAME)
def teardown(config):
    Cgroup.delete(config, CONTROLLER, PARENT_CGNAME, recursive=True)
    Cgroup.delete(config, CONTROLLER, SIBLING_CGNAME, recursive=True)
예제 #13
0
def teardown(config):
    Cgroup.delete(config, CONTROLLER, CGNAME)
    os.remove(CONFIG_FILE_NAME)
def teardown(config):
    Cgroup.delete(config, CPU_CTRL, CGNAME)
    Cgroup.delete(config, MEMORY_CTRL, CGNAME)
    os.remove(CONFIG_FILE_NAME)
    os.rmdir(CONFIG_FILE_DIR)
def teardown(config):
    # destroy the child processes
    config.process.join_children(config)
    cg.join_children(config)
    Cgroup.delete(config, CONTROLLER, CGNAME, recursive=False)