resolve conflict manually
[sfa.git] / sfa / client / sfi.py
index d25c172..1365342 100755 (executable)
@@ -15,9 +15,10 @@ from StringIO import StringIO
 from types import StringTypes, ListType
 from optparse import OptionParser
 import zlib
-import logging
 
+from sfa.util.sfalogging import sfa_logger,sfa_logger_goes_to_console
 from sfa.trust.certificate import Keypair, Certificate
+from sfa.trust.gid import GID
 from sfa.trust.credential import Credential
 from sfa.util.sfaticket import SfaTicket
 from sfa.util.record import SfaRecord, UserRecord, SliceRecord, NodeRecord, AuthorityRecord
@@ -25,8 +26,6 @@ from sfa.util.namespace import get_leaf, get_authority, hrn_to_urn
 from sfa.util.xmlrpcprotocol import ServerException
 import sfa.util.xmlrpcprotocol as xmlrpcprotocol
 from sfa.util.config import Config
-from sfa.util.sfalogging import console_logger
-
 
 AGGREGATE_PORT=12346
 CM_PORT=12346
@@ -128,7 +127,8 @@ class Sfi:
         self.authority = None
         self.options = None
         self.hashrequest = False
-        self.logger=console_logger
+        sfa_logger_goes_to_console()
+        self.logger=sfa_logger()
    
     def create_cmd_parser(self, command, additional_cmdargs=None):
         cmdargs = {"list": "name",
@@ -231,14 +231,12 @@ class Sfi:
                          help="user name", metavar="HRN", default=None)
         parser.add_option("-a", "--auth", dest="auth",
                          help="authority name", metavar="HRN", default=None)
-        parser.add_option("-v", "--verbose",
-                         action="store_true", dest="verbose", default=False,
-                         help="verbose mode")
+        parser.add_option("-v", "--verbose", action="count", dest="verbose", default=0,
+                         help="verbose mode - cumulative")
         parser.add_option("-D", "--debug",
                           action="store_true", dest="debug", default=False,
                           help="Debug (xml-rpc) protocol messages")
-        parser.add_option("-p", "--protocol",
-                         dest="protocol", default="xmlrpc",
+        parser.add_option("-p", "--protocol", dest="protocol", default="xmlrpc",
                          help="RPC protocol (xmlrpc or soap)")
         parser.add_option("-k", "--hashrequest",
                          action="store_true", dest="hashrequest", default=False,
@@ -258,7 +256,7 @@ class Sfi:
        except:
           self.logger.critical("Failed to read configuration file %s"%config_file)
           self.logger.info("Make sure to remove the export clauses and to add quotes")
-          if not self.options.verbose:
+          if self.options.verbose==0:
               self.logger.info("Re-run with -v for more details")
           else:
               self.logger.log_exc("Could not read config file %s"%config_file)
@@ -402,8 +400,8 @@ class Sfi:
         if (os.path.isfile(file)):
             credential = Credential(filename=file)
             # make sure it isnt expired 
-            if not credential.get_lifetime or \
-               datetime.datetime.today() < credential.get_lifetime():
+            if not credential.get_expiration or \
+               datetime.datetime.today() < credential.get_expiration():
                 return credential
         return None 
  
@@ -433,11 +431,11 @@ class Sfi:
                 if user_name.count(".") > 0:
                     user_name = user_name.replace(".", '_')
                     self.user = self.authority + "." + user_name
-                cred_str = self.registry.get_self_credential(cert_string, "user", hrn)
+                cred_str = self.registry.GetSelfCredential(cert_string, hrn, "user")
             else:
                 # bootstrap slice credential from user credential
                 user_cred = self.get_user_cred().save_to_string(save_parents=True)
-                cred_str = self.registry.get_credential(user_cred, type, hrn)
+                cred_str = self.registry.GetCredential(user_cred, hrn, type)
             
             if not cred_str:
                 self.logger.critical("Failed to get %s credential" % type)
@@ -929,7 +927,7 @@ class Sfi:
         (options, args) = parser.parse_args()
         self.options = options
 
-        if self.options.verbose: self.logger.setLevel(logging.DEBUG)
+        self.logger.setLevelFromOptVerbose(self.options.verbose)
         if options.hashrequest:
             self.hashrequest = True
  
@@ -942,10 +940,7 @@ class Sfi:
 
         self.set_servers()
     
-        self.logger.info("Command %s" % command)
-        self.logger.info("dir %s, user %s, auth %s, reg %s, sm %s" % (
-                self. options.sfi_dir, self.options.user,self.options.auth,
-                self.options.registry, self.options.sm))
+        self.logger.info("Command=%s" % command)
         if command in ("resources"):
             self.logger.debug("resources cmd_opts %s" % cmd_opts.format)
         elif command in ("list", "show", "remove"):
@@ -961,4 +956,4 @@ class Sfi:
         return
     
 if __name__ == "__main__":
-   Sfi().main()
+    Sfi().main()