X-Git-Url: http://git.onelab.eu/?p=nodemanager.git;a=blobdiff_plain;f=conf_files.py;h=252c795c68882fcbb011ef86debe28b9be4d9789;hp=7e86e75ea599426a7bcc309dca169214404156e1;hb=9e6b9c1ea9e020c55c85b433bac47231d63e9ffd;hpb=bde303ed29410bedf35c719fc596e6bcb6f4afb6 diff --git a/conf_files.py b/conf_files.py index 7e86e75..252c795 100644 --- a/conf_files.py +++ b/conf_files.py @@ -3,14 +3,20 @@ import grp import os import pwd -import sha +try: + from hashlib import sha1 as sha +except ImportError: + from sha import sha import string import curlwrapper import logger import tools import xmlrpclib -from config import Config +from config import Config + +# right after net +priority = 2 class conf_files: def __init__(self, noscripts=False): @@ -21,7 +27,7 @@ class conf_files: def checksum(self, path): try: f = open(path) - try: return sha.new(f.read()).digest() + try: return sha(f.read()).digest() finally: f.close() except IOError: return None @@ -53,19 +59,14 @@ class conf_files: else: url += '?' url += "node_id=%d"%tools.node_id() else: - logger.log('%s -- WARNING, cannot add node_id to request'%dest) - # pass slicefamily as well, as stored in /etc/planetlab/slicefamily on the node - if tools.slicefamily(): - if url.find('?') >0: url += '&' - else: url += '?' - url += "slicefamily=%s"%tools.slicefamily() + logger.log('conf_files: %s -- WARNING, cannot add node_id to request'%dest) try: - logger.verbose("retrieving URL=%s"%url) + logger.verbose("conf_files: retrieving URL=%s"%url) contents = curlwrapper.retrieve(url, self.config.cacert) 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): + if not cf_rec['always_update'] and sha(contents).digest() == self.checksum(dest): return if self.system(cf_rec['preinstall_cmd']): self.system(err_cmd) @@ -80,11 +81,12 @@ class conf_files: if data.has_key("conf_files"): for f in data['conf_files']: try: self.update_conf_file(f) - except: logger.log_exc() - else: logger.log("conf_files: No conf_files found or API failure. Skipping") + except: logger.log_exc("conf_files: failed to update conf_file") + else: + logger.log_missing_data("conf_files.run_once",'conf_files') -def start(options, config): pass +def start(): pass def GetSlivers(data, config = None, plc = None): logger.log("conf_files: Running.")