Пример #1
0
def create(system, group):
    """ safely create cgroup path """
    cgroups.create(system, group)

    # if sybsystem is memory, we set move_charge_at_immigrate
    # ref: https://lwn.net/Articles/432224/
    if system == 'memory':
        memory_charge_immigrate(group)
Пример #2
0
    def cgexec(into, subcommand):
        """execs command into given cgroup(s)."""

        cgrps = [cgrp.split(':') for cgrp in into]
        subsystems = set([subsystem for (subsystem, path) in cgrps])
        cgroups.ensure_mounted(subsystems)

        for (subsystem, path) in cgrps:
            pathplus = path.split('=')
            if len(pathplus) == 2:
                group = os.path.dirname(pathplus[0])
                pseudofile = os.path.basename(pathplus[0])
                value = pathplus[1]
                cgroups.set_value(subsystem, group, pseudofile, value)
            else:
                cgroups.create(subsystem, path)
                cgroups.join(subsystem, path)

        if subcommand:
            execargs = list(subcommand)
            os.execvp(execargs[0], execargs)
Пример #3
0
 def test_create(self):
     """Tests cgroup creation."""
     group = os.path.join('treadmill', 'apps', 'test1')
     cgroups.create('cpu', group)
     cgroups.create('memory', group)
     cgroups.create('cpuacct', group)
     os.makedirs.assert_has_calls([
         mock.call('/cgroups/treadmill/apps/test1'),
         mock.call('/cgroups/treadmill/apps/test1'),
         mock.call('/cgroups/treadmill/apps/test1')
     ])