import errno
import os
+import time
import vserver
import accounts
import tools
-DEFAULTS = {'disk_max': 5000000,
- 'net_min': bwmin,
- 'net_max': bwmax,
- 'net2_min': bwmin,
- 'net2_max': bwmax,
- 'net_share': 1,
- 'enabled': 1,
- 'cpu_min': 0,
- 'cpu_share': 32,
- 'keys': '',
- 'initscript': ''}
-
class Sliver_VS(accounts.Account, vserver.VServer):
- """This class wraps vserver.VServer to make its interface closer to what we need for the Node Manager."""
+ """This class wraps vserver.VServer to make its interface closer to what we need."""
SHELL = '/bin/vsh'
TYPE = 'sliver.VServer'
accounts.Account.configure(self, rec) # install ssh keys
- def start(self):
+ def start(self, delay=0):
if self.rspec['enabled']:
- logger.log('%s: starting' % self.name)
+ logger.log('%s: starting in %d seconds' % (self.name, delay))
child_pid = os.fork()
if child_pid == 0:
# VServer.start calls fork() internally, so just close the nonstandard fds and fork once to avoid creating zombies
tools.close_nonstandard_fds()
+ time.sleep(delay)
vserver.VServer.start(self, True)
os._exit(0)
else: os.waitpid(child_pid, 0)
logger.log('%s: computing disk usage' % self.name)
self.init_disk_info()
self.disk_usage_initialized = True
- vserver.VServer.set_disklimit(self, disk_max_KiB)
+ vserver.VServer.set_disklimit(self, disk_max)
except OSError: logger.log_exc()
net_limits = (self.rspec['net_min'], self.rspec['net_max'], self.rspec['net2_min'], self.rspec['net2_max'], self.rspec['net_share'])