-class Registries(dict):
-
- default_fields = {
- 'hrn': '',
- 'addr': '',
- 'port': '',
- }
-
- def __init__(self, api, file = "/etc/sfa/registries.xml"):
- dict.__init__(self, {})
- self.api = api
-
- # create default connection dict
- registries_dict = {'registries': {'registry': [default_fields]}}
-
- # load config file
- self.registry_info = XmlStorage(file, registries_dict)
- self.registry_info.load()
- self.interfaces = self.registry_info['registries']['registry']
- if not isinstance(self.interfaces, list):
- self.interfaces = [self.interfaces]
-
- # Attempt to get any missing peer gids
- # There should be a gid file in /etc/sfa/trusted_roots for every
- # peer registry found in in the registries.xml config file. If there
- # are any missing gids, request a new one from the peer registry.
- gids_current = self.api.auth.trusted_cert_list.get_list()
- hrns_current = [gid.get_hrn() for gid in gids_found]
- hrns_expected = self.interfaces.keys()
- new_hrns = set(hrns_current).difference(hrns_expected)
-
- self.get_peer_gids(new_hrns)
-
- # update the local db records for these registries
- self.update_db_records()
-
- # create connections to the registries
- self.update(self.get_connections(interfaces))
-
- def get_peer_gids(self, new_hrns):
- """
- Install trusted gids from the specified interfaces.
- """
- if not new_hrns:
- return
+ def __init__(self, ip, port, key_file, cert_file):
+ SfaServer.__init__(self, ip, port, key_file, cert_file, 'registry')
+ sfa_config = Config()
+ if Config().SFA_REGISTRY_ENABLED:
+ from sfa.storage.alchemy import engine
+ from sfa.storage.dbschema import DBSchema
+ DBSchema().init_or_upgrade()