X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=python%2Fvserver.py;h=b2ad6a8d20581ead3367c33e99076b57749bcc2d;hb=b3e6c1ed03bc50f25d03ca8f13aa5bca7419206f;hp=8fdb50577957671b9a0795c2a64f848cc247f932;hpb=88d249dcc24798a4e8a149b59a2b353038e8e631;p=util-vserver-pl.git diff --git a/python/vserver.py b/python/vserver.py index 8fdb505..b2ad6a8 100644 --- a/python/vserver.py +++ b/python/vserver.py @@ -16,7 +16,8 @@ import commands import resource import vserverimpl -import cpulimit, bwlimit +import cpulimit +import plnode.bwlimit as bwlimit from vserverimpl import DLIMIT_INF from vserverimpl import VC_LIM_KEEP @@ -193,7 +194,7 @@ class VServer: def get_prefix_from_capabilities(self, capabilities, prefix): split_caps = capabilities.split(',') - return ",".join(["%s" % (c) for c in split_caps if c.startswith(prefix.upper()) or c.startswith(prefix.lower())]) + return ",".join(["%s" % (c[len(prefix):]) for c in split_caps if c.startswith(prefix.upper()) or c.startswith(prefix.lower())]) def get_bcaps_from_capabilities(self, capabilities): return self.get_prefix_from_capabilities(capabilities, "cap_") @@ -233,11 +234,11 @@ class VServer: for ip in addresses: vserverimpl.netadd(self.ctx, ip) - def set_ipaddresses_config(self, addresses): + def set_ipaddresses_config(self, addresses, add_loopback=True): ip_addresses = addresses.split(",") # add looopback interface - if not ip_addresses.__contains__("127.0.0.1"): + if not ip_addresses.__contains__("127.0.0.1") and add_loopback: ip_addresses.append("127.0.0.1") i = 0 @@ -246,7 +247,7 @@ class VServer: # create emtpy nodev files to silent "No device specified for" warnings self.config.update("interfaces/%d/nodev" % i, "") i += 1 - while self.config.unset("interfaces/%d/ip" % i) and self.config.update("interfaces/%d/nodev" % i): + while self.config.unset("interfaces/%d/ip" % i) and self.config.update("interfaces/%d/nodev" % i, ""): i += 1 self.set_ipaddresses(ip_addresses) @@ -468,12 +469,3 @@ def create(vm_name, static = False, ctor = VServer): vm_id = pwd.getpwnam(vm_name)[2] return ctor(vm_name, vm_id) - - -def close_nonstandard_fds(): - """Close all open file descriptors other than 0, 1, and 2.""" - _SC_OPEN_MAX = 4 - for fd in range(3, os.sysconf(_SC_OPEN_MAX)): - try: os.close(fd) - except OSError: pass # most likely an fd that isn't open -