Ejemplo n.º 1
0
    def create(self) -> 'Alert':
        trend_indication = alarm_model.trend(
            alarm_model.DEFAULT_PREVIOUS_SEVERITY, self.severity)

        _, self.status = alarm_model.transition(alert=self)

        self.duplicate_count = 0
        self.repeat = False
        self.previous_severity = alarm_model.DEFAULT_PREVIOUS_SEVERITY
        self.trend_indication = trend_indication
        self.receive_time = datetime.utcnow()
        self.last_receive_id = self.id
        self.last_receive_time = self.receive_time

        self.history = [
            History(id=self.id,
                    event=self.event,
                    severity=self.severity,
                    status=self.status,
                    value=self.value,
                    text='new alert',
                    change_type='new',
                    update_time=self.create_time)
        ]

        return Alert.from_db(db.create_alert(self))
Ejemplo n.º 2
0
    def update(self) -> 'Alert':
        now = datetime.utcnow()

        self.previous_severity = db.get_severity(self)
        self.trend_indication = alarm_model.trend(self.previous_severity,
                                                  self.severity)

        status, _, previous_status = self._get_hist_info()

        _, new_status = alarm_model.transition(alert=self,
                                               current_status=status,
                                               previous_status=previous_status)

        self.duplicate_count = 0
        self.repeat = False
        self.receive_time = now
        self.last_receive_id = self.id
        self.last_receive_time = now

        history = [
            History(id=self.id,
                    event=self.event,
                    severity=self.severity,
                    status=new_status,
                    value=self.value,
                    text='correlated alert',
                    change_type='severity',
                    update_time=self.create_time)
        ]

        if new_status != status:
            status_change_hook.send(self, status=new_status, text=self.text)

        self.status = new_status
        return Alert.from_db(db.correlate_alert(self, history))
Ejemplo n.º 3
0
    def create(self) -> 'Alert':
        now = datetime.utcnow()

        trend_indication = alarm_model.trend(alarm_model.DEFAULT_PREVIOUS_SEVERITY, self.severity)

        _, self.status = alarm_model.transition(
            alert=self
        )

        self.duplicate_count = 0
        self.repeat = False
        self.previous_severity = alarm_model.DEFAULT_PREVIOUS_SEVERITY
        self.trend_indication = trend_indication
        self.receive_time = now
        self.last_receive_id = self.id
        self.last_receive_time = now
        self.update_time = now

        self.history = [History(
            id=self.id,
            event=self.event,
            severity=self.severity,
            status=self.status,
            value=self.value,
            text='new alert',
            change_type='new',
            update_time=self.create_time,
            user=g.login
        )]

        return Alert.from_db(db.create_alert(self))
Ejemplo n.º 4
0
    def update(self, correlate_with) -> 'Alert':
        now = datetime.utcnow()

        self.previous_severity = db.get_severity(self)
        self.trend_indication = alarm_model.trend(self.previous_severity,
                                                  self.severity)

        status, _, previous_status, _ = self._get_hist_info()

        _, new_status = alarm_model.transition(alert=self,
                                               current_status=status,
                                               previous_status=previous_status)

        self.duplicate_count = 0
        self.repeat = False
        self.receive_time = now
        self.last_receive_id = self.id
        self.last_receive_time = now

        if new_status != status:
            r = status_change_hook.send(correlate_with,
                                        status=new_status,
                                        text=self.text)
            _, (_, new_status, text) = r[0]
            self.update_time = now
        else:
            text = self.text

        history = [
            History(id=self.id,
                    event=self.event,
                    severity=self.severity,
                    status=new_status,
                    value=self.value,
                    text=text,
                    change_type=ChangeType.severity,
                    update_time=self.create_time,
                    user=g.login,
                    timeout=self.timeout)
        ]

        self.status = new_status
        return Alert.from_db(db.correlate_alert(self, history))
Ejemplo n.º 5
0
    def update(self) -> 'Alert':
        now = datetime.utcnow()

        self.previous_severity = db.get_severity(self)
        previous_status = db.get_status(self)
        self.trend_indication = alarm_model.trend(self.previous_severity, self.severity)

        _, self.status = alarm_model.transition(
            previous_severity=self.previous_severity,
            current_severity=self.severity,
            previous_status=previous_status,
            current_status=self.status
        )

        self.duplicate_count = 0
        self.repeat = False
        self.receive_time = now
        self.last_receive_id = self.id
        self.last_receive_time = now

        history = [History(
            id=self.id,
            event=self.event,
            severity=self.severity,
            value=self.value,
            text=self.text,
            change_type='severity',
            update_time=self.create_time
        )]

        if self.status != previous_status:
            history.append(History(
                id=self.id,
                event=self.event,
                status=self.status,
                text='correlated alert status change',
                change_type='status',
                update_time=self.create_time
            ))

        return Alert.from_db(db.correlate_alert(self, history))
Ejemplo n.º 6
0
    def update(self, correlate_with) -> 'Alert':
        now = datetime.utcnow()

        self.previous_severity = db.get_severity(self)
        self.trend_indication = alarm_model.trend(self.previous_severity, self.severity)

        status, _, previous_status = self._get_hist_info()

        _, new_status = alarm_model.transition(
            alert=self,
            current_status=status,
            previous_status=previous_status
        )

        self.duplicate_count = 0
        self.repeat = False
        self.receive_time = now
        self.last_receive_id = self.id
        self.last_receive_time = now
        text = 'correlated alert'

        if new_status != status:
            r = status_change_hook.send(correlate_with, status=new_status, text=text)
            _, (_, new_status, text) = r[0]
            self.update_time = now

        history = [History(
            id=self.id,
            event=self.event,
            severity=self.severity,
            status=new_status,
            value=self.value,
            text=text,
            change_type='severity',
            update_time=self.create_time,
            user=g.login
        )]

        self.status = new_status
        return Alert.from_db(db.correlate_alert(self, history))