1 from elixir import Entity, Field, OneToMany, ManyToOne, ManyToMany
2 from elixir import options_defaults, using_options, setup_all
3 from elixir import String, Integer as Int, DateTime, Boolean
4 from datetime import datetime,timedelta
6 from monitor.database.dborm import mon_metadata, mon_session
7 __metadata__ = mon_metadata
8 __session__ = mon_session
11 class HistoryNodeRecord(Entity):
12 hostname = Field(String(250),primary_key=True)
13 last_checked = Field(DateTime,default=datetime.now)
14 last_changed = Field(DateTime,default=datetime.now)
15 status = Field(String,default="unknown")
18 def by_hostname(cls, hostname):
19 return cls.query.filter_by(hostname=hostname).first()
21 class HistoryPCURecord(Entity):
22 plc_pcuid = Field(Int,primary_key=True)
24 last_checked = Field(DateTime,default=datetime.now)
25 last_changed = Field(DateTime,default=datetime.now)
26 status = Field(String,default="unknown")
28 last_valid = Field(DateTime,default=None)
29 valid = Field(String,default="unknown")
32 def by_pcuid(cls, pcuid):
33 return cls.query.filter_by(pcuid=pcuid).first()
35 class HistorySiteRecord(Entity):
36 loginbase = Field(String(250),primary_key=True)
38 last_checked = Field(DateTime,default=datetime.now)
39 last_changed = Field(DateTime,default=datetime.now)
41 nodes_total = Field(Int,default=0)
42 nodes_up = Field(Int,default=0)
43 slices_used = Field(Int,default=0)
45 status = Field(String,default="unknown")
48 def by_loginbase(cls, loginbase):
49 return cls.query.filter_by(loginbase=loginbase).first()