X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=python%2Fvserver.py;h=30e619b1ddc7fc8e8d2584f9f9da06a11406d774;hb=67f86b9c416602d6c59da0303693194f610a1c32;hp=32f27adc0dbadf76fa4ccbdba801fc3fadb43a6f;hpb=e33814b72dc77e690941742fe82920cab9376799;p=util-vserver.git diff --git a/python/vserver.py b/python/vserver.py index 32f27ad..30e619b 100644 --- a/python/vserver.py +++ b/python/vserver.py @@ -1,6 +1,6 @@ # Copyright 2005 Princeton University -#$Id: vserver.py,v 1.66 2007/07/31 16:31:04 dhozac Exp $ +#$Id: vserver.py,v 1.69 2007/08/01 18:33:28 dhozac Exp $ import errno import fcntl @@ -61,6 +61,9 @@ class VServerConfig: def __init__(self, name, directory): self.name = name self.dir = directory + if not (os.path.isdir(self.dir) and + os.access(self.dir, os.R_OK | os.W_OK | os.X_OK)): + raise NoSuchVServer, "%s does not exist" % self.dir def get(self, option, default = None): try: @@ -424,14 +427,14 @@ class VServer: # execute each init script in turn # XXX - we don't support all scripts that vserver script does self.__do_chcontext(state_file) - for cmd in self.INITSCRIPTS + [None]: + for cmd in self.INITSCRIPTS: try: # enter vserver context arg_subst = { 'runlevel': runlevel } cmd_args = [cmd[0]] + map(lambda x: x % arg_subst, cmd[1:]) print >>log, "executing '%s'" % " ".join(cmd_args) - os.spawnvp(os.P_WAIT,cmd[0],*cmd_args) + os.spawnvp(os.P_WAIT,cmd[0],cmd_args) except: traceback.print_exc() os._exit(1)