From 8c5aa04d94d268d970741f7d633725d3ca4a8683 Mon Sep 17 00:00:00 2001 From: ccoueffe Date: Thu, 15 May 2025 11:32:46 +0200 Subject: [PATCH 1/7] add route_tag for subinterface --- plugins/modules/dcnm_interface.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/plugins/modules/dcnm_interface.py b/plugins/modules/dcnm_interface.py index ec7740970..4f62668ce 100644 --- a/plugins/modules/dcnm_interface.py +++ b/plugins/modules/dcnm_interface.py @@ -2385,6 +2385,7 @@ def dcnm_intf_validate_sub_interface_input(self, cfg): type="int", range_min=64, range_max=127, default=64 ), mtu=dict(type="int", range_min=576, range_max=9216, default=9216), + route_tag=dict(type="str", default=""), speed=dict(type="str", default="Auto"), cmds=dict(type="list", elements="str"), description=dict(type="str", default=""), @@ -3068,6 +3069,9 @@ def dcnm_intf_get_sub_intf_payload(self, delem, intf, profile): intf["interfaces"][0]["nvPairs"]["PREFIX"] = str( delem[profile]["ipv4_mask_len"] ) + intf["interfaces"][0]["nvPairs"]["ROUTING_TAG"] = delem[profile][ + "route_tag" + ] if delem[profile]["ipv6_addr"]: intf["interfaces"][0]["nvPairs"]["IPv6"] = str( delem[profile]["ipv6_addr"] From 7f013c65734027f76386dcccca6da63becf2af06 Mon Sep 17 00:00:00 2001 From: ccoueffe Date: Thu, 15 May 2025 11:47:54 +0200 Subject: [PATCH 2/7] fix pep issue and add sanity tests --- plugins/modules/dcnm_interface.py | 4 ++-- .../dcnm_intf_multi_intf_configs.json | 19 ++++++++++--------- .../dcnm_intf_multi_intf_payloads.json | 7 ++++--- .../fixtures/dcnm_intf_subint_configs.json | 7 ++++++- .../fixtures/dcnm_intf_subint_payloads.json | 6 ++++-- 5 files changed, 26 insertions(+), 17 deletions(-) diff --git a/plugins/modules/dcnm_interface.py b/plugins/modules/dcnm_interface.py index 4f62668ce..c414e4154 100644 --- a/plugins/modules/dcnm_interface.py +++ b/plugins/modules/dcnm_interface.py @@ -3070,8 +3070,8 @@ def dcnm_intf_get_sub_intf_payload(self, delem, intf, profile): delem[profile]["ipv4_mask_len"] ) intf["interfaces"][0]["nvPairs"]["ROUTING_TAG"] = delem[profile][ - "route_tag" - ] + "route_tag" + ] if delem[profile]["ipv6_addr"]: intf["interfaces"][0]["nvPairs"]["IPv6"] = str( delem[profile]["ipv6_addr"] diff --git a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json index a876e64e8..86744a95f 100644 --- a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json +++ b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json @@ -130,7 +130,7 @@ "no shutdown" ], "peer1_allowed_vlans": "none", - "peer1_native_vlan": "10", + "peer1_native_vlan": "10", "mode": "trunk", "policy": "int_vpc_trunk_host_11_1", "port_type_fast": "True", @@ -140,7 +140,7 @@ "peer1_description": "VPC acting as trunk peer1", "sno": "FOX1821H035~SAL1819SAN8", "peer2_allowed_vlans": "none", - "peer2_native_vlan": "10" + "peer2_native_vlan": "10" }, "switch": [ "192.168.1.109", @@ -165,13 +165,13 @@ "port_type_fast": "True", "policy": "int_trunk_host_11_1", "allowed_vlans": "none", - "native_vlan": "10", - "orphan_port": false, + "native_vlan": "10", + "orphan_port": false, "cmds": [ "no shutdown" ], "speed": "Auto", - "duplex": "auto", + "duplex": "auto", "ifname": "Ethernet1/10", "fabric": "test_fabric" }, @@ -198,6 +198,7 @@ "mode": "subint", "policy": "int_subif_11_1", "admin_state": "True", + "route_tag": "", "ifname": "Ethernet1/1.1", "cmds": [ "no shutdown" @@ -284,7 +285,7 @@ "spanning-tree bpduguard enable" ], "peer1_allowed_vlans": "none", - "peer1_native_vlan": "10", + "peer1_native_vlan": "10", "mode": "trunk", "policy": "int_vpc_trunk_host_11_1", "port_type_fast": "True", @@ -294,7 +295,7 @@ "peer1_description": "VPC acting as trunk peer1", "sno": "FOX1821H035~SAL1819SAN8", "peer2_allowed_vlans": "none", - "peer2_native_vlan": "10" + "peer2_native_vlan": "10" }, "switch": [ "192.168.1.109", @@ -319,13 +320,13 @@ "port_type_fast": "True", "policy": "int_trunk_host_11_1", "allowed_vlans": "none", - "native_vlan": "10", + "native_vlan": "10", "orphan_port": false, "cmds": [ "spanning-tree bpduguard enable" ], "speed": "Auto", - "duplex": "auto", + "duplex": "auto", "ifname": "Ethernet1/10", "fabric": "test_fabric" }, diff --git a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_payloads.json b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_payloads.json index af0eba0a5..06b3f5295 100644 --- a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_payloads.json +++ b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_payloads.json @@ -57,18 +57,18 @@ "fabricName": "test_fabric", "nvPairs": { "SPEED": "Auto", - "PORT_DUPLEX_MODE": "auto", + "PORT_DUPLEX_MODE": "auto", "MEMBER_INTERFACES": "e1/9", "PC_MODE": "on", "BPDUGUARD_ENABLED": "true", "PORTTYPE_FAST_ENABLED": "true", "MTU": "jumbo", "ALLOWED_VLANS": "none", - "NATIVE_VLAN": "10", + "NATIVE_VLAN": "10", "PO_ID": "Port-channel300", "DESC": "port channel acting as trunk", "CONF": "no shutdown", - "ENABLE_ORPHAN_PORT": false, + "ENABLE_ORPHAN_PORT": false, "ADMIN_STATE": "true" } } @@ -178,6 +178,7 @@ "PREFIX": "24", "IPv6": "", "IPv6_PREFIX": "", + "ROUTING_TAG": "", "MTU": "9216", "INTF_NAME": "Ethernet1/1.1", "DESC": "sub interface eth25/1.1 configuration", diff --git a/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_configs.json b/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_configs.json index 4af655e54..7a9f9882d 100644 --- a/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_configs.json +++ b/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_configs.json @@ -41,7 +41,7 @@ "mock_ip_sn" : { "192.168.1.109": "FOX1821H035", - "192.168.1.108": "SAL1819SAN8" + "192.168.1.108": "SAL1819SAN8" }, "mock_vpc_sno" : { @@ -97,6 +97,7 @@ "policy": "int_subif_11_1", "admin_state": "True", "ifname": "Ethernet1/25.1", + "route_tag": 12345, "cmds": [ "no shutdown" ], @@ -124,6 +125,7 @@ "policy": "int_subif_11_1", "admin_state": "True", "ifname": "Ethernet1/25.2", + "route_tag": 12345, "cmds": [ "no shutdown" ], @@ -153,6 +155,7 @@ "policy": "int_subif_11_1", "admin_state": "False", "ifname": "Ethernet1/27.1", + "route_tag": 12345, "cmds": [ "no shutdown", "no shutdown" @@ -183,6 +186,7 @@ "policy": "int_subif_11_1", "admin_state": "False", "ifname": "Ethernet1/25.1", + "route_tag": 12345, "cmds": [ "no shutdown", "no shutdown" @@ -211,6 +215,7 @@ "policy": "int_subif_11_1", "admin_state": "False", "ifname": "Ethernet1/25.2", + "route_tag": 12345, "cmds": [ "no shutdown", "no shutdown" diff --git a/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json b/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json index 8262b4bfd..3b5f664b7 100644 --- a/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json +++ b/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json @@ -17,12 +17,13 @@ "IP": "1.1.1.1", "VLAN": "100", "MTU": "9216", - "SPEED": "auto", + "SPEED": "auto", "PRIORITY": "500", "PREFIX": "24", "ADMIN_STATE": "True", "POLICY_DESC": "", "INTF_NAME": "Ethernet1/25.1", + "ROUTING_TAG": "12345", "IPv6": "", "IPv6_PREFIX": "", "DESC": "sub interface eth25/1.1 configuration", @@ -52,12 +53,13 @@ "IP": "1.1.1.2", "VLAN": "101", "MTU": "9216", - "SPEED": "auto", + "SPEED": "auto", "PRIORITY": "500", "PREFIX": "24", "ADMIN_STATE": "True", "POLICY_DESC": "", "INTF_NAME": "Ethernet1/25.2", + "ROUTING_TAG": "12345", "IPv6": "", "IPv6_PREFIX": "", "DESC": "sub interface eth1/25.2 configuration", From 8fde9c165903fa4678966fc324fe921733c05fa2 Mon Sep 17 00:00:00 2001 From: ccoueffe Date: Thu, 15 May 2025 11:52:51 +0200 Subject: [PATCH 3/7] add route_tag in the documentation --- plugins/modules/dcnm_interface.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/modules/dcnm_interface.py b/plugins/modules/dcnm_interface.py index c414e4154..874aa804d 100644 --- a/plugins/modules/dcnm_interface.py +++ b/plugins/modules/dcnm_interface.py @@ -377,6 +377,11 @@ - Administrative state of the interface type: bool default: true + route_tag: + description: + - Route tag associated with the interface IP. + type: str + default: "" profile_lo: description: - Though the key shown here is 'profile_lo' the actual key to be used in playbook From f8422f03d09bbbabc9ca1d97e46820364f92cb4d Mon Sep 17 00:00:00 2001 From: Charly Coueffe <75327499+ccoueffe@users.noreply.github.com> Date: Thu, 15 May 2025 15:29:08 +0200 Subject: [PATCH 4/7] Update dcnm_intf_multi_intf_configs.json --- .../dcnm_intf_multi_intf_configs.json | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json index 86744a95f..0b6658fcf 100644 --- a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json +++ b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json @@ -95,10 +95,10 @@ "policy": "int_port_channel_trunk_host_11_1", "admin_state": "True", "allowed_vlans": "none", - "native_vlan": "10", + "native_vlan": "10", "orphan_port": false, - "speed": "Auto", - "duplex": "auto", + "speed": "Auto", + "duplex": "auto", "cmds": [ "no shutdown" ], @@ -130,7 +130,7 @@ "no shutdown" ], "peer1_allowed_vlans": "none", - "peer1_native_vlan": "10", + "peer1_native_vlan": "10", "mode": "trunk", "policy": "int_vpc_trunk_host_11_1", "port_type_fast": "True", @@ -140,7 +140,7 @@ "peer1_description": "VPC acting as trunk peer1", "sno": "FOX1821H035~SAL1819SAN8", "peer2_allowed_vlans": "none", - "peer2_native_vlan": "10" + "peer2_native_vlan": "10" }, "switch": [ "192.168.1.109", @@ -165,8 +165,8 @@ "port_type_fast": "True", "policy": "int_trunk_host_11_1", "allowed_vlans": "none", - "native_vlan": "10", - "orphan_port": false, + "native_vlan": "10", + "orphan_port": false, "cmds": [ "no shutdown" ], @@ -250,10 +250,10 @@ "policy": "int_port_channel_trunk_host_11_1", "admin_state": "True", "allowed_vlans": "none", - "native_vlan": "10", + "native_vlan": "10", "orphan_port": false, - "speed": "Auto", - "duplex": "auto", + "speed": "Auto", + "duplex": "auto", "cmds": [ "spanning-tree bpduguard enable" ], @@ -285,7 +285,7 @@ "spanning-tree bpduguard enable" ], "peer1_allowed_vlans": "none", - "peer1_native_vlan": "10", + "peer1_native_vlan": "10", "mode": "trunk", "policy": "int_vpc_trunk_host_11_1", "port_type_fast": "True", @@ -320,13 +320,13 @@ "port_type_fast": "True", "policy": "int_trunk_host_11_1", "allowed_vlans": "none", - "native_vlan": "10", + "native_vlan": "10", "orphan_port": false, "cmds": [ "spanning-tree bpduguard enable" ], "speed": "Auto", - "duplex": "auto", + "duplex": "auto", "ifname": "Ethernet1/10", "fabric": "test_fabric" }, From a3501a8e9614b5a6ecf4fa7fb4182b9a827b8832 Mon Sep 17 00:00:00 2001 From: Charly Coueffe <75327499+ccoueffe@users.noreply.github.com> Date: Thu, 15 May 2025 15:30:56 +0200 Subject: [PATCH 5/7] Update dcnm_intf_multi_intf_payloads.json --- .../dcnm/fixtures/dcnm_intf_multi_intf_payloads.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_payloads.json b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_payloads.json index 06b3f5295..c2e1d84cb 100644 --- a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_payloads.json +++ b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_payloads.json @@ -57,18 +57,18 @@ "fabricName": "test_fabric", "nvPairs": { "SPEED": "Auto", - "PORT_DUPLEX_MODE": "auto", + "PORT_DUPLEX_MODE": "auto", "MEMBER_INTERFACES": "e1/9", "PC_MODE": "on", "BPDUGUARD_ENABLED": "true", "PORTTYPE_FAST_ENABLED": "true", "MTU": "jumbo", "ALLOWED_VLANS": "none", - "NATIVE_VLAN": "10", + "NATIVE_VLAN": "10", "PO_ID": "Port-channel300", "DESC": "port channel acting as trunk", "CONF": "no shutdown", - "ENABLE_ORPHAN_PORT": false, + "ENABLE_ORPHAN_PORT": false, "ADMIN_STATE": "true" } } From 3578c00b825d8630a6ce0bde4091ea1db672bc12 Mon Sep 17 00:00:00 2001 From: Charly Coueffe <75327499+ccoueffe@users.noreply.github.com> Date: Thu, 15 May 2025 15:31:40 +0200 Subject: [PATCH 6/7] Update dcnm_intf_subint_payloads.json --- .../unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json b/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json index 3b5f664b7..b3bb7bbf0 100644 --- a/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json +++ b/tests/unit/modules/dcnm/fixtures/dcnm_intf_subint_payloads.json @@ -17,7 +17,7 @@ "IP": "1.1.1.1", "VLAN": "100", "MTU": "9216", - "SPEED": "auto", + "SPEED": "auto", "PRIORITY": "500", "PREFIX": "24", "ADMIN_STATE": "True", @@ -53,7 +53,7 @@ "IP": "1.1.1.2", "VLAN": "101", "MTU": "9216", - "SPEED": "auto", + "SPEED": "auto", "PRIORITY": "500", "PREFIX": "24", "ADMIN_STATE": "True", From 0fa581cef6d2473d3bc6f5491c2754082836b77a Mon Sep 17 00:00:00 2001 From: Charly Coueffe <75327499+ccoueffe@users.noreply.github.com> Date: Thu, 15 May 2025 15:36:16 +0200 Subject: [PATCH 7/7] Update dcnm_intf_multi_intf_configs.json --- .../modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json index 0b6658fcf..4b28d1528 100644 --- a/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json +++ b/tests/unit/modules/dcnm/fixtures/dcnm_intf_multi_intf_configs.json @@ -171,7 +171,7 @@ "no shutdown" ], "speed": "Auto", - "duplex": "auto", + "duplex": "auto", "ifname": "Ethernet1/10", "fabric": "test_fabric" }, @@ -295,7 +295,7 @@ "peer1_description": "VPC acting as trunk peer1", "sno": "FOX1821H035~SAL1819SAN8", "peer2_allowed_vlans": "none", - "peer2_native_vlan": "10" + "peer2_native_vlan": "10" }, "switch": [ "192.168.1.109",