X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=monitor%2Fdatabase%2Finfo%2Faction.py;h=704f733ab0b4e9cae81d37f5da0a741fc2211e50;hb=0e3cb254ed858745809d57de80437d73aedc6eba;hp=0cdad0a850e24f236c6f17fe3a5d52b913554358;hpb=9a1832f6a427951ce3607640893f0b2c9400a6ad;p=monitor.git diff --git a/monitor/database/info/action.py b/monitor/database/info/action.py index 0cdad0a..704f733 100644 --- a/monitor/database/info/action.py +++ b/monitor/database/info/action.py @@ -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