- vserver.VServer.set_disklimit(self, disk_max)
- except OSError:
- logger.log('%s: failed to set max disk usage' % self.name)
- logger.log_exc()
-
- # set min/soft/hard values for 'as', 'rss', 'nproc' and openfd
- # Note that vserver currently only implements support for hard limits
-
- as_min = self.rspec['as_min']
- as_soft = self.rspec['as_soft']
- as_hard = self.rspec['as_hard']
- self.set_AS_config(as_hard, as_soft, as_min)
-
- rss_min = self.rspec['rss_min']
- rss_soft = self.rspec['rss_soft']
- rss_hard = self.rspec['rss_hard']
- self.set_RSS_config(rss_hard, rss_soft, rss_min)
-
- nproc_min = self.rspec['nproc_min']
- nproc_soft = self.rspec['nproc_soft']
- nproc_hard = self.rspec['nproc_hard']
- self.set_NPROC_config(nproc_hard, nproc_soft, nproc_min)
-
- openfd_min = self.rspec['openfd_min']
- openfd_soft = self.rspec['openfd_soft']
- openfd_hard = self.rspec['openfd_hard']
- self.set_OPENFD_config(openfd_hard, openfd_soft, openfd_min)
-
- self.set_WHITELISTED_config(self.rspec['whitelist'])
-
- if False: # this code was commented out before
- # N.B. net_*_rate are in kbps because of XML-RPC maxint
- # limitations, convert to bps which is what bwlimit.py expects.
- net_limits = (self.rspec['net_min_rate'] * 1000,
- self.rspec['net_max_rate'] * 1000,
- self.rspec['net_i2_min_rate'] * 1000,
- self.rspec['net_i2_max_rate'] * 1000,
- self.rspec['net_share'])
- logger.log('%s: setting net limits to %s bps' % (self.name, net_limits[:-1]))
- logger.log('%s: setting net share to %d' % (self.name, net_limits[-1]))
- self.set_bwlimit(*net_limits)
-
- cpu_min = self.rspec['cpu_min']
+ vserver.VServer.set_disklimit(self, max(disk_max, self.disk_blocks))
+ except:
+ logger.log_exc('sliver_vs: failed to set max disk usage',name=self.name)
+
+ # get/set the min/soft/hard values for all of the vserver
+ # related RLIMITS. Note that vserver currently only
+ # implements support for hard limits.
+ for limit in vserver.RLIMITS.keys():
+ type = limit.lower()
+ minimum = self.rspec['%s_min'%type]
+ soft = self.rspec['%s_soft'%type]
+ hard = self.rspec['%s_hard'%type]
+ update = self.set_rlimit(limit, hard, soft, minimum)
+ if update:
+ logger.log('sliver_vs: %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('sliver_vs: %s: setting capabilities to %s' % (self.name, self.rspec['capabilities']))
+
+ cpu_pct = self.rspec['cpu_pct']