git://git.onelab.eu
/
util-vserver-pl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't clean stuff up if it's already running.
[util-vserver-pl.git]
/
python
/
vserver.py
diff --git
a/python/vserver.py
b/python/vserver.py
index
6e5c709
..
aee6d03
100644
(file)
--- a/
python/vserver.py
+++ b/
python/vserver.py
@@
-136,15
+136,15
@@
def adjust_lim(goal, curr):
soft = curr[0]
hard = curr[1]
if gm != VC_LIM_KEEP:
soft = curr[0]
hard = curr[1]
if gm != VC_LIM_KEEP:
- if gm > soft:
+ if gm > soft
or gm == resource.RLIM_INFINITY
:
soft = gm
soft = gm
- if gm > hard:
+ if gm > hard
or gm == resource.RLIM_INFINITY
:
hard = gm
if gs != VC_LIM_KEEP:
hard = gm
if gs != VC_LIM_KEEP:
- if gs > soft:
+ if gs > soft
or gs == resource.RLIM_INFINITY
:
soft = gs
if gh != VC_LIM_KEEP:
soft = gs
if gh != VC_LIM_KEEP:
- if gh > hard:
+ if gh > hard
or gh == resource.RLIM_INFINITY
:
hard = gh
return (soft, hard)
hard = gh
return (soft, hard)
@@
-301,7
+301,7
@@
class VServer:
try:
vserverimpl.unsetdlimit(self.dir, self.ctx)
except OSError, e:
try:
vserverimpl.unsetdlimit(self.dir, self.ctx)
except OSError, e:
- self.log("Unexpected error with unsetdlimit for context %d
" % self.ctx
)
+ self.log("Unexpected error with unsetdlimit for context %d
: %r" % (self.ctx,e)
)
return
if self.vm_running:
return
if self.vm_running:
@@
-321,7
+321,7
@@
class VServer:
vserverimpl.DLIMIT_INF, # inode limit
2) # %age reserved for root
except OSError, e:
vserverimpl.DLIMIT_INF, # inode limit
2) # %age reserved for root
except OSError, e:
- self.log("Unexpected error with setdlimit for context %d
" % self.ctx
)
+ self.log("Unexpected error with setdlimit for context %d
: %r" % (self.ctx, e)
)
self.config.update('dlimits/0/space_total', block_limit)
self.config.update('dlimits/0/space_total', block_limit)
@@
-467,7
+467,7
@@
class VServer:
# open state file to record vserver info
state_file = open("/var/run/vservers/%s" % self.name, "w")
# open state file to record vserver info
state_file = open("/var/run/vservers/%s" % self.name, "w")
- # use /dev/null for stdin, /var/log/
boot.log
for stdout/err
+ # use /dev/null for stdin, /var/log/
nm
for stdout/err
fd = os.open("/dev/null", os.O_RDONLY)
if fd != 0:
os.dup2(fd, 0)
fd = os.open("/dev/null", os.O_RDONLY)
if fd != 0:
os.dup2(fd, 0)
@@
-478,9
+478,10
@@
class VServer:
self.config.cache_it()
self.__do_chroot()
self.config.cache_it()
self.__do_chroot()
- removed = self.__cleanvar()
+ if not self.is_running():
+ removed = self.__cleanvar()
- log = open("/var/log/
boot.log
", "a", 0)
+ log = open("/var/log/
nm
", "a", 0)
if log.fileno() != 1:
os.dup2(log.fileno(), 1)
os.dup2(1, 2)
if log.fileno() != 1:
os.dup2(log.fileno(), 1)
os.dup2(1, 2)
@@
-501,6
+502,8
@@
class VServer:
if os.path.isfile(cmd[0]):
print >>log, "executing '%s'" % " ".join(cmd_args)
os.spawnvp(os.P_NOWAIT,cmd[0],cmd_args)
if os.path.isfile(cmd[0]):
print >>log, "executing '%s'" % " ".join(cmd_args)
os.spawnvp(os.P_NOWAIT,cmd[0],cmd_args)
+ else:
+ print >>log, "WARNING: could not run %s"%cmd[0]
except:
print >>log, traceback.format_exc()
except:
print >>log, traceback.format_exc()