X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sliver_vs.py;h=919fe3f8e0e6552e18fa1b4a725762039bff7e45;hb=6e78dab6ed1b815957b3e7de111f3ce75ebc49a5;hp=9a329cc3e8c355bd0121f6efe75e3641099088e3;hpb=db60423f63fec385c5d244e493065d3d2db53543;p=nodemanager.git diff --git a/sliver_vs.py b/sliver_vs.py index 9a329cc..919fe3f 100644 --- a/sliver_vs.py +++ b/sliver_vs.py @@ -258,20 +258,29 @@ class Sliver_VS(accounts.Account, vserver.VServer): cpu_share = self.rspec['cpu_share'] if setup: + count = 1 for key in self.rspec.keys(): if key.find('sysctl.') == 0: sysctl=key.split('.') try: - path="/proc/sys/%s" % ("/".join(sysctl[1:])) - logger.log("%s: opening %s"%(self.name,path)) - flags = os.O_WRONLY - fd = os.open(path, flags) - logger.log("%s: writing %s=%s"%(self.name,key,self.rspec[key])) - os.write(fd,self.rspec[key]) - os.close(fd) + # /etc/vservers//sysctl// + dirname = "/etc/vservers/%s/sysctl/%s" % (self.name, count) + try: + os.makedirs(dirname, 0755) + except: + pass + setting = open("%s/setting" % dirname, "w") + setting.write("%s\n" % key.lstrip("sysctl.")) + setting.close() + value = open("%s/value" % dirname, "w") + value.write("%s\n" % self.rspec[key]) + value.close() + count += 1 + + logger.log("sliver_vs: %s: writing %s=%s"%(self.name,key,self.rspec[key])) except IOError, e: - logger.log("%s: could not set %s=%s"%(self.name,key,self.rspec[key])) - logger.log("%s: error = %s"%(self.name,e)) + logger.log("sliver_vs: %s: could not set %s=%s"%(self.name,key,self.rspec[key])) + logger.log("sliver_vs: %s: error = %s"%(self.name,e)) if self.rspec['enabled'] > 0: