From af83ff4412840acedec1269de2083e32f705f00c Mon Sep 17 00:00:00 2001 From: Gaspard Micol Date: Wed, 11 Dec 2024 04:57:06 -0500 Subject: [PATCH] [ignore] Modify test case and logic for ndo_port_channel_interface module when handling null value. --- plugins/modules/ndo_port_channel_interface.py | 6 +++--- .../ndo_port_channel_interface/tasks/main.yml | 21 ++++++++++++++++++- 2 files changed, 23 insertions(+), 4 deletions(-) diff --git a/plugins/modules/ndo_port_channel_interface.py b/plugins/modules/ndo_port_channel_interface.py index 7c95b287..e8bcbc32 100644 --- a/plugins/modules/ndo_port_channel_interface.py +++ b/plugins/modules/ndo_port_channel_interface.py @@ -40,7 +40,7 @@ description: - The UUID of the Port Channel Interface. - This parameter can be used instead of O(port_channel_interface) - when an existing Virtual Port Channel Interface is updated. + when an existing Port Channel Interface is updated. - This parameter is required when parameter O(port_channel_interface) is updated. type: str aliases: [ port_channel_interface_uuid, port_channel_uuid ] @@ -303,7 +303,7 @@ def main(): existing_port_channel_interfaces = mso_template.template.get("fabricResourceTemplate", {}).get("template", {}).get("portChannels", []) object_description = "Port Channel Interface" - if state in ["query", "absent"] and existing_port_channel_interfaces == []: + if state in ["query", "absent"] and not existing_port_channel_interfaces: mso.exit_json() elif state == "query" and not (name or uuid): mso.existing = existing_port_channel_interfaces @@ -361,7 +361,7 @@ def main(): if not module.check_mode and ops: response = mso.request(mso_template.template_path, method="PATCH", data=ops) - port_channel_interfaces = response.get("fabricResourceTemplate", {}).get("template", {}).get("portChannels", []) + port_channel_interfaces = response.get("fabricResourceTemplate", {}).get("template", {}).get("portChannels", []) or [] match = mso_template.get_object_by_key_value_pairs( object_description, port_channel_interfaces, diff --git a/tests/integration/targets/ndo_port_channel_interface/tasks/main.yml b/tests/integration/targets/ndo_port_channel_interface/tasks/main.yml index 8cc890d8..989d99f0 100644 --- a/tests/integration/targets/ndo_port_channel_interface/tasks/main.yml +++ b/tests/integration/targets/ndo_port_channel_interface/tasks/main.yml @@ -303,6 +303,14 @@ state: query register: query_one + - name: Query a port channel with template_name and UUID + cisco.mso.ndo_tenant_custom_qos_policy: &query_port_channel_interface_uuid + <<: *create_port_channel_interface_2 + uuid: '{{ query_one.current.uuid }}' + name: '{{ fakevar | default(omit)}}' + state: query + register: query_one_uuid + - name: Query all port channel interfaces in the template cisco.mso.ndo_port_channel_interface: <<: *mso_info @@ -315,6 +323,8 @@ that: - query_one is not changed - query_one.current.name == "ansible_port_channel_interface_2" + - query_one_uuid is not changed + - query_one_uuid.current.name == "ansible_port_channel_interface_2" - query_all is not changed - query_all.current | length == 2 - query_all.current.0.name == "ansible_port_channel_interface_changed" @@ -396,7 +406,7 @@ that: - nm_create_missing_node.msg == "Missing parameter 'node' for creating a Port Channel Interface" - nm_create_invalid_range.msg == "Range start is greater than or equal to range stop for range of IDs '1/2-1'" - - nm_create_invalid_range.msg == "Incorrect interface ID or range of IDs. Got 'invalid_id'" + - nm_create_invalid_id.msg == "Incorrect interface ID or range of IDs. Got 'invalid_id'" - nm_create_without_existing_policy.msg == "Provided Interface Policy Groups with '[KVPair(key='name', value='ansible_test_interface_policy_group_port_channel')]' not matching existing object(s): ansible_test_interface_policy_group_port_channel_2" # DELETE @@ -418,6 +428,12 @@ <<: *delete_port_channel_interface register: nm_delete_port_channel_interface_again + - name: Delete a port channel interface with UUID + cisco.mso.ndo_port_channel_interface: + <<: *query_port_channel_interface_uuid + state: absent + register: nm_delete_port_channel_interface_uuid + - name: Assert port channel interface deletion tasks assert: that: @@ -430,6 +446,9 @@ - nm_delete_port_channel_interface_again is not changed - nm_delete_port_channel_interface_again.previous == {} - nm_delete_port_channel_interface_again.current == {} + - nm_delete_port_channel_interface_uuid is changed + - nm_delete_port_channel_interface_uuid.previous.name == "ansible_port_channel_interface_2" + - nm_delete_port_channel_interface_uuid.current == {} # ERRORS AND NO PORT CHANNEL INTERFACES FOUND