X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=conf_files.py;h=4903b3f8de788a6090f064183889df97579a758c;hb=refs%2Fheads%2F1.5;hp=a7d70e87cb4bb06f1db3347de1b719e5425aef5f;hpb=b553d99a3e28444c6d65df1085ac06b1ba8f2d7d;p=nodemanager.git diff --git a/conf_files.py b/conf_files.py index a7d70e8..4903b3f 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): @@ -42,7 +42,11 @@ class conf_files: uid = pwd.getpwnam(cf_rec['file_owner'])[2] gid = grp.getgrnam(cf_rec['file_group'])[2] url = 'https://%s/%s' % (self.config.PLC_BOOT_HOST, cf_rec['source']) - contents = curlwrapper.retrieve(url, self.config.cacert) + try: + contents = curlwrapper.retrieve(url, self.config.cacert) + except curlwrapper.CurlException: + 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): return if self.system(cf_rec['preinstall_cmd']): @@ -92,7 +96,7 @@ if __name__ == '__main__': parser = optparse.OptionParser() parser.add_option('-f', '--config', action='store', dest='config', default='/etc/planetlab/plc_config', help='PLC configuration file') parser.add_option('-k', '--session', action='store', dest='session', default='/etc/planetlab/session', help='API session key (or file)') - parser.add_option('--noscripts', action='store', dest='noscripts', default=False, help='Do not run pre- or post-install scripts') + parser.add_option('--noscripts', action='store_true', dest='noscripts', default=False, help='Do not run pre- or post-install scripts') (options, args) = parser.parse_args() # Load /etc/planetlab/plc_config