From 8a3dd3c43878abe6d5f3546b931be1c6615496ca Mon Sep 17 00:00:00 2001 From: Wen Liang Date: Tue, 21 Mar 2023 12:45:18 -0400 Subject: [PATCH] ansible-lint: Fix command-instead-of-module failures Signed-off-by: Wen Liang --- tests/ensure_provider_tests.py | 13 +++++++++---- tests/playbooks/integration_pytest_python3.yml | 8 +++++--- tests/tasks/enable_epel.yml | 1 + tests/tasks/get_NetworkManager_NVR.yml | 1 + tests/tasks/test_802.1x_capath.yml | 1 + tests/tests_eth_pci_address_match_nm.yml | 13 +++++++++---- tests/tests_ethtool_coalesce_nm.yml | 13 +++++++++---- tests/tests_ethtool_features_nm.yml | 13 +++++++++---- tests/tests_ethtool_ring_nm.yml | 13 +++++++++---- tests/tests_provider_nm.yml | 13 +++++++++---- tests/tests_regression_nm.yml | 13 +++++++++---- tests/tests_unit.yml | 8 +++++--- 12 files changed, 76 insertions(+), 34 deletions(-) diff --git a/tests/ensure_provider_tests.py b/tests/ensure_provider_tests.py index d56d347..b303110 100755 --- a/tests/ensure_provider_tests.py +++ b/tests/ensure_provider_tests.py @@ -20,14 +20,19 @@ GET_NM_VERSION = """ package: name: NetworkManager state: present + - name: Get NetworkManager package info + yum: + list: NetworkManager + register: networkmanager_info - name: Get NetworkManager version - command: rpm -q --qf "%{version}" NetworkManager - register: networkmanager_version - when: true + set_fact: + networkmanager_version: "{{ networkmanager_info.results | + selectattr('yumstate', 'match', '^installed$') | + map(attribute='version') | list | first }}" """ MINIMUM_NM_VERSION_CHECK = """ - - networkmanager_version.stdout is version({minimum_nm_version}, '>=') + - networkmanager_version is version({minimum_nm_version}, '>=') """ EXTRA_RUN_CONDITION_PREFIX = " - " diff --git a/tests/playbooks/integration_pytest_python3.yml b/tests/playbooks/integration_pytest_python3.yml index 72354cf..e4159f7 100644 --- a/tests/playbooks/integration_pytest_python3.yml +++ b/tests/playbooks/integration_pytest_python3.yml @@ -72,6 +72,7 @@ {{ modules_parent_and_dir.stdout_lines[1] }} -C {{ module_utils_parent_and_dir.stdout_lines[0] }} {{ module_utils_parent_and_dir.stdout_lines[1] }} + # noqa command-instead-of-module delegate_to: localhost - name: Copy testrepo.tar to the remote system @@ -81,9 +82,10 @@ mode: preserve - name: Untar testrepo.tar - command: tar xf {{ temptar.path | basename }} - args: - chdir: "{{ _rundir.path }}" + unarchive: + src: "{{ _rundir.path }}/{{ temptar.path | basename }}" + dest: "{{ _rundir.path }}" + remote_src: true - name: "Create subdirectory './ansible' under '{{ _rundir.path }}'" file: diff --git a/tests/tasks/enable_epel.yml b/tests/tasks/enable_epel.yml index 2bf7638..6ebbab6 100644 --- a/tests/tasks/enable_epel.yml +++ b/tests/tasks/enable_epel.yml @@ -9,6 +9,7 @@ cmd: >- rpm -iv https://dl.fedoraproject.org/pub/epel/epel-release-latest-{{ ansible_distribution_major_version }}.noarch.rpm + # noqa command-instead-of-module creates: /etc/yum.repos.d/epel.repo register: __epel_status # sometimes the rpm download returns a 403 - I think it is when too diff --git a/tests/tasks/get_NetworkManager_NVR.yml b/tests/tasks/get_NetworkManager_NVR.yml index d5d60a5..f9a2683 100644 --- a/tests/tasks/get_NetworkManager_NVR.yml +++ b/tests/tasks/get_NetworkManager_NVR.yml @@ -6,6 +6,7 @@ - name: Get NetworkManager RPM version command: cmd: rpm -qa --qf '%{name}-%{version}-%{release}\n' NetworkManager + # noqa command-instead-of-module register: __rpm_q_networkmanager - name: Store NetworkManager version diff --git a/tests/tasks/test_802.1x_capath.yml b/tests/tasks/test_802.1x_capath.yml index df37506..1dfef46 100644 --- a/tests/tasks/test_802.1x_capath.yml +++ b/tests/tasks/test_802.1x_capath.yml @@ -46,6 +46,7 @@ - name: Get NetworkManager version command: cmd: rpm -qa NetworkManager + # noqa command-instead-of-module register: __network_nm_nvr changed_when: false - block: diff --git a/tests/tests_eth_pci_address_match_nm.yml b/tests/tests_eth_pci_address_match_nm.yml index 5fc946e..93f4973 100644 --- a/tests/tests_eth_pci_address_match_nm.yml +++ b/tests/tests_eth_pci_address_match_nm.yml @@ -21,10 +21,15 @@ package: name: NetworkManager state: present + - name: Get NetworkManager package info + yum: + list: NetworkManager + register: networkmanager_info - name: Get NetworkManager version - command: rpm -q --qf "%{version}" NetworkManager - register: networkmanager_version - when: true + set_fact: + networkmanager_version: "{{ networkmanager_info.results | + selectattr('yumstate', 'match', '^installed$') | + map(attribute='version') | list | first }}" # The test requires or should run with NetworkManager, therefore it cannot run @@ -34,4 +39,4 @@ when: - ansible_distribution_major_version != '6' - - networkmanager_version.stdout is version('1.26.0', '>=') + - networkmanager_version is version('1.26.0', '>=') diff --git a/tests/tests_ethtool_coalesce_nm.yml b/tests/tests_ethtool_coalesce_nm.yml index a5c48c8..6edfef1 100644 --- a/tests/tests_ethtool_coalesce_nm.yml +++ b/tests/tests_ethtool_coalesce_nm.yml @@ -21,10 +21,15 @@ package: name: NetworkManager state: present + - name: Get NetworkManager package info + yum: + list: NetworkManager + register: networkmanager_info - name: Get NetworkManager version - command: rpm -q --qf "%{version}" NetworkManager - register: networkmanager_version - when: true + set_fact: + networkmanager_version: "{{ networkmanager_info.results | + selectattr('yumstate', 'match', '^installed$') | + map(attribute='version') | list | first }}" # The test requires or should run with NetworkManager, therefore it cannot run @@ -34,4 +39,4 @@ when: - ansible_distribution_major_version != '6' - - networkmanager_version.stdout is version('1.25.1', '>=') + - networkmanager_version is version('1.25.1', '>=') diff --git a/tests/tests_ethtool_features_nm.yml b/tests/tests_ethtool_features_nm.yml index b31455a..457d0fd 100644 --- a/tests/tests_ethtool_features_nm.yml +++ b/tests/tests_ethtool_features_nm.yml @@ -21,10 +21,15 @@ package: name: NetworkManager state: present + - name: Get NetworkManager package info + yum: + list: NetworkManager + register: networkmanager_info - name: Get NetworkManager version - command: rpm -q --qf "%{version}" NetworkManager - register: networkmanager_version - when: true + set_fact: + networkmanager_version: "{{ networkmanager_info.results | + selectattr('yumstate', 'match', '^installed$') | + map(attribute='version') | list | first }}" # The test requires or should run with NetworkManager, therefore it cannot run @@ -34,4 +39,4 @@ when: - ansible_distribution_major_version != '6' - - networkmanager_version.stdout is version('1.20.0', '>=') + - networkmanager_version is version('1.20.0', '>=') diff --git a/tests/tests_ethtool_ring_nm.yml b/tests/tests_ethtool_ring_nm.yml index 2f39c00..678b040 100644 --- a/tests/tests_ethtool_ring_nm.yml +++ b/tests/tests_ethtool_ring_nm.yml @@ -21,10 +21,15 @@ package: name: NetworkManager state: present + - name: Get NetworkManager package info + yum: + list: NetworkManager + register: networkmanager_info - name: Get NetworkManager version - command: rpm -q --qf "%{version}" NetworkManager - register: networkmanager_version - when: true + set_fact: + networkmanager_version: "{{ networkmanager_info.results | + selectattr('yumstate', 'match', '^installed$') | + map(attribute='version') | list | first }}" # The test requires or should run with NetworkManager, therefore it cannot run @@ -34,4 +39,4 @@ when: - ansible_distribution_major_version != '6' - - networkmanager_version.stdout is version('1.25.2', '>=') + - networkmanager_version is version('1.25.2', '>=') diff --git a/tests/tests_provider_nm.yml b/tests/tests_provider_nm.yml index 0d024e6..51ee74c 100644 --- a/tests/tests_provider_nm.yml +++ b/tests/tests_provider_nm.yml @@ -21,10 +21,15 @@ package: name: NetworkManager state: present + - name: Get NetworkManager package info + yum: + list: NetworkManager + register: networkmanager_info - name: Get NetworkManager version - command: rpm -q --qf "%{version}" NetworkManager - register: networkmanager_version - when: true + set_fact: + networkmanager_version: "{{ networkmanager_info.results | + selectattr('yumstate', 'match', '^installed$') | + map(attribute='version') | list | first }}" # The test requires or should run with NetworkManager, therefore it cannot run @@ -34,6 +39,6 @@ when: - ansible_distribution_major_version != '6' - - networkmanager_version.stdout is version('1.20.0', '>=') + - networkmanager_version is version('1.20.0', '>=') - ansible_distribution != 'RedHat' or ansible_distribution_major_version | int < 9 diff --git a/tests/tests_regression_nm.yml b/tests/tests_regression_nm.yml index 672173b..ba91253 100644 --- a/tests/tests_regression_nm.yml +++ b/tests/tests_regression_nm.yml @@ -12,10 +12,15 @@ package: name: NetworkManager state: present + - name: Get NetworkManager package info + yum: + list: NetworkManager + register: networkmanager_info - name: Get NetworkManager version - command: rpm -q --qf "%{version}" NetworkManager - when: true - register: networkmanager_version + set_fact: + networkmanager_version: "{{ networkmanager_info.results | + selectattr('yumstate','match','^installed$') | + map(attribute='version') | list | first }}" # workaround for: https://github.com/ansible/ansible/issues/27973 # There is no way in Ansible to abort a playbook hosts with specific OS @@ -26,6 +31,6 @@ when: - ansible_distribution_major_version != '6' # The test depends on behavior that is only visible with newer NM - - networkmanager_version.stdout is version('1.22.0', '>=') + - networkmanager_version is version('1.22.0', '>=') - ansible_distribution != 'RedHat' or ansible_distribution_major_version | int < 9 diff --git a/tests/tests_unit.yml b/tests/tests_unit.yml index 87bde19..d8ba235 100644 --- a/tests/tests_unit.yml +++ b/tests/tests_unit.yml @@ -49,6 +49,7 @@ {{ modules_parent_and_dir.stdout_lines[1] }} -C {{ module_utils_parent_and_dir.stdout_lines[0] }} {{ module_utils_parent_and_dir.stdout_lines[1] }} + # noqa command-instead-of-module delegate_to: localhost - name: Copy testrepo.tar to the remote system @@ -58,9 +59,10 @@ mode: preserve - name: Untar testrepo.tar - command: tar -xvf {{ temptar.path | basename }} - args: - chdir: "{{ _rundir.path }}" + unarchive: + src: "{{ _rundir.path }}/{{ temptar.path | basename }}" + dest: "{{ _rundir.path }}" + remote_src: true - name: Create subdirectory '/ansible/module_utils' under '{{ _rundir.path }}'