-import traceback
-import os.path
-
from sfa.util.faults import *
from sfa.util.storage import XmlStorage
-from sfa.util.xrn import get_authority, hrn_to_urn
-from sfa.util.record import SfaRecord
import sfa.util.xmlrpcprotocol as xmlrpcprotocol
-import sfa.util.soapprotocol as soapprotocol
-from sfa.trust.gid import GID
# GeniLight client support is optional
try:
except ImportError:
GeniClientLight = None
-
-
class Interface:
-
+ """
+ Interface to another SFA service, typically a peer, or the local aggregate
+ can retrieve a xmlrpclib.ServerProxy object for issuing calls there
+ """
def __init__(self, hrn, addr, port, client_type='sfa'):
self.hrn = hrn
self.addr = addr
# load config file
self.interface_info = XmlStorage(conf_file, self.default_dict)
self.interface_info.load()
- records = self.interface_info.values()[0].values()[0]
+ records = self.interface_info.values()[0]
if not isinstance(records, list):
records = [records]
required_fields = self.default_fields.keys()
for record in records:
- if not set(required_fields).issubset(record.keys()):
+ if not record or not set(required_fields).issubset(record.keys()):
continue
# port is appended onto the domain, before the path. Should look like:
# http://domain:port/path