def __init__(self, rec):
logger.verbose ('initing Sliver_VS with name=%s'%rec['name'])
try:
- vserver.VServer.__init__(self, rec['name'])
+ vserver.VServer.__init__(self, rec['name'],logfile='/var/log/nm')
except Exception, err:
if not isinstance(err, vserver.NoSuchVServer):
# Probably a bad vserver or vserver configuration file
logger.log('%s: recreating bad vserver' % rec['name'])
self.destroy(rec['name'])
self.create(rec['name'], rec['vref'])
- vserver.VServer.__init__(self, rec['name'])
+ vserver.VServer.__init__(self, rec['name'],logfile='/var/log/nm')
self.keys = ''
self.rspec = {}
minimum = self.rspec['%s_min'%type]
soft = self.rspec['%s_soft'%type]
hard = self.rspec['%s_hard'%type]
- self.set_rlimit_config(limit, hard, soft, minimum)
+ update = self.set_rlimit(limit, hard, soft, minimum)
+ if update:
+ logger.log('%s: setting rlimit %s to (%d, %d, %d)'
+ % (self.name, type, hard, soft, minimum))
self.set_capabilities_config(self.rspec['capabilities'])
if self.rspec['capabilities']:
logger.log('%s: setting net share to %d' % (self.name, net_limits[-1]))
self.set_bwlimit(*net_limits)
- cpu_min = self.rspec['cpu_min']
+ cpu_pct = self.rspec['cpu_pct']
cpu_share = self.rspec['cpu_share']
if self.rspec['enabled'] > 0:
- if cpu_min >= 50: # at least 5%: keep people from shooting themselves in the foot
- logger.log('%s: setting cpu share to %d%% guaranteed' % (self.name, cpu_min/10.0))
- self.set_sched_config(cpu_min, vserver.SCHED_CPU_GUARANTEED)
+ if cpu_pct > 0:
+ logger.log('%s: setting cpu reservation to %d%%' % (self.name, cpu_pct))
else:
+ cpu_pct = 0
+
+ if cpu_share > 0:
logger.log('%s: setting cpu share to %d' % (self.name, cpu_share))
- self.set_sched_config(cpu_share, 0)
+ else:
+ cpu_share = 0
+ self.set_sched_config(cpu_pct, cpu_share)
+ # if IP address isn't set (even to 0.0.0.0), sliver won't be able to use network
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'])