X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=python%2Fvserver.py;h=c8470727a9bad865a47a18e45f976b70a8c5f3bd;hb=e7b099093227249d0a927ce71f8853c1d8b01576;hp=0fe7dd6e1e798f7b8e0a9bff5a230e863f435eb5;hpb=9e4fb6c8dc5879c213ce8d311ca556b952ba1c21;p=util-vserver-pl.git diff --git a/python/vserver.py b/python/vserver.py index 0fe7dd6..c847072 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 @@ -230,18 +231,25 @@ class VServer: def set_ipaddresses(self, addresses): vserverimpl.netremove(self.ctx, "all") - for a in addresses.split(","): - vserverimpl.netadd(self.ctx, a) + for ip in addresses: + vserverimpl.netadd(self.ctx, ip) + + 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") and add_loopback: + ip_addresses.append("127.0.0.1") - def set_ipaddresses_config(self, addresses): - return # acb i = 0 - for a in addresses.split(","): - self.config.update("interfaces/%d/ip" % i, a) + for ip in ip_addresses: + self.config.update("interfaces/%d/ip" % i, ip) + # 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): + while self.config.unset("interfaces/%d/ip" % i) and self.config.update("interfaces/%d/nodev" % i, ""): i += 1 - self.set_ipaddresses(addresses) + self.set_ipaddresses(ip_addresses) def get_ipaddresses_config(self): i = 0 @@ -461,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 -