source: trunk/Monitoring/smon/types.py @ 876

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

Timeout test impl.
Add timestamp.

File size: 2.1 KB
RevLine 
[840]1# -*- coding: ISO-8859-1 -*-
2
3##################################
[866]4#  @program                smon
[840]5#  @description    simulation monitor
[866]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 $
[840]10#  @lastrevision   $Date: 2013-03-24 20:01:23 +0100 (Sun, 24 Mar 2013) $
[866]11#  @license                CeCILL (http://dods.ipsl.jussieu.fr/jripsl/smon/LICENSE)
[840]12##################################
13
[842]14import networkx as nx
15import pickle
16
[840]17CSTE_SAMPLE="2.2"
18
19class 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
[866]27        def __str__(self):
28                return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()])
[840]29
[876]30class MessageNotFoundException(SMONException):
31        pass
32
[840]33class Tree():
34
[866]35        def __init__(self,**kw):
[840]36                pass
37
[866]38        def __str__(self):
39                return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()])
[840]40
[865]41class Simulation():
42
[866]43        def __init__(self,**kw):
[865]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")
[866]47                self.name=kw.get("name")
[876]48                self.id=kw.get("id")
[865]49
[866]50        def __str__(self):
51                return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()])
[865]52
[866]53class Message():
[875]54        file=None
[876]55        simuid=None
56        jobid=None
57        timestamp=None
58        command=None
[866]59
60        def __init__(self,JSON_KW):
61                for key in JSON_KW:
62                        setattr(self, key, JSON_KW[key])
63
64        def __str__(self):
65                return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()])
66
[840]67class SimulationTree(Tree):
68
[866]69        def __init__(self,**kw):
[842]70                dg = nx.DiGraph()
[840]71
[842]72        def update(cls):
73                dg.add_edge('a','b')
[866]74       
75        def print__TODO(cls):
76                print dg.edges() 
[842]77
78        def write(cls):
79                pickle.dump(dg, open('/tmp/graph.txt', 'w'))
80
81        def read(cls):
82                dg = pickle.load(open('/tmp/graph.txt'))
83
[866]84        def __str__(self):
85                return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()])
[840]86
87class SimulationTrees():
88
[866]89        def __init__(self,**kw):
90                self.sample=kw.get("sample",[])
[840]91
[866]92        def __str__(self):
93                return ",".join(['%s=%s'%(k,str(v)) for (k,v) in self.__dict__.iteritems()])
Note: See TracBrowser for help on using the repository browser.