-#
-### $Id: interface.py 17583 2010-04-06 15:01:08Z tmack $
-### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/server/interface.py $
-#
+import traceback
+import os.path
+from sfa.util.sfalogging import sfa_logger
from sfa.util.faults import *
-from sfa.util.storage import *
-from sfa.util.namespace import get_authority, hrn_to_urn
-from sfa.trust.gid import GID
+from sfa.util.storage import XmlStorage
+from sfa.util.xrn import get_authority, hrn_to_urn
from sfa.util.record import SfaRecord
-import traceback
import sfa.util.xmlrpcprotocol as xmlrpcprotocol
import sfa.util.soapprotocol as soapprotocol
+from sfa.trust.gid import GID
# GeniLight client support is optional
try:
1) Makes sure a record exist in the local registry for the each
fedeated peer
- 2) Attepts to fetch and install trusted gids
+ 2) Attempts to fetch and install trusted gids
3) Provides connections (xmlrpc or soap) to federated peers
"""
interfaces = [self.interfaces]
# set the url and urn
for interface in interfaces:
+ # port is appended onto the domain, before the path. Should look like:
+ # http://domain:port/path
hrn, address, port = interface['hrn'], interface['addr'], interface['port']
- url = 'http://%(address)s:%(port)s' % locals()
+ address_parts = address.split('/')
+ address_parts[0] = address_parts[0] + ":" + str(port)
+ url = "http://%s" % "/".join(address_parts)
interface['url'] = url
interface['urn'] = hrn_to_urn(hrn, 'authority')
connections = {}
required_fields = self.default_fields.keys()
for interface in self.interfaces.values():
- # make sure the required fields are present and not null
-
url = interface['url']
+# sfa_logger().debug("Interfaces.get_connections - looping on neighbour %s"%url)
# check which client we should use
# sfa.util.xmlrpcprotocol is default
client_type = 'xmlrpcprotocol'