From: Tony Mack Date: Sun, 3 May 2009 01:06:19 +0000 (+0000) Subject: changed default location of registries.xml file to /etc/geni/ X-Git-Tag: sfa-0.9-0@14641~422 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=8ca10be7ebbe612c21875ef914a6b1d9b5447872;p=sfa.git changed default location of registries.xml file to /etc/geni/ --- diff --git a/geni/registry.py b/geni/registry.py index 307637a5..3bbbe0ad 100644 --- a/geni/registry.py +++ b/geni/registry.py @@ -46,14 +46,33 @@ class Registries(dict): required_fields = ['hrn', 'addr', 'port'] - def __init__(self, api): + def __init__(self, api, file = "/etc/geni/registries.xml"): dict.__init__(self, {}) self.api = api - registries_file = self.api.server_basedir + os.sep + 'registries.xml' + + # create default connection dict connection_dict = {} for field in self.required_fields: - connection_dict[field] = '' - self.registry_info = XmlStorage(registries_file, {'registries': {'registry': [connection_dict]}}) + connection_dict[field] = '' + registries_dict = {'registries': {'registry': [connection_dict]}} + + # get possible config file locations + loaded = False + path = os.path.dirname(os.path.abspath(__file__)) + filename = file.split(os.sep)[-1] + alt_file = path + os.sep + filename + files = [file, alt_file] + + for f in files: + try: + if os.path.isfile(f): + self.registry_info = XmlStorage(f, registries_dict) + loaded = True + except: pass + + # if file is missing, just recreate it in the right place + if not loaded: + self.registry_info = XmlStorage(file, registries_dict) self.registry_info.load() self.connectRegistries()