# Copyright 2005 Princeton University
+#$Id: vserver.py,v 1.59 2007/07/17 17:56:04 faiyaza Exp $
+
import errno
import fcntl
import os
buf = f.readline().rstrip()
f.close()
return buf
- except KeyError, e:
- # No mapping exists for this option
- raise e
except IOError, e:
if default is not None:
return default
def set_WHITELISTED_config(self,whitelisted):
self.config.update('whitelisted', whitelisted)
+ def set_capabilities(self, capabilities):
+ return vserverimpl.setbcaps(self.ctx, vserverimpl.text2bcaps(capabilities))
+
+ def set_capabilities_config(self, capabilities):
+ self.config.update('bcapabilities', capabilities)
+ self.set_capabilities(capabilities)
+
+ def get_capabilities(self):
+ return vserverimpl.bcaps2text(vserverimpl.getbcaps(self.ctx))
+
+ def get_capabilities_config(self):
+ return self.config.get('bcapabilities', '')
+
def __do_chroot(self):
os.chroot(self.dir)
print >>state_file, "%u" % self.ctx
state_file.close()
- if vserverimpl.chcontext(self.ctx):
+ if vserverimpl.chcontext(self.ctx, vserverimpl.text2bcaps(self.get_capabilities_config())):
self.set_resources()
vserverimpl.setup_done(self.ctx)
line = child_stdout.readline()
if not line:
sys.stderr.write(child_stderr.readline())
+ child_stdout.close()
+ child_stderr.close()
(space, inodes) = line.split()
self.disk_inodes = int(inodes)
self.disk_blocks = int(space)