merges from v2
[monitor.git] / monitor / database / info / plc.py
1 from elixir import Entity, Field, OneToMany, ManyToOne, ManyToMany
2 from elixir import options_defaults, using_options, setup_all
3 from elixir import PickleType, String, Integer, DateTime, Boolean
4 from elixir.ext.versioned import *
5
6 from datetime import datetime,timedelta
7
8 from monitor.database.dborm import mon_metadata, mon_session
9 __metadata__ = mon_metadata
10 __session__  = mon_session
11
12 class PlcSite(Entity):
13         site_id = Field(Integer,primary_key=True)
14         loginbase = Field(String,default=None)
15         date_checked = Field(DateTime,default=datetime.now)
16
17         plc_site_stats = Field(PickleType,default=None)
18         acts_as_versioned(ignore=['date_checked'])
19
20 class PlcNode(Entity):
21         node_id = Field(Integer,primary_key=True)
22         hostname = Field(String,default=None)
23         date_checked = Field(DateTime,default=datetime.now)
24
25         plc_node_stats = Field(PickleType,default=None)
26         acts_as_versioned(ignore=['date_checked'])
27
28 class PlcPCU(Entity):
29         pcu_id = Field(Integer,primary_key=True)
30         date_checked = Field(DateTime,default=datetime.now)
31
32         plc_pcu_stats = Field(PickleType,default=None)
33         acts_as_versioned(ignore=['date_checked'])
34
35 class PlcPCU2(Entity):
36         pcu_id = Field(Integer,primary_key=True)
37         date_checked = Field(DateTime,default=datetime.now)
38
39         site_id = Field(Integer, default=0)
40         protocol = Field(String, default=None)
41         node_ids = Field(PickleType,default=None)
42         ports = Field(PickleType,default=None)
43         hostname = Field(String, default=None)
44         ip = Field(String, default=None)
45         username = Field(String, default=None)
46         password = Field(String, default=None)
47         model = Field(String, default=None)
48         notes = Field(String, default=None)
49
50         acts_as_versioned(ignore=['date_checked'])