From 740948498d0ba15a8f02cdb4cd027bf2ca04b442 Mon Sep 17 00:00:00 2001 From: Alberto Florez Date: Tue, 26 May 2026 12:03:45 +0200 Subject: [PATCH 1/3] perf: optimize network map creation by filtering networks before processing --- .../mtv_management/tasks/_mtv_network_map.yml | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/roles/mtv_management/tasks/_mtv_network_map.yml b/roles/mtv_management/tasks/_mtv_network_map.yml index 9862121..12c92ec 100644 --- a/roles/mtv_management/tasks/_mtv_network_map.yml +++ b/roles/mtv_management/tasks/_mtv_network_map.yml @@ -32,9 +32,22 @@ mtv_management_inventory_query_endpoint: /providers/openshift/{{ (mtv_providers.openshift | selectattr('name', 'equalto', mtv_management_destination_target) | first).uid }}/networkattachmentdefinitions?detail=4 # noqa: yaml[line-length] mtv_management_inventory_query_result_var: mtv_networkattachmentdefinitions +- name: _mtv_network_map | Extract allowed network IDs from overrides + ansible.builtin.set_fact: + mtv_allowed_ids: "{{ mtv_management_network_map_overrides | selectattr('include', 'defined') | selectattr('include', 'equalto', true) | map(attribute='id') | list }}" + when: + - mtv_management_network_map_overrides is defined + - mtv_management_network_map_overrides | length > 0 + - name: _mtv_network_map | Process VMware Networks ansible.builtin.include_tasks: _mtv_network_map_process_network.yml - loop: "{{ mtv_networks }}" + # If overrides exist, filter mtv_networks by the allowed IDs; otherwise, use the full list. + loop: >- + {{ + (mtv_networks | selectattr('id', 'in', mtv_allowed_ids | default([])) | list) + if (mtv_management_network_map_overrides | default([]) | length > 0) + else mtv_networks + }} loop_control: loop_var: mtv_vmware_network when: @@ -44,7 +57,12 @@ - name: _mtv_network_map | Process Ovirt Networks ansible.builtin.include_tasks: _mtv_network_map_process_network.yml - loop: "{{ mtv_networks }}" + loop: >- + {{ + (mtv_networks | selectattr('id', 'in', mtv_allowed_ids | default([])) | list) + if (mtv_management_network_map_overrides | default([]) | length > 0) + else mtv_networks + }} loop_control: loop_var: mtv_ovirt_network when: From 21d352ee57997b238ac5e73c698ad36b5d8e5c66 Mon Sep 17 00:00:00 2001 From: Alberto Florez Date: Tue, 26 May 2026 12:20:27 +0200 Subject: [PATCH 2/3] chore: trigger validation From 9302bb6b6d5d6a4d1d6daec23929d382c1c9a9b9 Mon Sep 17 00:00:00 2001 From: Alberto Florez Date: Sat, 30 May 2026 17:45:19 +0200 Subject: [PATCH 3/3] fix: address exclude-only edge case and initialize mtv_allowed_ids --- roles/mtv_management/tasks/_mtv_network_map.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/roles/mtv_management/tasks/_mtv_network_map.yml b/roles/mtv_management/tasks/_mtv_network_map.yml index 12c92ec..fa53dfc 100644 --- a/roles/mtv_management/tasks/_mtv_network_map.yml +++ b/roles/mtv_management/tasks/_mtv_network_map.yml @@ -1,8 +1,8 @@ --- - - name: _mtv_network_map | Initialize data structures ansible.builtin.set_fact: mtv_management_mtv_networkmap_maps: {} + mtv_allowed_ids: [] - name: _mtv_network_map | Verify Network Map Overrides do not contain both includes and excludes ansible.builtin.fail: @@ -41,11 +41,10 @@ - name: _mtv_network_map | Process VMware Networks ansible.builtin.include_tasks: _mtv_network_map_process_network.yml - # If overrides exist, filter mtv_networks by the allowed IDs; otherwise, use the full list. loop: >- {{ - (mtv_networks | selectattr('id', 'in', mtv_allowed_ids | default([])) | list) - if (mtv_management_network_map_overrides | default([]) | length > 0) + (mtv_networks | selectattr('id', 'in', mtv_allowed_ids) | list) + if (mtv_allowed_ids | default([]) | length > 0) else mtv_networks }} loop_control: @@ -59,8 +58,8 @@ ansible.builtin.include_tasks: _mtv_network_map_process_network.yml loop: >- {{ - (mtv_networks | selectattr('id', 'in', mtv_allowed_ids | default([])) | list) - if (mtv_management_network_map_overrides | default([]) | length > 0) + (mtv_networks | selectattr('id', 'in', mtv_allowed_ids) | list) + if (mtv_allowed_ids | default([]) | length > 0) else mtv_networks }} loop_control: