From 4f5099becc931a0b86a1bf97e11d70e0207565aa Mon Sep 17 00:00:00 2001 From: =?utf8?q?S=2E=C3=87a=C4=9Flar=20Onur?= Date: Thu, 20 Jan 2011 17:00:50 -0500 Subject: [PATCH] start to use /etc/vservers//sysctl//{setting,value} files as new kernels don't support old syntax --- sliver_vs.py | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) 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: -- 2.43.0