X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=monitor%2Fdatabase%2Finfo%2Fhistory.py;h=22c8d7b4fa32f8731dcc717d08b2752e5683571e;hb=145f2f31748357892139d5271f292c949bc9d062;hp=c871c788c6ca730d67e495ebb53ac94721cca8d9;hpb=54d1dc48232619d462145528734cb54ea0c616b8;p=monitor.git diff --git a/monitor/database/info/history.py b/monitor/database/info/history.py index c871c78..22c8d7b 100644 --- a/monitor/database/info/history.py +++ b/monitor/database/info/history.py @@ -1,6 +1,8 @@ from elixir import Entity, Field, OneToMany, ManyToOne, ManyToMany from elixir import options_defaults, using_options, setup_all from elixir import String, Integer as Int, DateTime, Boolean +from elixir.ext.versioned import * + from datetime import datetime,timedelta from monitor.database.dborm import mon_metadata, mon_session @@ -13,6 +15,12 @@ class HistoryNodeRecord(Entity): last_checked = Field(DateTime,default=datetime.now) last_changed = Field(DateTime,default=datetime.now) status = Field(String,default="unknown") + haspcu = Field(Boolean,default=False) + firewall = Field(Boolean,default=False) + plc_nodeid = Field(Int,default=1) + plc_siteid = Field(Int,default=1) + + acts_as_versioned(ignore=['last_changed', 'last_checked']) @classmethod def by_hostname(cls, hostname): @@ -28,22 +36,45 @@ class HistoryPCURecord(Entity): last_valid = Field(DateTime,default=None) valid = Field(String,default="unknown") + acts_as_versioned(ignore=['last_changed', 'last_checked']) + @classmethod def by_pcuid(cls, pcuid): return cls.query.filter_by(pcuid=pcuid).first() + class HistorySiteRecord(Entity): loginbase = Field(String(250),primary_key=True) + plc_siteid = Field(Int,default=1) last_checked = Field(DateTime,default=datetime.now) last_changed = Field(DateTime,default=datetime.now) nodes_total = Field(Int,default=0) nodes_up = Field(Int,default=0) + slices_total = Field(Int,default=0) slices_used = Field(Int,default=0) + # all nodes offline and never-contact. + new = Field(Boolean,default=False) + + enabled = Field(Boolean,default=False) + status = Field(String,default="unknown") + message_id = Field(Int, default=0) + message_status = Field(String, default=None) + message_queue = Field(String, default=None) + message_created = Field(DateTime, default=None) + #message_last_reply = Field(DateTime, default=None) + + penalty_level = Field(Int, default=0) + penalty_applied = Field(Boolean, default=False) + penalty_pause = Field(Boolean, default=False) + penalty_pause_time = Field(DateTime, default=None) + + acts_as_versioned(ignore=['last_changed', 'last_checked', 'message_status', 'penalty_pause_time']) + @classmethod def by_loginbase(cls, loginbase): return cls.query.filter_by(loginbase=loginbase).first()