Skip to content

DCIM: Add general purpose "Schedule" custom data type #11700

@stavr666

Description

@stavr666

NetBox version

v3.4.3

Feature type

New functionality

Proposed functionality

Add schedule data, that like contacts, tags or CCs, can be attached to any data types.

Fields, like I see it:

  • (required) Name
  • (required) Regularity (daily, weekly, monthly, yearly, once)
  • (required) regularity-depended calendar info
  • (required) Start datetime
  • (optional) End datetime
  • (optional) Event length
  • ? Color - looks like, if rendered as calendar or list, it can be shown with correspondent outline
  • Ability to assign contact information to Schedule (for external systems to know with who to contact about changes, or send message about event start/end)

Use case

Every infrastructure require some regularity, so, I see it natural

Our use cases to be stored:

  1. Planned maintenance windows for HW and VMs
  2. Planned service contract renewal
  3. Planned software EoL
  4. Unplanned maintenance (disasters, on-site visits)

Right now, 4th scenario can (and in most cases, better do this way) be achieved, using journal records. But it can't be used for other 3 types.

Scenarios 2 and 3 achieved by custom field with date. It requires to fill this field for every Platform and VM, that have this field. It also requires to mass-update field, when something changed (contract renewed, software updated).

Scenarios 1 right now achievable by combination of tag and CC. Create tag for every possible:

  • maintenance occurrence date types (day of weeks, day of months etc.)
  • maintenance occurrence start times
  • maintenance lengths
    Create CC for every tag with json data about event. Merge multiple CC for devices and VMs by assigning tags.
    It works and accessible by API calls (by reading whole config_context attribute) but have no visual grace of specialized visualization tools:
    image

We like to see data like this as separate tab with calendar with marked dates or times. UI-options like "Show Journal entries" (for 4th case) and "Show as list" (list it instead or render dates/times) greatly welcomed, while optional.

API calls must return list of events for calendar processing (Grafana calendar panel, Grafana "next maintenance" text label for VMs and servers, "Today maintenance" list for e-mails/chat announcement). So it must assume some defaults, but have some receivable options to correctly change format of returning data (to work in possible use cases without over-processing, if api-consumer does not support scripting or data transformations).

Database changes

No response

External dependencies

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    plugin candidateOut-of-scope for NetBox but might be suited as a NetBox plugintype: featureIntroduction of new functionality to the application

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions