ansible_modules icon indicating copy to clipboard operation
ansible_modules copied to clipboard

[Bug]: updating interface removes vlan-id's

Open alfredhdahl opened this issue 10 months ago • 0 comments

Ansible NetBox Collection version

v3.20.0

Ansible version

ansible [core 2.17.8]
  config file = /home/alfred@eidsiva/ansible/ansible-playbook-poc/ansible.cfg
  configured module search path = ['/home/alfred@eidsiva/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /home/alfred@eidsiva/ansible/venv/lib/python3.10/site-packages/ansible
  ansible collection location = /home/alfred@eidsiva/.ansible/collections:/usr/share/ansible/collections
  executable location = /home/alfred@eidsiva/ansible/venv/bin/ansible
  python version = 3.10.12 (main, Jan 17 2025, 14:35:34) [GCC 11.4.0] (/home/[email protected]/ansible/venv/bin/python)
  jinja version = 3.1.5
  libyaml = True

NetBox version

4.2.2

Python version

3.10

Steps to Reproduce

this task:

delegate_to: localhost netbox.netbox.netbox_device_interface: netbox_url: "{{ _netboxurl }}" netbox_token: "{{ _netboxtoken }}" validate_certs: false data: device: "{{ inventory_hostname }}" description: "{{ _description }}" enabled: "{{ _isenabled }}" name: "{{ _name }}" type: "virtual" parent_interface: "{{ interface_idx.name }}" mtu: "{{ _mtu }}" custom_fields: junos_family_inet_rpf_check: "{{ _family_inet_rpf_check }}" junos_interface_encapsulation_type: "{{ _encapsulation }}" state: present loop: "{{ interface_idx.unit }}" loop_control: loop_var: subinterface_idx

results in task output:

changed: { "ansible_loop_var": "subinterface_idx", "changed": true, "diff": { "after": { "custom_fields": { "junos_family_inet_rpf_check": false, "junos_interface_encapsulation_type": "" }, "description": "", "mtu": 9192 }, "before": { "custom_fields": { "junos_family_inet_rpf_check": false }, "description": """", "mtu": 65535 } },

but in reality, as collected from netbox changelog, this is changed:

Difference:

before: { "custom_fields": { ... "junos_family_inet_rpf_check": false, "junos_interface_encapsulation_type": null, ... }, "description": """", "mtu": 65535, "tagged_vlans": [ 19843 ] }

after: { "custom_fields": { ... "junos_family_inet_rpf_check": false, "junos_interface_encapsulation_type": "", ... }, "description": "", "mtu": 9192, "tagged_vlans": [] }

Expected Behavior

using netbox.netbox.netbox_device_interface to update the mentioned dict should not remove vlan tagged in tagged_vlans

Observed Behavior

using netbox.netbox.netbox_device_interface to update the mentioned dict, removes any vlan tagged at the same interface

alfredhdahl avatar Feb 14 '25 10:02 alfredhdahl