mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Cannot import or clone a Cable #7369
Closed
opened 2025-12-29 20:22:28 +01:00 by adam
·
22 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#7369
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @Qwiko on GitHub (Dec 16, 2022).
Originally assigned to: @kkthxbye-code on GitHub.
NetBox version
v3.4.0
Python version
3.9
Steps to Reproduce
Expected Behavior
A cable should be created.
Observed Behavior
A ValueError was raised.
Creating a cable through the UI is done successfully.
Using the API creates the same error as importing.
There seems to also be an issue with Cloning a Cable:
When you click Clone on a Cable you recieve this error:
@Qwiko commented on GitHub (Dec 16, 2022):
If you provide the id for a cable it is updated correctly. This error is only when trying to import new cable objects.
@kkthxbye-code commented on GitHub (Dec 16, 2022):
Please provide all the steps required to replicate the issue, including example CSV data.
Please provide replication steps for the API error also.
This should probably be split out in a seperate bug report as they are unlikely to be related. I'm not even sure why it is possible to clone a cable as no fields are cloned and we don't provide a default "Add cable" option like most other models.
@kkthxbye-code commented on GitHub (Dec 16, 2022):
For reference I just tried importing the following cable and it worked without issue on 3.4.0:
If I try to import the same cable again or I try to import a cable that connects to an occupied interface I get the same error as you. This would indicate that there might be some missing validation, but I'm not sure if this is new in 3.4 or not.
I could not replicate it in the API.
@jordanrvillarreal commented on GitHub (Dec 16, 2022):
I'm seeing similar behavior. It feels like there are certain errors that aren't being caught. While trying to bulk create if I had a bad interface type or name it would create the same primary key error but when I had included additional data in the cable color I received a specific error saying I provided 7 characters but it was only expecting 6.
@MasterWigu commented on GitHub (Dec 19, 2022):
I'm also seeing similar behavior. When creating new cables using the import feature (using a json snippet), it shows the same
'Cable' instance needs to have a primary key value before this relationship can be used.. I can also confirm that the cables I'm adding have only the required fields set.@sc68cal commented on GitHub (Dec 30, 2022):
I can reproduce this via trivial examples with our Ansible modules as well, with the latest from NetBox docker images
This is supposed to be the minimal required amount of information, via our docs - https://netbox-ansible-collection.readthedocs.io/en/latest/plugins/netbox_cable_module.html#ansible-collections-netbox-netbox-netbox-cable-module
@sc68cal commented on GitHub (Dec 30, 2022):
I downgraded to the
2.0.0tag ofnetbox-dockerand re-ran the whole playbook and it succeeds, I think there is a significant regression that0b86326435introduced.@sc68cal commented on GitHub (Dec 30, 2022):
One thing to note, creating the cable between
clab-ipamexample-spine1andclab-ipamexample-spine2via the web UI did succeed while the API calls via the Ansible modules failed (when using the latest release ofnetbox-docker)@sc68cal commented on GitHub (Dec 30, 2022):
My full example is at https://github.com/sc68cal/netbox-p2p-ipam
@kkthxbye-code commented on GitHub (Dec 30, 2022):
@sc68cal - You got the wrong issue, this one is about csv import.
Also note that we don't accept API issues where the requests are generated via. another library, so if you create a bug report remember to replicate it with raw API requests.
@sc68cal commented on GitHub (Dec 30, 2022):
@kkthxbye-code
You cannot just brush off this issue by saying oh it's another library so this isn't our problem. I am part of this same org, and responsible for the Ansible modules. In fact, we are in the same GitHub namespace, so I don't appreciate the brushoff.
You closed a similar issue to this one as a duplicate, so instead of creating yet another issue, I decided to participate here.
@kkthxbye-code commented on GitHub (Dec 30, 2022):
Just provide the raw requests that Ansible makes, not sure why you are being so aggressive. I didn't even make the rules.
The other one was also about CSV import. Please create another issue, it's entirely unrelated to this one.
@sc68cal commented on GitHub (Dec 30, 2022):
No. I am not going to create a different issue after spending my morning hunting down this regression, and putting time into putting detailed information in this bug report. I only arrived at this bug report by searching for any issue that contained the same error string that I encountered, which was the
'Cable' instance needs to have a primary key value before this relationship can be used.error from the server.This issue seems to be triggered from multiple code paths, both by importing, cloning, or creating a new cable. So, let's set aside category theory and get to work on hunting down the regression and fixing.
@kkthxbye-code commented on GitHub (Dec 30, 2022):
There's an open PR for this issue (not your issue), you can check if that works.
Otherwise if you do not want to follow the contributor guidelines I cannot help you. Please refrain from responding again, you can contact me on slack if you have any questions. My slack name is "Simon Toft".
@DanSheps commented on GitHub (Dec 30, 2022):
If there is an issue with API requests, please open an issue specific to the API, and make sure to include the raw request.
We don't handle docker or ansible here which is why we need a issue with the raw request against a vanilla (non-docker) version of NetBox.
I looked at this a bit, I don't know what version of NetBox docker 2.0.0 equates to, nor do I follow the netbox-docker development to know what version of NetBox it is currently building against, however there were some API changes introduced in 3.4 that might impact building cables.
At first blush however, it doesn't looked like anything should be wrong, except for maybe the fact that interfaces need to be passed as arrays of now in the API (can't remember if this was 3.3 or 3.4 change)
@sc68cal commented on GitHub (Dec 30, 2022):
I do not appreciate you telling me what I can or cannot do. I will honor your request by not interacting with you again. I will interact with @DanSheps going forward
@sc68cal commented on GitHub (Dec 30, 2022):
Yes, this is my suspicion as well. I will retrieve what version of the NetBox API is deployed via
netbox-dockertag2.0.0after I finish building #11231 and manually testing to see if that resolves the issue@sc68cal commented on GitHub (Dec 30, 2022):
The proposed fix in 11231 did not fix my issue, but since I have been asked to not interact with the author, I will only put my notes here instead of commenting on that PR. The PR allows the code to go a little father, but returns a different error that appears to be a logic bug - https://gist.github.com/sc68cal/1b30c8ca7aa6a7e4af679015eb443a10 - it asks for me to define both endpoints, but I am via the Ansible module.
@sc68cal commented on GitHub (Dec 30, 2022):
netbox-dockertagged2.0.0corresponds to41bf48171a61 (v3.2.7)@kkthxbye-code commented on GitHub (Dec 30, 2022):
That would also not be the correct place to comment, as your actual issue is that you haven't updated to the new API in v3.3. You are sending termination_a, termination_a_type, whereas it is now called a_terminations and b_terminations and take a list:
https://github.com/netbox-community/netbox/releases/tag/v3.3.0
termination_a_typetermination_b_typetermination_a_idtermination_b_idtermination_aa_terminationstermination_bb_terminationsThis isssue is about certain validations not being displayed, which is fixed in the PR. With the fix you were able to see your actual issue, which is as mentioned above, that you are sending the wrong parameters to the API.
@DanSheps commented on GitHub (Dec 30, 2022):
Please follow the instructions and the contributing guide.
Your issue is not related to CSV import.
@sc68cal commented on GitHub (Dec 30, 2022):
Ok. I did my due diligence and attempted to report my findings. It may have not been in the correct location but I spent the morning trying to hunt this down. I am moving on at this point since I'm tired to being told different things by different people when it comes to if I should post here or there, talk to people or not talk to people.