X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fsenslab%2Fslabpostgres.py;h=96c9498354b6c3d1962c71888581511106d7b16c;hb=4bcb930c9f9db28d6d779af44d73d0f5d440ead6;hp=c3270248198fe8ba120de2eafe59e102d59f8d87;hpb=927c8faba297921a2ba494d0c3feb4c02eaa8b2f;p=sfa.git diff --git a/sfa/senslab/slabpostgres.py b/sfa/senslab/slabpostgres.py index c3270248..96c94983 100644 --- a/sfa/senslab/slabpostgres.py +++ b/sfa/senslab/slabpostgres.py @@ -9,7 +9,7 @@ from sfa.util.sfalogging import logger from sqlalchemy import Column, Integer, String, DateTime from sqlalchemy import Table, Column, MetaData, join, ForeignKey import sfa.storage.model as model - +from sfa.storage.model import RegSlice from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship, backref @@ -20,6 +20,7 @@ from sqlalchemy import MetaData, Table from sqlalchemy.exc import NoSuchTableError from sqlalchemy import String +from sfa.storage.alchemy import dbsession #Dict holding the columns names of the table as keys #and their type, used for creation of the table @@ -40,23 +41,20 @@ SlabBase = declarative_base() class SliceSenslab (SlabBase): __tablename__ = 'slice_senslab' #record_id_user = Column(Integer, primary_key=True) + slice_hrn = Column(String,primary_key=True) peer_authority = Column( String,nullable = True) record_id_slice = Column(Integer) - record_id_user = Column(Integer) - oar_job_id = Column( Integer,default = -1) - node_list = Column(postgresql.ARRAY(String), nullable =True) + record_id_user = Column(Integer) + + #oar_job_id = Column( Integer,default = -1) + #node_list = Column(postgresql.ARRAY(String), nullable =True) - def __init__ (self, slice_hrn =None, oar_job_id=None, record_id_slice=None, record_id_user= None,peer_authority=None): - self.node_list = [] + def __init__ (self, slice_hrn =None, record_id_slice=None, record_id_user= None,peer_authority=None): if record_id_slice: self.record_id_slice = record_id_slice if slice_hrn: self.slice_hrn = slice_hrn - if oar_job_id: - self.oar_job_id = oar_job_id - if slice_hrn: - self.slice_hrn = slice_hrn if record_id_user: self.record_id_user= record_id_user if peer_authority: @@ -64,8 +62,8 @@ class SliceSenslab (SlabBase): def __repr__(self): - result=">sys.stderr, " \r\n \r\n \t SLABPOSTGRES update_job slice_rec %s"%(slice_rec) - if job_id is not None: - slice_rec.oar_job_id = job_id - if nodes is not None : - slice_rec.node_list = nodes - slab_dbsession.commit() - - def find (self, name = None, filter_dict = None): - print>>sys.stderr, " \r\n \r\n \t SLABPOSTGRES find filter_dict %s"%(filter_dict) - - #Filter_by can not handle more than one argument, hence these functions - def filter_id_user(query, user_id): - print>>sys.stderr, " \r\n \r\n \t SLABPOSTGRES find filter_id_user" - return query.filter_by(record_id_user = user_id) - - def filter_job(query, job): - print>>sys.stderr, " \r\n \r\n \t SLABPOSTGRES find filter_job " - return query.filter_by(oar_job_id = job) - - def filer_id_slice (query, id_slice): - print>>sys.stderr, " \r\n \r\n \t SLABPOSTGRES find filer_id_slice" - return query.filter_by(record_id_slice = id_slice) - - def filter_slice_hrn(query, hrn): - print>>sys.stderr, " \r\n \r\n \t SLABPOSTGRES find filter_slice_hrn" - return query.filter_by(slice_hrn = hrn) - - - extended_filter = {'record_id_user': filter_id_user, - 'oar_job_id':filter_job, - 'record_id_slice': filer_id_slice, - 'slice_hrn': filter_slice_hrn} - - Q = slab_dbsession.query(SliceSenslab) - - if filter_dict is not None: - for k in filter_dict: - try: - newQ= extended_filter[k](Q, filter_dict[k]) - Q = newQ - except KeyError: - print>>sys.stderr, "\r\n \t\t FFFFFFFFFFFFFFFFUUUUUUUUFUFUFU!!!!!!!!" - print>>sys.stderr, " HEEEEEEEEEEEEY %s " %(Q.first()) - rec = Q.first() - print>>sys.stderr, " \r\n \r\n \t SLABPOSTGRES find rec %s" %(rec) - return dict(zip(['record_id_user','oar_job_id', 'record_id_slice','slice_hrn'],[rec.record_id_user,rec.oar_job_id,rec.record_id_slice, rec.slice_hrn])) - #reclist = [] - ##for rec in Q.all(): - #reclist.append(dict(zip(['record_id_user','oar_job_id', 'record_id_slice','slice_hrn'],[rec.record_id_user,rec.oar_job_id,rec.record_id_slice, rec.slice_hrn]))) - #return reclist - + +