Send events when a backup starts, succeds, or fails

Description

The DCB code should send events when the following occur:

  • A backup starts for a given node – e.g. uei.opennms.org/deviceconfig/configBackupStarted

  • A backup completes successfully for a given node – e.g. uei.opennms.org/deviceconfig/configBackupSucceeded

  • A backup fails for a given node – e.g. uei.opennms.org/deviceconfig/configBackupFailed

These events must have:

  • Their node field set to match the device in question

  • Their interface field set to match the IP interface on which the backup was scheduled

  • Their service field set to the service used to initiate the backup operation

  • The following parameters:

    • reason – a terse string describing why the backup is being started ("Scheduled backup", "API request", "Manual via web UI" etc.), or why it failed, or a generic happy message ("Backup succeeded") in the case of the success event

    • controlProtocol – the name of the control-plane protocol used by OpenNMS to initiate the backup ("SSH", "Telnet", "REST")

    • dataProtocol – the name of the data-plane protocol by which OpenNMS received the backup contents ("TFTP", "SFTP", etc.)

  • An alarm-data annotation such that:

    • A failure event opens an alarm (alarm-type="1") with Warning or Minor severity

    • A success event clears a failure alarm (alarm-type="2") with Cleared severity

    • A start event opens an informational alarm (alarm-type="3") with Normal severity

Acceptance / Success Criteria

  • Implementation as outlined in Description

  • Docs coverage indicating:

    • High-level outline of the feature

    • UEIs of the resulting events, as implemented

    • Description of the event parameters, as implemented

Lucidchart Diagrams

Activity

Show:

Alex May May 18, 2022 at 2:46 PM

`reason` and `controlProtocol` are currently coupled. They each have two possible values.

`reason`

  • Scheduled backup

  • API request

`controlProtocol`

  • cron

  • REST

They will either both be the first or both be the second. I'm going to drop the `reason` parameter for now.

Alex May May 18, 2022 at 2:36 PM

Chandra Gorantla May 4, 2022 at 2:48 PM

We already added configuration backup succeeded/ failed events and corresponding alarm data with this commit.

Fixed

Details

Assignee

Reporter

Docs Needed

Yes

Story Points

Sprint

Fix versions

Priority

PagerDuty

Created May 2, 2022 at 6:22 PM
Updated May 24, 2022 at 3:16 PM
Resolved May 24, 2022 at 3:16 PM