Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement a more robust model for tracking cable paths #5188

Closed
jeremystretch opened this issue Sep 28, 2020 · 2 comments
Closed

Implement a more robust model for tracking cable paths #5188

jeremystretch opened this issue Sep 28, 2020 · 2 comments
Assignees
Labels
status: duplicate This issue has already been raised

Comments

@jeremystretch
Copy link
Member

Proposed Changes

I'm opening this issue to track the research and development into creating a better approach to cable tracking in NetBox. Although many of the details need to be refined, the high-level approach will be to model discrete cable paths individually for each connected object. For example, consider the following topology:

                1                           2
[Device 1] -----------+               +----------- [Device 2]
      Iface1          |               |          Iface2
                  FP1 |       3       | FP2
                  [Panel 1] ----- [Panel 2]
                  FP3 |   RP1   RP2   | FP4
      Iface3          |               |          Iface4
[Device 3] -----------+               +----------- [Device 4]
                4                           5

There are two end-to-end connections present, both via cable 3:

  • Iface 1 <---> Iface 2
  • Iface 3 <---> Iface 4

Currently, these connections are conveyed only on the four individual interfaces. A more robust approach would record each of the four unidirectional end-to-end connections individually, as:

  1. (Iface1, Cable 1, FP1, RP1, Cable 3, RP2, FP2, Cable 2, Iface2)
  2. (Iface2, Cable 2, FP2, RP2, Cable 3, RP1, FP1, Cable 1, Iface1)
  3. (Iface3, Cable 4, FP3, RP1, Cable 3, RP2, FP4, Cable 5, Iface4)
  4. (Iface4, Cable 5, FP4, RP2, Cable 3, RP1, FP3, Cable 4, Iface3)

This approach ensures that we can immediately query all potentially affected points along a path any time any single component within the path changes. For example, if cable 2 is deleted, we know immediately that paths 1 and 2 need to be updated.

Justification

There are several drawbacks to the current model, as evidenced by numerous bug reports over the past few major releases. Rather than continue playing whack-a-mole chasing down errant behaviors individually, we should commit the time and effort to devising a new holistic approach.

@jeremystretch jeremystretch added type: housekeeping Changes to the application which do not directly impact the end user status: under review Further discussion is needed to determine this issue's scope and/or implementation labels Sep 28, 2020
@jeremystretch jeremystretch self-assigned this Sep 28, 2020
@xkilian
Copy link

xkilian commented Sep 28, 2020

This would permit reporting on connexions passing through a patch panel or cable. Good for creating provising reports for new patch panels.
Also useful for tracking down what broke during a fiber optic cable cut and to prioritize fusions to restore service.

@jeremystretch jeremystretch added status: accepted This issue has been accepted for implementation and removed status: under review Further discussion is needed to determine this issue's scope and/or implementation labels Sep 29, 2020
@jeremystretch jeremystretch added this to the v2.10 milestone Sep 29, 2020
@jeremystretch jeremystretch added status: duplicate This issue has already been raised and removed status: accepted This issue has been accepted for implementation type: housekeeping Changes to the application which do not directly impact the end user labels Sep 29, 2020
@jeremystretch jeremystretch removed this from the v2.10 milestone Sep 29, 2020
@jeremystretch
Copy link
Member Author

Turns out I already opened an issue for this: #4900

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Dec 29, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
status: duplicate This issue has already been raised
Projects
None yet
Development

No branches or pull requests

2 participants