# Copyright 2005 Princeton University
-#$Id: vserver.py,v 1.61 2007/07/18 14:50:49 dhozac Exp $
+#$Id: vserver.py,v 1.64 2007/07/27 18:02:08 dhozac Exp $
import errno
import fcntl
f.write("%s\n" % value)
f.close()
os.umask(old_umask)
- except KeyError, e:
- raise KeyError, "Don't know how to handle %s, sorry" % option
+ except:
+ raise
+
+ def unset(self, option):
+ try:
+ filename = os.path.join(self.dir, option)
+ os.unlink(filename)
+ os.removedirs(os.path.dirname(filename))
+ return True
+ except:
+ return False
class VServer:
def get_capabilities_config(self):
return self.config.get('bcapabilities', '')
+ def set_ipaddresses(self, addresses):
+ vserverimpl.netremove(self.ctx, "all")
+ for a in addresses.split(","):
+ vserverimpl.netadd(self.ctx, a)
+
+ def set_ipaddresses_config(self, addresses):
+ i = 0
+ for a in addresses.split(","):
+ self.config.update("interfaces/%d/ip" % i, a)
+ i += 1
+ while self.config.unset("interfaces/%d/ip" % i):
+ i += 1
+ self.set_ipaddresses(addresses)
+
+ def get_ipaddresses_config(self):
+ i = 0
+ ret = []
+ while True:
+ r = self.config.get("interfaces/%d/ip" % i, '')
+ if r == '':
+ break
+ ret += [r]
+ i += 1
+ return ",".join(ret)
+
+ def get_ipaddresses(self):
+ # No clean way to do this right now.
+ return None
+
def __do_chroot(self):
os.chroot(self.dir)
([], filter_fn))[0]
garbage += filter(os.path.isfile, map((LOCKDIR + "/").__add__,
os.listdir(LOCKDIR)))
- for f in garbage:
- os.unlink(f)
+ if False:
+ for f in garbage:
+ os.unlink(f)
# set the initial runlevel
f = open(RUNDIR + "/utmp", "w")