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 *
6 from datetime import datetime,timedelta
8 from monitor.database.dborm import mon_metadata, mon_session
9 __metadata__ = mon_metadata
10 __session__ = mon_session
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)
17 plc_site_stats = Field(PickleType,default=None)
18 acts_as_versioned(ignore=['date_checked'])
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)
25 plc_node_stats = Field(PickleType,default=None)
26 acts_as_versioned(ignore=['date_checked'])
29 pcu_id = Field(Integer,primary_key=True)
30 date_checked = Field(DateTime,default=datetime.now)
32 plc_pcu_stats = Field(PickleType,default=None)
33 acts_as_versioned(ignore=['date_checked'])
35 class PlcPCU2(Entity):
36 pcu_id = Field(Integer,primary_key=True)
37 date_checked = Field(DateTime,default=datetime.now)
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)
50 acts_as_versioned(ignore=['date_checked'])