X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sliver_vs.py;h=a151bfe06df12b956a1fb3af33e682c729342063;hb=7167037aed08b03d5c08335fa2347b042c68c5d0;hp=4245e531f116993d801d4e0b8ca8509a607c9ac4;hpb=c4fb872fa1a42b630062c0de3549e0a4c151ee37;p=nodemanager.git diff --git a/sliver_vs.py b/sliver_vs.py index 4245e53..a151bfe 100644 --- a/sliver_vs.py +++ b/sliver_vs.py @@ -234,17 +234,26 @@ 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("sliver_vs: %s: opening %s"%(self.name,path)) - flags = os.O_WRONLY - fd = os.open(path, flags) + # /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])) - os.write(fd,self.rspec[key]) - os.close(fd) except IOError, 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))