Enable downtime model-based node deletion to happen when unmanaged interfaces exist
Description
Environment
I don't have a ticket, but the requirement is from a support customer. Ask me if you need to know which one.
Acceptance / Success Criteria
None
is triggering
Lucidchart Diagrams
Activity
Show:

Benjamin Reed December 16, 2019 at 9:59 PM
fixed in foundation-2019

Benjamin Reed December 13, 2019 at 8:10 PM

Benjamin Reed December 12, 2019 at 7:36 PMEdited
Thoughts on configuring it like so?

Jeff Gehlbach December 11, 2019 at 9:19 PM
It's definitely a fence-sitter in terms of bug vs. enhancement. I went with bug because it violates least-surprise.
For the needs of the customer at hand, foundation-2019
would suffice.

Jesse White December 10, 2019 at 9:41 PM
Sounds like more of an enhancement than a bug fix. Do you really need this to go back all the way to M2017?
Fixed
Details
Assignee
Benjamin ReedBenjamin ReedReporter
Jeff GehlbachJeff GehlbachComponents
Sprint
NoneFix versions
Affects versions
Priority
Major
Details
Details
Assignee

Reporter

Components
Sprint
None
Fix versions
Affects versions
Priority
PagerDuty
PagerDuty Incident
PagerDuty
PagerDuty Incident
PagerDuty

PagerDuty Incident
Created December 10, 2019 at 9:26 PM
Updated February 6, 2020 at 1:41 PM
Resolved December 16, 2019 at 9:59 PM
Background:
When a
<downtime>
element in the poller configuration hasdelete="true"
, the poller signals Provisiond (via an event) to delete any services that have been down long enough to qualify for deletion. The event handler in Provisiond cascades the deletion to delete the service's parent interface and, if the service's parent interface is the last IP interface remaining on the node, to delete the node itself.If the node has one or more unmanaged IP interfaces, though, the presence of those interfaces precludes the deletion of the node.
It should be possible to exclude unmanaged interfaces when considering whether to delete the node as the result of a downtime action.
It's easy enough to add a flag (optional, defaulting to current behavior) to the poller configuration. Given that Provisiond should not have access to the poller configuration, though, I think the right way to pass the flag's value to Provisiond is via an event parameter. Faint whiff of data envy in the way it shakes out, but I don't see a way around it.