From 3cf5c9d8e3f11fa56450c22efdbd6e483c5adda9 Mon Sep 17 00:00:00 2001 From: Thierry Parmentelat Date: Wed, 18 Jan 2012 10:52:58 +0100 Subject: [PATCH] addressing some of the remaining occurrences of SfaRecord --- sfa/methods/GetSelfCredential.py | 20 ++++++++++++++++---- sfa/methods/List.py | 4 ++-- sfa/methods/Resolve.py | 4 ++-- sfa/server/sfa-start.py | 2 +- tests/testAll.py | 2 +- tests/{testRecord.py => testStorage.py} | 6 +++--- 6 files changed, 25 insertions(+), 13 deletions(-) rename tests/{testRecord.py => testStorage.py} (61%) diff --git a/sfa/methods/GetSelfCredential.py b/sfa/methods/GetSelfCredential.py index fd87ca03..b8eb18a3 100644 --- a/sfa/methods/GetSelfCredential.py +++ b/sfa/methods/GetSelfCredential.py @@ -6,7 +6,6 @@ from sfa.util.method import Method from sfa.trust.certificate import Certificate from sfa.storage.parameter import Parameter, Mixed -from sfa.storage.record import SfaRecord class GetSelfCredential(Method): """ @@ -55,12 +54,25 @@ class GetSelfCredential(Method): self.api.logger.info("interface: %s\tcaller-hrn: %s\ttarget-hrn: %s\tmethod-name: %s"%(self.api.interface, origin_hrn, hrn, self.name)) - # authenticate the gid + ### 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 + + # 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) if not records: raise RecordNotFound(hrn) - record = SfaRecord(dict=records[0]) - gid = record.get_gid_object() + + record_obj = RegRecord ('unknown') + record_obj.set_from_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) + gid = record_obj.get_gid_object() gid_str = gid.save_to_string(save_parents=True) self.api.auth.authenticateGid(gid_str, [cert, type, hrn]) # authenticate the certificate against the gid in the db diff --git a/sfa/methods/List.py b/sfa/methods/List.py index bbd3e478..c023fa01 100644 --- a/sfa/methods/List.py +++ b/sfa/methods/List.py @@ -5,7 +5,6 @@ from sfa.util.method import Method from sfa.trust.credential import Credential from sfa.storage.parameter import Parameter, Mixed -from sfa.storage.record import SfaRecord class List(Method): """ @@ -23,7 +22,8 @@ class List(Method): Parameter(type([str]), "List of credentials")), ] - returns = [SfaRecord] + # xxx used to be [SfaRecord] + returns = [Parameter(dict, "registry record")] def call(self, xrn, creds): hrn, type = urn_to_hrn(xrn) diff --git a/sfa/methods/Resolve.py b/sfa/methods/Resolve.py index 9a6dd47c..7abc6cda 100644 --- a/sfa/methods/Resolve.py +++ b/sfa/methods/Resolve.py @@ -6,7 +6,6 @@ from sfa.util.method import Method from sfa.trust.credential import Credential from sfa.storage.parameter import Parameter, Mixed -from sfa.storage.record import SfaRecord class Resolve(Method): """ @@ -26,7 +25,8 @@ class Resolve(Method): Parameter(list, "List of credentials)")) ] - returns = [SfaRecord] + # xxx used to be [SfaRecord] + returns = [Parameter(dict, "registry record")] def call(self, xrns, creds): type = None diff --git a/sfa/server/sfa-start.py b/sfa/server/sfa-start.py index 09b68f51..fe811ff9 100755 --- a/sfa/server/sfa-start.py +++ b/sfa/server/sfa-start.py @@ -138,7 +138,7 @@ def update_cert_records(gids): gid_urns = [gid.get_urn() for gid in gids] hrns_expected = [gid.get_hrn() for gid in gids] records_found = dbsession.query(RegRecord).\ - filter_by(pointer=-1)filter(RegRecord.hrn.in_(hrns_expected)).all() + filter_by(pointer=-1).filter(RegRecord.hrn.in_(hrns_expected)).all() # remove old records for record in records_found: diff --git a/tests/testAll.py b/tests/testAll.py index 875b139b..1b9a4667 100755 --- a/tests/testAll.py +++ b/tests/testAll.py @@ -12,7 +12,7 @@ from testXrn import * from testKeypair import * # xxx broken-test #from testHierarchy import * -from testRecord import * +from testStorage import * if __name__ == "__main__": unittest.main() diff --git a/tests/testRecord.py b/tests/testStorage.py similarity index 61% rename from tests/testRecord.py rename to tests/testStorage.py index f931bdad..deb69f4e 100755 --- a/tests/testRecord.py +++ b/tests/testStorage.py @@ -1,14 +1,14 @@ import unittest from sfa.trust.gid import * from sfa.util.config import * -from sfa.storage.record import * +from sfa.storage.persistentobjs import RegRecord -class TestRecord(unittest.TestCase): +class TestStorage(unittest.TestCase): def setUp(self): pass def testCreate(self): - r = SfaRecord() + r = RegRecord('user') if __name__ == "__main__": unittest.main() -- 2.43.0