import errno
import os
-import threading
import time
import vserver
SHELL = '/bin/vsh'
TYPE = 'sliver.VServer'
- _init_disk_info_sem = threading.Semaphore(1)
+ _init_disk_info_sem = tools.NMLock("/var/run/nm-disk-info.lock")
def __init__(self, rec):
try:
except Exception, err:
if not isinstance(err, vserver.NoSuchVServer):
# Probably a bad vserver or vserver configuration file
- logger.log_exc()
+ logger.log_exc(self.name)
logger.log('%s: recreating bad vserver' % rec['name'])
self.destroy(rec['name'])
self.create(rec['name'], rec['vref'])
try:
self.chroot_call(install_initscript)
self.initscriptchanged = True
- except: logger.log_exc()
+ except: logger.log_exc(self.name)
accounts.Account.configure(self, rec) # install ssh keys
logger.log('%s: computing disk usage: ended' % self.name)
self.disk_usage_initialized = True
vserver.VServer.set_disklimit(self, max(disk_max, self.disk_blocks))
- except OSError:
+ except:
logger.log('%s: failed to set max disk usage' % self.name)
- logger.log_exc()
+ logger.log_exc(self.name)
# get/set the min/soft/hard values for all of the vserver
# related RLIMITS. Note that vserver currently only
logger.log('%s: setting cpu share to %d' % (self.name, cpu_share))
self.set_sched_config(cpu_share, 0)
+ if self.rspec['ip_addresses'] != '0.0.0.0':
+ logger.log('%s: setting IP address(es) to %s' % (self.name, self.rspec['ip_addresses']))
+ self.set_ipaddresses_config(self.rspec['ip_addresses'])
+
if False: # Does not work properly yet.
if self.have_limits_changed():
logger.log('%s: limits have changed --- restarting' % self.name)