### $Id$
### $URL$
#
-# GENI PLC Wrapper
+# SFA PLC Wrapper
#
-# This wrapper implements the Geni Registry and Slice Interfaces on PLC.
+# This wrapper implements the SFA Registry and Slice Interfaces on PLC.
# Depending on command line options, it starts some combination of a
# Registry, an Aggregate Manager, and a Slice Manager.
#
# is up to date and accurate.
#
# 1) Import the existing planetlab database, creating the
-# appropriate geni records. This is done by running the "sfa-import-plc.py" tool.
+# appropriate SFA records. This is done by running the "sfa-import-plc.py" tool.
#
# 2) Create a "trusted_roots" directory and place the certificate of the root
# authority in that directory. Given the defaults in sfa-import-plc.py, this
from sfa.trust.hierarchy import Hierarchy
from sfa.util.config import Config
from sfa.util.report import trace
+from sfa.plc.api import SfaAPI
+from sfa.server.registry import Registries
+from sfa.server.aggregate import Aggregates
# after http://www.erlenstar.demon.co.uk/unix/faq_2.html
def daemon():
"""
manager_base = 'sfa.managers'
if options.registry:
- mgr_type = self.api.config.SFA_REGISTRY_TYPE
+ mgr_type = config.SFA_REGISTRY_TYPE
manager_module = manager_base + ".registry_manager_%s" % mgr_type
try: manager = __import__(manager_module, fromlist=[manager_base])
except: manager = None
if manager and hasattr(manager, 'init_server'):
manager.init_server()
if options.am:
- mgr_type = self.api.config.SFA_AGGREGATE_TYPE
+ mgr_type = config.SFA_AGGREGATE_TYPE
manager_module = manager_base + ".aggregate_manager_%s" % mgr_type
try: manager = __import__(manager_module, fromlist=[manager_base])
except: manager = None
if manager and hasattr(manager, 'init_server'):
manager.init_server()
if options.sm:
- mgr_type = self.api.config.SFA_SM_TYPE
+ mgr_type = config.SFA_SM_TYPE
manager_module = manager_base + ".slice_manager_%s" % mgr_type
try: manager = __import__(manager_module, fromlist=[manager_base])
except: manager = None
if manager and hasattr(manager, 'init_server'):
manager.init_server()
if options.cm:
- mgr_type = self.api.config.SFA_CM_TYPE
+ mgr_type = config.SFA_CM_TYPE
manager_module = manager_base + ".component_manager_%s" % mgr_type
try: manager = __import__(manager_module, fromlist=[manager_base])
except: manager = None
manager.init_server()
+def sync_interfaces(server_key_file, server_cert_file):
+ """
+ Attempt to install missing trusted gids and db records for
+ our federated interfaces
+ """
+ api = SfaAPI(key_file = server_key_file, cert_file = server_cert_file)
+ registries = Registries(api)
+ aggregates = Aggregates(api)
+ registries.sync_interfaces()
+ aggregates.sync_interfaces()
+
def main():
# xxx get rid of globals - name consistently CamelCase or under_score
global AuthHierarchy
help="Run as daemon.", default=False)
(options, args) = parser.parse_args()
- if (options.daemon): daemon()
config = Config()
hierarchy = Hierarchy()
- trusted_roots = TrustedRootList(config.get_trustedroots_dir())
server_key_file = os.path.join(hierarchy.basedir, "server.key")
server_cert_file = os.path.join(hierarchy.basedir, "server.cert")
init_server_key(server_key_file, server_cert_file, config, hierarchy)
- init_server(options, config)
+ init_server(options, config)
+ sync_interfaces(server_key_file, server_cert_file)
+ if (options.daemon): daemon()
# start registry server
if (options.registry):
from sfa.server.registry import Registry