X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=PLC%2FSessions.py;h=3c1543ea72549b60935126db9ae6267904c572cc;hb=d959fffe2878262ba0525225f2241b7c6004b3ea;hp=f45ea971d134e98cdb4230b2fc507ad25ca80f1a;hpb=619bbb1a7acb1fcbd68567529913b120678ecc1b;p=plcapi.git diff --git a/PLC/Sessions.py b/PLC/Sessions.py index f45ea97..3c1543e 100644 --- a/PLC/Sessions.py +++ b/PLC/Sessions.py @@ -30,56 +30,20 @@ class Session(Row): return time.strftime("%Y-%m-%d %H:%M:%S", time.gmtime(expires)) - def add_person(self, person, commit = True): - """ - Associate person with session. - """ - - assert 'session_id' in self - assert isinstance(person, Person) - assert 'person_id' in person - - session_id = self['session_id'] - person_id = person['person_id'] - - self.api.db.do("INSERT INTO person_session (session_id, person_id)" \ - " VALUES(%(session_id)s, %(person_id)d)", - locals()) - - if commit: - self.api.db.commit() - - self['person_id'] = person_id + add_person = Row.add_object(Person, 'person_session') def add_node(self, node, commit = True): - """ - Associate node with session. - """ - - assert 'session_id' in self - assert isinstance(node, Node) - assert 'node_id' in node - - session_id = self['session_id'] - node_id = node['node_id'] - # Nodes can have only one session at a time - self.api.db.do("DELETE FROM node_session WHERE node_id = %(node_id)d", - locals()) - - self.api.db.do("INSERT INTO node_session (session_id, node_id)" \ - " VALUES(%(session_id)s, %(node_id)d)", - locals()) - - if commit: - self.api.db.commit() + self.api.db.do("DELETE FROM node_session WHERE node_id = %d" % \ + node['node_id']) - self['node_id'] = node_id + add = Row.add_object(Node, 'node_session') + add(self, node, commit = commit) def sync(self, commit = True, insert = None): if not self.has_key('session_id'): # Before a new session is added, delete expired sessions - expired = Sessions(self.api, expires = -int(time.time())).values() + expired = Sessions(self.api, expires = -int(time.time())) for session in expired: session.delete(commit)