hopefully clearer message when client can't bootstrap
[sfa.git] / sfa / client / sfaclientlib.py
index 13a4831..3f6f6bc 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
@@ -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()