Merge branch 'master' into senslab2
[sfa.git] / sfa / client / sfaclientlib.py
index 13a4831..f4b9a7e 100644 (file)
@@ -3,6 +3,11 @@
 # a minimal library for writing "lightweight" SFA clients
 #
 
+# xxx todo
+# this library should probably check for the expiration date of the various
+# certificates and automatically retrieve fresh ones when expired
+
+import sys
 import os,os.path
 
 import sfa.util.sfalogging
@@ -233,7 +238,7 @@ class SfaClientBootstrap:
     def authority_credential_filename (self, hrn): 
         return self.credential_filename(hrn,'authority')
     def my_gid_filename (self):
-        return self.gid_filename ("user", self.hrn)
+        return self.gid_filename (self.hrn, "user")
     def gid_filename (self, hrn, type): 
         return self.fullpath ("%s.%s.gid"%(hrn,type))
     
@@ -276,10 +281,12 @@ class SfaClientBootstrap:
                     return filename
                 except IOError:
                     raise 
-                except:
-                    self.logger.log_exc()
-                    raise Exception, "Could not produce/retrieve %s"%filename
-            wrapped.__name__=f.__name__
+                except :
+                    error = sys.exc_info()[:2]
+                    message="Could not produce/retrieve %s (%s -- %s)"%\
+                        (filename,error[0],error[1])
+                    self.logger.log_exc(message)
+                    raise Exception, message
             return wrapped
         return wrap
 
@@ -315,3 +322,8 @@ class SfaClientBootstrap:
     def authority_credential_string (self, hrn): 
         self.authority_credential(hrn)
         return self.plain_read(self.authority_credential_filename(hrn))
+
+    # for consistency
+    def private_key (self):
+        self.assert_private_key()
+        return self.private_key_filename()