X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=monitor%2Fdatabase%2Finfo%2Faction.py;h=704f733ab0b4e9cae81d37f5da0a741fc2211e50;hb=0e3cb254ed858745809d57de80437d73aedc6eba;hp=0abec62c9d50094cb40666a513ffb336d33b2ad6;hpb=c9d06f3b274ecbc092a0b3eb1f5ceb6c0f734aad;p=monitor.git diff --git a/monitor/database/info/action.py b/monitor/database/info/action.py index 0abec62..704f733 100644 --- a/monitor/database/info/action.py +++ b/monitor/database/info/action.py @@ -67,9 +67,9 @@ class BlacklistRecord(Entity): return False else: if self.date_created + timedelta(0,self.expires) > datetime.now(): - return True - else: return False + else: + return True def willExpire(self): if self.neverExpires(): @@ -77,13 +77,23 @@ class BlacklistRecord(Entity): else: return self.date_created + timedelta(0, self.expires) +class BootmanSequenceRecord(Entity): + sequence = Field(String, primary_key=True, default=None) + action = Field(String, default=None) + date_created = Field(DateTime,default=datetime.now) + class ActionRecord(Entity): @classmethod def get_latest_by(cls, **kwargs): # TODO: need to sort on 'round' since actions will not be globally sync'd. return cls.query.filter_by(**kwargs).order_by(ActionRecord.id.desc()).first() -# ACCOUNTING + @classmethod + def delete_recent_by(cls, since, **kwargs): + acts = cls.query.filter_by(**kwargs).filter(cls.date_created >= datetime.now() - timedelta(since)).order_by(cls.date_created.desc()) + for i in acts: i.delete() + + # ACCOUNTING date_created = Field(DateTime,default=datetime.now) loginbase = Field(String,default=None) hostname = Field(String,default=None) @@ -107,6 +117,8 @@ class ActionRecord(Entity): # NOTE: in case an exception is thrown while trying to perform an action. error_string = Field(String, default=None) + log_path = Field(String, default=None) + #issue = ManyToOne('IssueRecord') # NOTE: this is the parent relation to fb records. first create the # action record, then append to this value all of the findbad records we