first stab at a design where each incoming API call has its own dbsession
[sfa.git] / sfa / methods / GetSelfCredential.py
index b8eb18a..f3a9612 100644 (file)
@@ -1,4 +1,3 @@
-
 from sfa.util.faults import RecordNotFound, ConnectionKeyGIDMismatch
 from sfa.util.xrn import urn_to_hrn
 from sfa.util.method import Method
@@ -57,18 +56,17 @@ class GetSelfCredential(Method):
         ### authenticate the gid
         # import here so we can load this module at build-time for sfa2wsdl
         #from sfa.storage.alchemy import dbsession
-        from sfa.storage.persistentobjs import RegRecord
+        from sfa.storage.model import RegRecord
 
         # xxx-local - the current code runs Resolve, which would forward to 
         # another registry if needed
         # I wonder if this is truly the intention, or shouldn't we instead 
         # only look in the local db ?
-        records = self.api.manager.Resolve(self.api, xrn, type)
+        records = self.api.manager.Resolve(self.api, xrn, type, details=False)
         if not records:
             raise RecordNotFound(hrn)
 
-        record_obj = RegRecord ('unknown')
-        record_obj.set_from_dict (records[0])
+        record_obj = RegRecord (dict=records[0])
         # xxx-local the local-only version would read 
         #record_obj = dbsession.query(RegRecord).filter_by(hrn=hrn).first()
         #if not record_obj: raise RecordNotFound(hrn)
@@ -85,4 +83,4 @@ class GetSelfCredential(Method):
                     self.api.logger.debug("ConnectionKeyGIDMismatch, %s filename: %s"%(name,obj.filename))
             raise ConnectionKeyGIDMismatch(gid.get_subject())
         
-        return self.api.manager.GetCredential(self.api, xrn, type, is_self=True)
+        return self.api.manager.GetCredential(self.api, xrn, type)