X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=python%2Fvserver.py;h=7132cd1c7f55dcf2d89b3e838ff099e2efc0de04;hb=87e1702cad478ebc77f859d9bfff1f9008ecd194;hp=1aa6caae548fb22acbd42f51ee6a2bf09bfe1574;hpb=fa9834b19bf59b9bbc3c3e29ac3e6965eefb571d;p=util-vserver.git diff --git a/python/vserver.py b/python/vserver.py index 1aa6caa..7132cd1 100644 --- a/python/vserver.py +++ b/python/vserver.py @@ -50,12 +50,6 @@ class VServer: except IOError, ex: if ex.errno != errno.ENOENT: raise - self.flags = 0 - flags = self.config.get("S_FLAGS", "").split(" ") - if "lock" in flags: - self.flags |= FLAGS_LOCK - if "nproc" in flags: - self.flags |= FLAGS_NPROC self.remove_caps = ~vserverimpl.CAP_SAFE; self.ctx = vm_id self.vm_running = vm_running @@ -119,6 +113,10 @@ class VServer: def set_disklimit(self, block_limit): # block_limit is in kB + if block_limit == 0: + vserverimpl.unsetdlimit(self.dir, self.ctx) + return + if self.vm_running: block_usage = vserverimpl.DLIMIT_KEEP inode_usage = vserverimpl.DLIMIT_KEEP @@ -141,9 +139,10 @@ class VServer: blocksused, blocktotal, inodesused, inodestotal, reserved = \ vserverimpl.getdlimit(self.dir, self.ctx) except OSError, ex: - if ex.errno == errno.ESRCH: - # get here if no vserver disk limit has been set for xid - blocktotal = -1 + if ex.errno != errno.ESRCH: + raise + # get here if no vserver disk limit has been set for xid + blocktotal = -1 return blocktotal @@ -176,12 +175,12 @@ class VServer: ret = vserverimpl.getrlimit(self.ctx,6) return ret - def set_bwlimit(self, share, minrate, maxrate = None, dev = "eth0"): + def set_bwlimit(self, share, minrate = 1, maxrate = None, dev = "eth0"): - if False: - bwlimit.off(self.ctx, dev) - else: + if share: bwlimit.on(self.ctx, dev, share, minrate, maxrate) + else: + bwlimit.off(self.ctx, dev) def get_bwlimit(self, eth): # not implemented yet