sfi.py: use option "interface" to select the SFA interface to talk to (sm or registry...
[sfa.git] / sfa / client / sfi.py
index b331a57..4c2d8bc 100644 (file)
@@ -379,13 +379,21 @@ class Sfi:
                               help='how myslice config variables as well')
 
         if command in ("version"):
-            parser.add_option("-R","--registry-version",
-                              action="store_true", dest="version_registry", default=False,
-                              help="probe registry version instead of sliceapi")
             parser.add_option("-l","--local",
                               action="store_true", dest="version_local", default=False,
                               help="display version of the local client")
 
+        if command in ("version", "trusted"):
+            parser.add_option("-I", "--interface", dest="interface", type="choice",
+                            help="Select the SFA interface the call should target (Slice Interface (sm) | Registry Interface (registry))",
+                            choices=("sm", "registry"),
+                            default="sm")
+
+        if command in ("trusted"):
+            parser.add_option("-R","--registry-version",
+                             action="store_true", dest="version_registry", default=False,
+                             help="probe registry version instead of sliceapi")
+
         if command in ("add", "update"):
             parser.add_option('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn (mandatory)')
             parser.add_option('-t', '--type', dest='type', metavar='<type>', help='object type', default=None)
@@ -834,7 +842,7 @@ use this if you mean an authority instead""")
         if options.version_local:
             version=version_core()
         else:
-            if options.version_registry:
+            if options.interface == "registry":
                 server=self.registry()
             else:
                 server = self.sliceapi()
@@ -1624,13 +1632,21 @@ $ sfi m -b http://mymanifold.foo.com:7080/
         """
         return the trusted certs at this interface (get_trusted_certs)
         """ 
-        trusted_certs = self.registry().get_trusted_certs()
+        if options.interface == "registry":
+            server=self.registry()
+        else:
+            server = self.sliceapi()
+        cred = self.my_authority_credential_string()
+        trusted_certs = server.get_trusted_certs(cred)
+        if options.interface != "registry":
+            trusted_certs = ReturnValue.get_value(trusted_certs)
+
         for trusted_cert in trusted_certs:
-            print "\n===========================================================\n"
-            gid = GID(string=trusted_cert)
-            gid.dump()
-            cert = Certificate(string=trusted_cert)
-            self.logger.debug('Sfi.trusted -> %r'%cert.get_subject())
-            print "Certificate:\n%s\n\n"%trusted_cert
-        return 
+             print "\n===========================================================\n"
+             gid = GID(string=trusted_cert)
+             gid.dump()
+             cert = Certificate(string=trusted_cert)
+             self.logger.debug('Sfi.trusted -> %r'%cert.get_subject())
+             print "Certificate:\n%s\n\n"%trusted_cert
 
+        return