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: types.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 | |
---|
14 | import networkx as nx |
---|
15 | import pickle |
---|
16 | |
---|
17 | CSTE_SAMPLE="2.2" |
---|
18 | |
---|
19 | class SMONException(Exception): |
---|
20 | code=None |
---|
21 | msg=None |
---|
22 | |
---|
23 | def __init__(self, code=None,msg=None): |
---|
24 | self.code=code |
---|
25 | self.msg=msg |
---|
26 | |
---|
27 | def __str__(self): |
---|
28 | return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()]) |
---|
29 | |
---|
30 | class MessageNotFoundException(SMONException): |
---|
31 | pass |
---|
32 | |
---|
33 | class Tree(): |
---|
34 | |
---|
35 | def __init__(self,**kw): |
---|
36 | pass |
---|
37 | |
---|
38 | def __str__(self): |
---|
39 | return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()]) |
---|
40 | |
---|
41 | class Simulation(): |
---|
42 | |
---|
43 | def __init__(self,**kw): |
---|
44 | self.exec_start_date=kw.get("exec_start_date") |
---|
45 | self.exec_end_date=kw.get("exec_end_date") |
---|
46 | self.status=kw.get("status") |
---|
47 | self.name=kw.get("name") |
---|
48 | self.id=kw.get("id") |
---|
49 | |
---|
50 | def __str__(self): |
---|
51 | return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()]) |
---|
52 | |
---|
53 | class Message(): |
---|
54 | type=None |
---|
55 | file=None |
---|
56 | simuid=None |
---|
57 | jobid=None |
---|
58 | timestamp=None |
---|
59 | crea_date=None |
---|
60 | command=None |
---|
61 | body=None |
---|
62 | |
---|
63 | def __init__(self,JSON_KW): |
---|
64 | for key in JSON_KW: |
---|
65 | setattr(self, key, JSON_KW[key]) |
---|
66 | |
---|
67 | def __str__(self): |
---|
68 | return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()]) |
---|
69 | |
---|
70 | class SimulationTree(Tree): |
---|
71 | |
---|
72 | def __init__(self,**kw): |
---|
73 | dg = nx.DiGraph() |
---|
74 | |
---|
75 | def update(cls): |
---|
76 | dg.add_edge('a','b') |
---|
77 | |
---|
78 | def print__TODO(cls): |
---|
79 | print dg.edges() |
---|
80 | |
---|
81 | def write(cls): |
---|
82 | pickle.dump(dg, open('/tmp/graph.txt', 'w')) |
---|
83 | |
---|
84 | def read(cls): |
---|
85 | dg = pickle.load(open('/tmp/graph.txt')) |
---|
86 | |
---|
87 | def __str__(self): |
---|
88 | return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()]) |
---|
89 | |
---|
90 | class SimulationTrees(): |
---|
91 | |
---|
92 | def __init__(self,**kw): |
---|
93 | self.sample=kw.get("sample",[]) |
---|
94 | |
---|
95 | def __str__(self): |
---|
96 | return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()]) |
---|