X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=monitor%2Fdatabase%2Finfo%2Fhistory.py;h=6d2ed83d7b1f11132385fd6417a5e77f601432f7;hb=5772ce036b96297a23f834ea34ce4466ef4d522c;hp=c871c788c6ca730d67e495ebb53ac94721cca8d9;hpb=54d1dc48232619d462145528734cb54ea0c616b8;p=monitor.git diff --git a/monitor/database/info/history.py b/monitor/database/info/history.py index c871c78..6d2ed83 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,8 @@ 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) + acts_as_versioned(ignore=['last_changed', 'last_checked']) @classmethod def by_hostname(cls, hostname): @@ -28,10 +32,13 @@ 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) @@ -40,10 +47,25 @@ class HistorySiteRecord(Entity): 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) + + penalty_level = Field(Int, default=0) + penalty_applied = Field(Boolean, default=False) + acts_as_versioned(ignore=['last_changed', 'last_checked']) + @classmethod def by_loginbase(cls, loginbase): return cls.query.filter_by(loginbase=loginbase).first()