From 477aaa9877a25f5564fdc8b0a04be35091f9550f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juan=20Pablo=20Mart=C3=AD?= Date: Tue, 30 Aug 2022 14:27:55 -0300 Subject: [PATCH] Avoid failure when non DPDK instances present MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Avoid the validation failure when there are non DPDK instances. The playbook fails when there are instances not containing numatune, vcpupin or hugepages settings on the domain xml content. Closes-Bug: #1988211 Signed-off-by: Juan Pablo Martí Change-Id: I243f7781cd72827c0a1f9623a7e994e63d1561b0 --- .../tasks/validate_instance.yml | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/roles/check_nfv_ovsdpdk_zero_packet_loss/tasks/validate_instance.yml b/roles/check_nfv_ovsdpdk_zero_packet_loss/tasks/validate_instance.yml index de3c4c1ca..30a3a04a2 100644 --- a/roles/check_nfv_ovsdpdk_zero_packet_loss/tasks/validate_instance.yml +++ b/roles/check_nfv_ovsdpdk_zero_packet_loss/tasks/validate_instance.yml @@ -5,10 +5,12 @@ xpath: /domain/numatune/memory content: attribute register: xml_instance_node + when: '"numatune" in instance_xml_data' - name: Get instance associated numa nodes set_fact: instance_numa: "{{ xml_instance_node.matches[0].memory.nodeset }}" + when: '"numatune" in instance_xml_data' # Validates the instance vcpus list. - name: Get vcpu list from xml string @@ -17,6 +19,7 @@ xpath: /domain/cputune/vcpupin content: attribute register: xml_vcpus + when: '"vcpupin" in instance_xml_data' - name: Get instance vcpus list set_fact: @@ -25,6 +28,7 @@ loop: "{{ xml_vcpus.matches }}" loop_control: loop_var: vcpu + when: '"vcpupin" in instance_xml_data' - name: Check vcpu's aligned with DPDK NIC's NUMA become: true @@ -33,11 +37,13 @@ numa_node: "{{ instance_numa | int }}" dpdk_nics_numa_info: "{{ dpdk_nics_numa_info }}" register: valid_cpus + when: '"vcpupin" in instance_xml_data' - name: Check vcpu's valid or not set_fact: validation_msg: "{{ validation_msg }} + {{ [valid_cpus.message] }}" when: + - '"vcpupin" in instance_xml_data' - not valid_cpus.valid_cpus # Validates instance emulatorpin threads @@ -47,12 +53,15 @@ xpath: /domain/cputune/emulatorpin content: attribute register: xml_emulatorpin + when: '"emulatorpin" in instance_xml_data' - name: Check emulatorpin valid or not set_fact: validation_msg: "{{ validation_msg }} + {{ ['Invalid emulatorpin configured for instance ' \ + instance_name + ': ' + emulatorpin.emulatorpin.cpuset] }}" - when: "{{ emulatorpin.emulatorpin.cpuset in vcpus_list | list }}" + when: + - '"emulatorpin" in instance_xml_data' + - emulatorpin.emulatorpin.cpuset in vcpus_list | list loop: "{{ xml_emulatorpin.matches }}" loop_control: loop_var: emulatorpin @@ -64,12 +73,15 @@ xpath: /domain/memoryBacking/hugepages/page content: attribute register: xmlhugepages + when: '"memoryBacking" in instance_xml_data and "hugepages" in instance_xml_data' - name: Set instance {{ instance_name }} hugepages details set_fact: msg: |- Huge page size '{{ xmlhugepages.matches[0].page.size }}' - when: "{{ xmlhugepages.matches[0].page.size | length >= 6 }}" + when: + - '"memoryBacking" in instance_xml_data and "hugepages" in instance_xml_data' + - 'xmlhugepages.matches[0].page.size | length >= 6' # Validates instance tx rx queue sizes and should be greater than or equal to 1024. - name: Get {{ instance_name }} libvirt tx | rx queue sizes from xml string