Add more job events

This commit is contained in:
Jeremy Stretch 2024-07-04 16:14:02 -04:00
parent f1297382b9
commit ba11e97b1e
3 changed files with 20 additions and 5 deletions

View File

@ -1,16 +1,23 @@
from django.utils.translation import gettext as _ from django.utils.translation import gettext as _
from netbox.events import Event from netbox.events import *
# Object events
OBJECT_CREATED = 'object_created' OBJECT_CREATED = 'object_created'
OBJECT_UPDATED = 'object_updated' OBJECT_UPDATED = 'object_updated'
OBJECT_DELETED = 'object_deleted' OBJECT_DELETED = 'object_deleted'
# Job events
JOB_STARTED = 'job_started' JOB_STARTED = 'job_started'
JOB_ENDED = 'job_ended' JOB_COMPLETED = 'job_completed'
JOB_FAILED = 'job_failed'
JOB_ERRORED = 'job_errored'
# Register core events # Register core events
Event(name=OBJECT_CREATED, text=_('Object created')).register() Event(name=OBJECT_CREATED, text=_('Object created')).register()
Event(name=OBJECT_UPDATED, text=_('Object updated')).register() Event(name=OBJECT_UPDATED, text=_('Object updated')).register()
Event(name=OBJECT_DELETED, text=_('Object deleted')).register() Event(name=OBJECT_DELETED, text=_('Object deleted')).register()
Event(name=JOB_STARTED, text=_('Job started')).register() Event(name=JOB_STARTED, text=_('Job started')).register()
Event(name=JOB_ENDED, text=_('Job ended')).register() Event(name=JOB_COMPLETED, text=_('Job completed'), type=EVENT_TYPE_SUCCESS).register()
Event(name=JOB_FAILED, text=_('Job failed'), type=EVENT_TYPE_WARNING).register()
Event(name=JOB_ERRORED, text=_('Job errored'), type=EVENT_TYPE_DANGER).register()

View File

@ -9,7 +9,7 @@ from django.utils.translation import gettext as _
from django_rq import get_queue from django_rq import get_queue
from core.choices import ObjectChangeActionChoices from core.choices import ObjectChangeActionChoices
from core.events import JOB_ENDED, JOB_STARTED, OBJECT_CREATED, OBJECT_DELETED, OBJECT_UPDATED from core.events import JOB_COMPLETED, JOB_STARTED, OBJECT_CREATED, OBJECT_DELETED, OBJECT_UPDATED
from core.models import Job from core.models import Job
from extras.constants import EVENT_CREATE, EVENT_DELETE, EVENT_JOB_END, EVENT_JOB_START, EVENT_UPDATE from extras.constants import EVENT_CREATE, EVENT_DELETE, EVENT_JOB_END, EVENT_JOB_START, EVENT_UPDATE
from netbox.config import get_config from netbox.config import get_config
@ -144,7 +144,7 @@ def process_event_rules(event_rules, object_type, event, data, username=None, sn
EVENT_UPDATE: OBJECT_UPDATED, EVENT_UPDATE: OBJECT_UPDATED,
EVENT_DELETE: OBJECT_DELETED, EVENT_DELETE: OBJECT_DELETED,
EVENT_JOB_START: JOB_STARTED, EVENT_JOB_START: JOB_STARTED,
EVENT_JOB_END: JOB_ENDED, EVENT_JOB_END: JOB_COMPLETED,
}[event] }[event]
event_rule.action_object.notify( event_rule.action_object.notify(
object_type=object_type, object_type=object_type,

View File

@ -7,6 +7,14 @@ EVENT_TYPE_SUCCESS = 'success'
EVENT_TYPE_WARNING = 'warning' EVENT_TYPE_WARNING = 'warning'
EVENT_TYPE_DANGER = 'danger' EVENT_TYPE_DANGER = 'danger'
__all__ = (
'EVENT_TYPE_DANGER',
'EVENT_TYPE_INFO',
'EVENT_TYPE_SUCCESS',
'EVENT_TYPE_WARNING',
'Event',
)
@dataclass @dataclass
class Event: class Event: