save certificate parents
[sfa.git] / sfa / server / sfa-server.py
index 63e7ad5..e323f2a 100755 (executable)
@@ -33,6 +33,7 @@
 registry_port=12345
 aggregate_port=12346
 slicemgr_port=12347
+component_port=12346
 
 import os, os.path
 import sys
@@ -44,6 +45,7 @@ from sfa.trust.certificate import Keypair, Certificate
 from sfa.server.registry import Registry
 from sfa.server.aggregate import Aggregate
 from sfa.server.slicemgr import SliceMgr
+from sfa.server.component import Component
 from sfa.trust.hierarchy import Hierarchy
 from sfa.util.config import Config
 from sfa.util.report import trace
@@ -92,7 +94,7 @@ def init_server_key(server_key_file, server_cert_file, config, hierarchy):
             cert.set_issuer(key=key, subject=subject)
             cert.set_pubkey(key)
             cert.sign()
-            cert.save_to_file(server_cert_file)
+            cert.save_to_file(server_cert_file, save_parents=True)
 
         else:
             # the pkey was found in the authorites directory. lets 
@@ -104,7 +106,7 @@ def init_server_key(server_key_file, server_cert_file, config, hierarchy):
             cert.set_issuer(key=key, subject=subject)
             cert.set_pubkey(key)
             cert.sign()
-            cert.save_to_file(server_cert_file)
+            cert.save_to_file(server_cert_file, save_parents=True)
 
 
     # If private key exists and cert doesnt, recreate cert
@@ -132,6 +134,8 @@ def main():
          help="run slice manager", default=False)
     parser.add_option("-a", "--aggregate", dest="am", action="store_true",
          help="run aggregate manager", default=False)
+    parser.add_option("-c", "--component", dest="cm", action="store_true",
+         help="run component server", default=False)
     parser.add_option("-v", "--verbose", dest="verbose", action="store_true", 
          help="verbose mode", default=False)
     parser.add_option("-d", "--daemon", dest="daemon", action="store_true",
@@ -163,5 +167,9 @@ def main():
         s = SliceMgr("", slicemgr_port, server_key_file, server_cert_file)
         s.start()
 
+    if (options.cm):
+        c = Component("", component_port, server_key_file, server_cert_file)
+        c.start()
+
 if __name__ == "__main__":
     main()