X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=monitor%2Fdatabase%2Finfo%2Faction.py;h=704f733ab0b4e9cae81d37f5da0a741fc2211e50;hb=0e3cb254ed858745809d57de80437d73aedc6eba;hp=ab55ed098d323723ed37decf54b5a0040a8a27ff;hpb=b38d1bb66c3989ae89b11e7d223259e7120fb163;p=monitor.git diff --git a/monitor/database/info/action.py b/monitor/database/info/action.py index ab55ed0..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,12 +77,22 @@ 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() + @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) @@ -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