X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fstorage%2Fmodel.py;fp=sfa%2Fstorage%2Fmodel.py;h=1228290fe64ed2704fb33384280ae8964e85b2b5;hb=f42832ac5338cb900a7d297cf6cdbe63bace6009;hp=b0950429d604c37768d3a2c96a9579a1457fda62;hpb=b1f27f83087c333cbcb80c63b5d0e7b9a9f9d1ed;p=sfa.git diff --git a/sfa/storage/model.py b/sfa/storage/model.py index b0950429..1228290f 100644 --- a/sfa/storage/model.py +++ b/sfa/storage/model.py @@ -191,9 +191,7 @@ class RegAuthority (RegRecord): def __repr__ (self): return RegRecord.__repr__(self).replace("Record","Authority") - def update_pis (self, pi_hrns): - # don't ruin the import of that file in a client world - from sfa.storage.alchemy import dbsession + def update_pis (self, pi_hrns, dbsession): # strip that in case we have words pi_hrns = [ x.strip() for x in pi_hrns ] request = dbsession.query (RegUser).filter(RegUser.hrn.in_(pi_hrns)) @@ -221,9 +219,7 @@ class RegSlice (RegRecord): def __repr__ (self): return RegRecord.__repr__(self).replace("Record","Slice") - def update_researchers (self, researcher_hrns): - # don't ruin the import of that file in a client world - from sfa.storage.alchemy import dbsession + def update_researchers (self, researcher_hrns, dbsession): # strip that in case we have words researcher_hrns = [ x.strip() for x in researcher_hrns ] request = dbsession.query (RegUser).filter(RegUser.hrn.in_(researcher_hrns)) @@ -233,8 +229,9 @@ class RegSlice (RegRecord): # when dealing with credentials, we need to retrieve the PIs attached to a slice def get_pis (self): - # don't ruin the import of that file in a client world - from sfa.storage.alchemy import dbsession + from sqlalchemy.orm import sessionmaker + Session=sessionmaker() + dbsession=Session.object_session(self) from sfa.util.xrn import get_authority authority_hrn = get_authority(self.hrn) auth_record = dbsession.query(RegAuthority).filter_by(hrn=authority_hrn).first() @@ -344,8 +341,7 @@ class SliverAllocation(Base,AlchemyObj): return state @staticmethod - def set_allocations(sliver_ids, state): - from sfa.storage.alchemy import dbsession + def set_allocations(sliver_ids, state, dbsession): if not isinstance(sliver_ids, list): sliver_ids = [sliver_ids] sliver_state_updated = {} @@ -366,8 +362,7 @@ class SliverAllocation(Base,AlchemyObj): dbsession.commit() @staticmethod - def delete_allocations(sliver_ids): - from sfa.storage.alchemy import dbsession + def delete_allocations(sliver_ids, dbsession): if not isinstance(sliver_ids, list): sliver_ids = [sliver_ids] constraint = SliverAllocation.sliver_id.in_(sliver_ids) @@ -377,8 +372,10 @@ class SliverAllocation(Base,AlchemyObj): dbsession.commit() def sync(self): - from sfa.storage.alchemy import dbsession + from sqlalchemy.orm import sessionmaker + Session=sessionmaker() + dbsession=Session.object_session(self) constraints = [SliverAllocation.sliver_id==self.sliver_id] results = dbsession.query(SliverAllocation).filter(and_(*constraints)) records = []