source: trunk/Monitoring/smon/local_repo.py @ 866

Last change on this file since 866 was 866, checked in by jripsl, 11 years ago

Add demo scenarios.

File size: 2.4 KB
Line 
1# -*- coding: ISO-8859-1 -*-
2
3##################################
4#  @program        smon
5#  @description    simulation monitor
6#  @copyright      Copyright “(c)2009 Centre National de la Recherche Scientifique CNRS.
7#                             All Rights Reserved”
8#  @svn_file       $Id: repo_io.py 2599 2013-03-24 19:01:23Z jripsl $
9#  @version        $Rev: 2599 $
10#  @lastrevision   $Date: 2013-03-24 20:01:23 +0100 (Sun, 24 Mar 2013) $
11#  @license        CeCILL (http://dods.ipsl.jussieu.fr/jripsl/smon/LICENSE)
12##################################
13
14import sys
15import sqlite3
16
17_conn=None
18timeout=1
19
20def connect():
21        global _conn
22
23        if _conn is not None:
24                raise Exception()
25
26        _conn=sqlite3.connect(":memory:",timeout)
27
28        create_tables()
29
30def free():
31        global _conn
32
33        if _conn is None:
34                raise Exception()
35
36        _conn.close()
37
38        _conn=None
39
40def create_tables():
41        _conn.execute("create table simulation (id INTEGER PRIMARY KEY, name TEXT)")
42        _conn.execute("create table message (id INTEGER PRIMARY KEY, simulation_id TEXT)") # TODO: check how to use INT datatype for simulation_id column
43
44def retrieve_simulation(name):
45        c=_conn.cursor()
46
47        c.execute("select name,id from simulation where name = ?",(name,))
48
49        rs=c.fetchone()
50
51        if rs is None:
52                raise Exception()
53
54        return smon.types.Simulation(id=rs[1])
55   
56def delete_simulation(simulation):
57        _conn.execute("delete from simulation where name = ?",(simulation.name,))
58
59def create_simulation(simulation):
60        _conn.execute("insert into simulation (name) values (?)",(simulation.name,))
61   
62def update_simulation_status(simulation):
63        _conn.execute("update simulation set status=? where name = ?",(simulation.status,simulation.name))
64
65def retrieve_messages(simulation):
66        li=[]
67
68        c=_conn.cursor()
69
70        _conn.execute("select id from message where simulation_id = ?",(simulation.id,))
71
72        rs=c.fetchone()
73        while rs is not None:
74                li.append(smon.types.Message(id=rs[0]))
75                rs=c.fetchone()
76
77        return li
78
79def delete_messages(simulation):
80        _conn.execute("delete from message where simulation_id = ?",(simulation.id,))
81
82def create_message(message):
83        _conn.execute("insert into message (simulation_id) values (?)",(message.simuid,))
84
85def retrieve_last_message(simulation):
86        c=_conn.cursor()
87
88        _conn.execute("select id, content from message where simulation_id=? order by id desc limit 1",(simulation.id,))
89
90        rs=c.fetchone()
91
92        if rs is None:
93                raise Exception()
94
95        return smon.types.Message(id=rs[0])
Note: See TracBrowser for help on using the repository browser.