X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=conf_files.py;h=0ae0024d6f5d31b619ed631159a9918a0902cc2c;hb=5c00a570abc223d58b171bc88b072085d69fa232;hp=5d1cb5614295dc194a368bb45ece322447e7c131;hpb=4462c5aa0fe45673f05a414d9cff10567c9fb3c1;p=nodemanager.git diff --git a/conf_files.py b/conf_files.py index 5d1cb56..0ae0024 100644 --- a/conf_files.py +++ b/conf_files.py @@ -29,7 +29,7 @@ class conf_files: def system(self, cmd): if not self.noscripts and cmd: logger.log('conf_files: running command %s' % cmd) - return os.system(cmd) + return tools.fork_as(None, os.system, cmd) else: return 0 def update_conf_file(self, cf_rec): @@ -39,12 +39,20 @@ class conf_files: if dest == '/etc/proper/propd.conf': return err_cmd = cf_rec['error_cmd'] mode = string.atoi(cf_rec['file_permissions'], base=8) - uid = pwd.getpwnam(cf_rec['file_owner'])[2] - gid = grp.getgrnam(cf_rec['file_group'])[2] + try: + uid = pwd.getpwnam(cf_rec['file_owner'])[2] + except: + logger.log('conf_files: cannot find user %s -- %s not updated'%(cf_rec['file_owner'],dest)) + return + try: + gid = grp.getgrnam(cf_rec['file_group'])[2] + except: + logger.log('conf_files: cannot find group %s -- %s not updated'%(cf_rec['file_group'],dest)) + return url = 'https://%s/%s' % (self.config.PLC_BOOT_HOST, cf_rec['source']) try: contents = curlwrapper.retrieve(url, self.config.cacert) - except curlwrapper.CurlException: + except xmlrpclib.ProtocolError,e: logger.log('conf_files: failed to retrieve %s from %s, skipping' % (dest, url)) return if not cf_rec['always_update'] and sha.new(contents).digest() == self.checksum(dest):