Central data models of NAV’s event/alert subsystems
EventQueue
- class nav.models.event.EventQueue(*args, **kwargs)
From NAV Wiki: The event queue. Additional data in eventqvar. Different subsystem (specified in source) post events on the event queue. Normally event engine is the target and will take the event off the event queue and process it. getDeviceData are in some cases the target.
- Parameters:
id (AutoField) – Primary key: Id
subid (VarcharField) – Subid
time (DateTimeField) – Time
state (CharField) – State
value (IntegerField) – Value
severity (IntegerField) – Severity
Relationship fields:
- Parameters:
source (
ForeignKeytoSubsystem) – Source (related name:source_of_events)target (
ForeignKeytoSubsystem) – Target (related name:target_of_events)device (
ForeignKeytoDevice) – Device (related name:events)netbox (
ForeignKeytoNetbox) – Netbox (related name:events)event_type (
ForeignKeytoEventType) – Event type (related name:events)
Reverse relationships:
- Parameters:
variables (Reverse
ForeignKeyfromEventQueueVar) – All variables of this event queue (related name ofevent_queue)
- exception DoesNotExist
- exception MultipleObjectsReturned
- STATE_CHOICES = (('x', 'stateless'), ('s', 'start'), ('e', 'end'))
- STATE_END = 'e'
- STATE_START = 's'
- STATE_STATELESS = 'x'
- device
Type:
ForeignKeytoDeviceDevice (related name:
events)
- event_type
Type:
ForeignKeytoEventTypeEvent type (related name:
events)
- event_type_id
Internal field, use
event_typeinstead.
- get_next_by_time(*, field=<django.db.models.DateTimeField: time>, is_next=True, **kwargs)
Finds next instance based on
time. Seeget_next_by_FOO()for more information.
- get_previous_by_time(*, field=<django.db.models.DateTimeField: time>, is_next=False, **kwargs)
Finds previous instance based on
time. Seeget_previous_by_FOO()for more information.
- get_state_display(*, field=<django.db.models.CharField: state>)
Shows the label of the
state. Seeget_FOO_display()for more information.
- netbox
Type:
ForeignKeytoNetboxNetbox (related name:
events)
- objects = <django.db.models.Manager object>
- save(*args, **kwargs)
Save the current instance. Override this in a subclass if you want to control the saving process.
The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.
- severity
Type:
IntegerFieldSeverity
- source
Type:
ForeignKeytoSubsystemSource (related name:
source_of_events)
- subid
Type:
VarcharFieldSubid
- target
Type:
ForeignKeytoSubsystemTarget (related name:
target_of_events)
- time
Type:
DateTimeFieldTime
- value
Type:
IntegerFieldValue
- variables
Type: Reverse
ForeignKeyfromEventQueueVarAll variables of this event queue (related name of
event_queue)
- varmap
EventQueueVar
- class nav.models.event.EventQueueVar(*args, **kwargs)
From NAV Wiki: Defines additional (key,value) tuples that follow events.
- Parameters:
Relationship fields:
- Parameters:
event_queue (
ForeignKeytoEventQueue) – Event queue (related name:variables)
- exception DoesNotExist
- exception MultipleObjectsReturned
- event_queue
Type:
ForeignKeytoEventQueueEvent queue (related name:
variables)
- event_queue_id
Internal field, use
event_queueinstead.
- objects = <django.db.models.Manager object>
- variable
Type:
VarcharFieldVariable
AlertQueue
- class nav.models.event.AlertQueue(*args, **kwargs)
From NAV Wiki: The alert queue. Additional data in alertqvar and alertmsg. Event engine posts alerts on the alert queue (and in addition on the alerthist table). Alert engine will process the data on the alert queue and send alerts to users based on their alert profiles. When all signed up users have received the alert, alert engine will delete the alert from alertq (but not from alert history).
- Parameters:
id (AutoField) – Primary key: Id
subid (VarcharField) – Subid
time (DateTimeField) – Time
state (CharField) – State
value (IntegerField) – Value
severity (IntegerField) – Severity
Relationship fields:
- Parameters:
source (
ForeignKeytoSubsystem) – Source (related name:alerts)device (
ForeignKeytoDevice) – Device (related name:alerts)netbox (
ForeignKeytoNetbox) – Netbox (related name:alerts)event_type (
ForeignKeytoEventType) – Event type (related name:alerts)alert_type (
ForeignKeytoAlertType) – Alert type (related name:alerts)history (
ForeignKeytoAlertHistory) – History (related name:alerts)
Reverse relationships:
- Parameters:
messages (Reverse
ForeignKeyfromAlertQueueMessage) – All messages of this alert queue (related name ofalert_queue)variables (Reverse
ForeignKeyfromAlertQueueVariable) – All variables of this alert queue (related name ofalert_queue)queued_alerts (Reverse
ForeignKeyfromAccountAlertQueue) – All queued alerts of this alert queue (related name ofalert)
- exception DoesNotExist
- exception MultipleObjectsReturned
- STATE_CHOICES = (('x', 'stateless'), ('s', 'start'), ('e', 'end'))
- STATE_END = 'e'
- STATE_START = 's'
- STATE_STATELESS = 'x'
- alert_type
Type:
ForeignKeytoAlertTypeAlert type (related name:
alerts)
- alert_type_id
Internal field, use
alert_typeinstead.
- device
Type:
ForeignKeytoDeviceDevice (related name:
alerts)
- event_type
Type:
ForeignKeytoEventTypeEvent type (related name:
alerts)
- event_type_id
Internal field, use
event_typeinstead.
- get_next_by_time(*, field=<django.db.models.DateTimeField: time>, is_next=True, **kwargs)
Finds next instance based on
time. Seeget_next_by_FOO()for more information.
- get_previous_by_time(*, field=<django.db.models.DateTimeField: time>, is_next=False, **kwargs)
Finds previous instance based on
time. Seeget_previous_by_FOO()for more information.
- get_state_display(*, field=<django.db.models.CharField: state>)
Shows the label of the
state. Seeget_FOO_display()for more information.
- history
Type:
ForeignKeytoAlertHistoryHistory (related name:
alerts)
- messages
Type: Reverse
ForeignKeyfromAlertQueueMessageAll messages of this alert queue (related name of
alert_queue)
- netbox
Type:
ForeignKeytoNetboxNetbox (related name:
alerts)
- objects = <django.db.models.Manager object>
- queued_alerts
Type: Reverse
ForeignKeyfromAccountAlertQueueAll queued alerts of this alert queue (related name of
alert)
- save(*args, **kwargs)
Save the current instance. Override this in a subclass if you want to control the saving process.
The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.
- severity
Type:
IntegerFieldSeverity
- source
Type:
ForeignKeytoSubsystemSource (related name:
alerts)
- subid
Type:
VarcharFieldSubid
- time
Type:
DateTimeFieldTime
- value
Type:
IntegerFieldValue
- variables
Type: Reverse
ForeignKeyfromAlertQueueVariableAll variables of this alert queue (related name of
alert_queue)
- varmap
AlertQueueVariable
- class nav.models.event.AlertQueueVariable(*args, **kwargs)
From NAV Wiki: Defines additional (key,value) tuples that follow alert. Note: the eventqvar tuples are passed along to the alertqvar table so that the variables may be used in alert profiles.
- Parameters:
Relationship fields:
- Parameters:
alert_queue (
ForeignKeytoAlertQueue) – Alert queue (related name:variables)
- exception DoesNotExist
- exception MultipleObjectsReturned
- alert_queue
Type:
ForeignKeytoAlertQueueAlert queue (related name:
variables)
- alert_queue_id
Internal field, use
alert_queueinstead.
- objects = <django.db.models.Manager object>
- variable
Type:
VarcharFieldVariable
AlertHistory
- class nav.models.event.AlertHistory(*args, **kwargs)
From NAV Wiki: The alert history. Simular to the alert queue with one important distinction; alert history stores stateful events as one row, with the start and end time of the event.
- Parameters:
id (AutoField) – Primary key: Id
subid (VarcharField) – Subid
start_time (DateTimeField) – Start time
end_time (DateTimeInfinityField) – End time
value (IntegerField) – Value
severity (IntegerField) – Severity
Relationship fields:
- Parameters:
source (
ForeignKeytoSubsystem) – Source (related name:alert_history_set)device (
ForeignKeytoDevice) – Device (related name:alert_history_set)netbox (
ForeignKeytoNetbox) – Netbox (related name:alert_history_set)event_type (
ForeignKeytoEventType) – Event type (related name:alert_history_set)alert_type (
ForeignKeytoAlertType) – Alert type (related name:alert_history_set)
Reverse relationships:
- Parameters:
alerts (Reverse
ForeignKeyfromAlertQueue) – All alerts of this alert history (related name ofhistory)messages (Reverse
ForeignKeyfromAlertHistoryMessage) – All messages of this alert history (related name ofalert_history)variables (Reverse
ForeignKeyfromAlertHistoryVariable) – All variables of this alert history (related name ofalert_history)acknowledgement (Reverse
OneToOneFieldfromAcknowledgement) – The acknowledgement of this alert history (related name ofalert)
- exception DoesNotExist
- exception MultipleObjectsReturned
- acknowledge(account, comment)
Acknowledges this alert using a given account and comment.
Any pre-existing acknowledgement will be overwritten.
- acknowledgement
Type: Reverse
OneToOneFieldfromAcknowledgementThe acknowledgement of this alert history (related name of
alert)
- alert_type
Type:
ForeignKeytoAlertTypeAlert type (related name:
alert_history_set)
- alert_type_id
Internal field, use
alert_typeinstead.
- alerts
Type: Reverse
ForeignKeyfromAlertQueueAll alerts of this alert history (related name of
history)
- device
Type:
ForeignKeytoDeviceDevice (related name:
alert_history_set)
- end_time
Type:
DateTimeInfinityFieldEnd time
- event_type
Type:
ForeignKeytoEventTypeEvent type (related name:
alert_history_set)
- event_type_id
Internal field, use
event_typeinstead.
- get_downtime()
Returns the difference between start_time and end_time, the current downtime if the alert is still open, and None if the alert is stateless.
- get_next_by_start_time(*, field=<django.db.models.DateTimeField: start_time>, is_next=True, **kwargs)
Finds next instance based on
start_time. Seeget_next_by_FOO()for more information.
- get_previous_by_start_time(*, field=<django.db.models.DateTimeField: start_time>, is_next=False, **kwargs)
Finds previous instance based on
start_time. Seeget_previous_by_FOO()for more information.
- is_acknowledged()
Returns an Acknowledgement instance if this alert has been acknowledged, otherwise None.
- is_open()
Returns true if stateful and open.
- is_stateful()
Returns true if the alert is stateful.
- messages
Type: Reverse
ForeignKeyfromAlertHistoryMessageAll messages of this alert history (related name of
alert_history)
- netbox
Type:
ForeignKeytoNetboxNetbox (related name:
alert_history_set)
- objects = <django.db.models.manager.ManagerFromAlertHistoryQuerySet object>
- save(*args, **kwargs)
Save the current instance. Override this in a subclass if you want to control the saving process.
The ‘force_insert’ and ‘force_update’ parameters can be used to insist that the “save” must be an SQL insert or update (or equivalent for non-SQL backends), respectively. Normally, they should not be set.
- severity
Type:
IntegerFieldSeverity
- source
Type:
ForeignKeytoSubsystemSource (related name:
alert_history_set)
- start_time
Type:
DateTimeFieldStart time
- subid
Type:
VarcharFieldSubid
- value
Type:
IntegerFieldValue
- variables
Type: Reverse
ForeignKeyfromAlertHistoryVariableAll variables of this alert history (related name of
alert_history)
- varmap
Descriptor for simplified dict-like access to the AlertHistory stateful variable map.
NOTE: Updating the dictionary will not save it, the attribute must be assigned a dict value for a db update to take place.
AlertHistoryVariable
- class nav.models.event.AlertHistoryVariable(*args, **kwargs)
From NAV Wiki: Defines additional (key,value) tuples that follow the alerthist record.
- Parameters:
Relationship fields:
- Parameters:
alert_history (
ForeignKeytoAlertHistory) – Alert history (related name:variables)
- exception DoesNotExist
- exception MultipleObjectsReturned
- STATE_CHOICES = (('x', 'stateless'), ('s', 'start'), ('e', 'end'))
- STATE_END = 'e'
- STATE_START = 's'
- STATE_STATELESS = 'x'
- alert_history
Type:
ForeignKeytoAlertHistoryAlert history (related name:
variables)
- alert_history_id
Internal field, use
alert_historyinstead.
- get_state_display(*, field=<django.db.models.CharField: state>)
Shows the label of the
state. Seeget_FOO_display()for more information.
- objects = <django.db.models.Manager object>
- variable
Type:
VarcharFieldVariable
AlertHistoryMessage
- class nav.models.event.AlertHistoryMessage(*args, **kwargs)
From NAV Wiki: To have a history of the formatted messages too, they are stored in alerthistmsg.
- Parameters:
Relationship fields:
- Parameters:
alert_history (
ForeignKeytoAlertHistory) – Alert history (related name:messages)
- exception DoesNotExist
- exception MultipleObjectsReturned
- STATE_CHOICES = (('x', 'stateless'), ('s', 'start'), ('e', 'end'))
- STATE_END = 'e'
- STATE_START = 's'
- STATE_STATELESS = 'x'
- alert_history
Type:
ForeignKeytoAlertHistoryAlert history (related name:
messages)
- alert_history_id
Internal field, use
alert_historyinstead.
- get_state_display(*, field=<django.db.models.CharField: state>)
Shows the label of the
state. Seeget_FOO_display()for more information.
- language
Type:
VarcharFieldLanguage
- objects = <django.db.models.Manager object>
- type
Type:
VarcharFieldType
EventMixIn
- class nav.models.event.EventMixIn
MixIn for methods common to multiple event/alert/alerthistory models
- SUBID_MAP = {'aggregateLinkState': 'Interface', 'bgpState': 'GatewayPeerSession', 'chassisState': 'NetboxEntity', 'fanState': 'PowerSupplyOrFan', 'linkState': 'Interface', 'moduleState': 'Module', 'psuState': 'PowerSupplyOrFan', 'serviceState': 'Service'}
- get_key()
Returns an identifying key for this event.
The key is a tuple of identity attribute values and can be used as a dictionary key to keep track of events that reference the same problem.
- get_subject()
Returns the subject of a given event/alert.
Sometimes, the subject is just a Netbox objects. Other times, it may be some physical or logical subcomponents of a Netbox.
EventType
- class nav.models.event.EventType(*args, **kwargs)
From NAV Wiki: Defines event types.
- Parameters:
Reverse relationships:
- Parameters:
events (Reverse
ForeignKeyfromEventQueue) – All events of this event type (related name ofevent_type)alerts (Reverse
ForeignKeyfromAlertQueue) – All alerts of this event type (related name ofevent_type)alert_types (Reverse
ForeignKeyfromAlertType) – All alert types of this event type (related name ofevent_type)alert_history_set (Reverse
ForeignKeyfromAlertHistory) – All alert history set of this event type (related name ofevent_type)
- exception DoesNotExist
- exception MultipleObjectsReturned
- STATEFUL_CHOICES = (('y', 'stateful'), ('n', 'stateless'))
- STATEFUL_FALSE = 'n'
- STATEFUL_TRUE = 'y'
- alert_history_set
Type: Reverse
ForeignKeyfromAlertHistoryAll alert history set of this event type (related name of
event_type)
- alert_types
Type: Reverse
ForeignKeyfromAlertTypeAll alert types of this event type (related name of
event_type)
- alerts
Type: Reverse
ForeignKeyfromAlertQueueAll alerts of this event type (related name of
event_type)
- description
Type:
VarcharFieldDescription
- events
Type: Reverse
ForeignKeyfromEventQueueAll events of this event type (related name of
event_type)
- get_stateful_display(*, field=<django.db.models.CharField: stateful>)
Shows the label of the
stateful. Seeget_FOO_display()for more information.
- objects = <django.db.models.Manager object>
AlertType
- class nav.models.event.AlertType(*args, **kwargs)
From NAV Wiki: Defines the alert types. An event type may have many alert types.
- Parameters:
id (AutoField) – Primary key: Id
name (VarcharField) – Name
description (VarcharField) – Description
Relationship fields:
- Parameters:
event_type (
ForeignKeytoEventType) – Event type (related name:alert_types)
Reverse relationships:
- Parameters:
alerts (Reverse
ForeignKeyfromAlertQueue) – All alerts of this alert type (related name ofalert_type)alert_history_set (Reverse
ForeignKeyfromAlertHistory) – All alert history set of this alert type (related name ofalert_type)
- exception DoesNotExist
- exception MultipleObjectsReturned
- alert_history_set
Type: Reverse
ForeignKeyfromAlertHistoryAll alert history set of this alert type (related name of
alert_type)
- alerts
Type: Reverse
ForeignKeyfromAlertQueueAll alerts of this alert type (related name of
alert_type)
- description
Type:
VarcharFieldDescription
- event_type
Type:
ForeignKeytoEventTypeEvent type (related name:
alert_types)
- event_type_id
Internal field, use
event_typeinstead.
- name
Type:
VarcharFieldName
- objects = <django.db.models.Manager object>