import sfa.util.xmlrpcprotocol as xmlrpcprotocol
import sfa.util.soapprotocol as soapprotocol
-
+
# GeniLight client support is optional
try:
from egeni.geniLight_client import *
if not isinstance(interfaces, list):
interfaces = [self.interfaces]
self.interfaces = {}
+ required_fields = self.default_fields.keys()
for interface in interfaces:
- self.interfaces[interface['hrn']] = interface
+ valid = True
+ # skp any interface definition that has a null hrn,
+ # address or port
+ for field in required_fields:
+ if field not in interface or not interface[field]:
+ valid = False
+ break
+ if valid:
+ self.interfaces[interface['hrn']] = interface
def sync_interfaces(self):
return peer_gids
trusted_certs_dir = self.api.config.get_trustedroots_dir()
for new_hrn in new_hrns:
+ if not new_hrn:
+ continue
# the gid for this interface should already be installed
if new_hrn == self.api.config.SFA_INTERFACE_HRN:
continue
# make sure the required fields are present and not null
if not all([interface.get(key) for key in required_fields]):
continue
-
+
hrn, address, port = interface['hrn'], interface['addr'], interface['port']
url = 'http://%(address)s:%(port)s' % locals()
+
# check which client we should use
# sfa.util.xmlrpcprotocol is default
client_type = 'xmlrpcprotocol'