From 16ac1525423c7746b306c14403963d2b65742528 Mon Sep 17 00:00:00 2001 From: Rich Megginson Date: Tue, 2 Nov 2021 16:43:35 -0600 Subject: [PATCH] support ansible-core 2.12; ansible-plugin-scan; fix pylint errors; py39 Use the new tox-lsr that uses ansible-core 2.12. Use ansible-plugin-scan in CI. Fix pylint errors found by new ansible-test pylinter. CI test with py39 Signed-off-by: Rich Megginson --- .github/workflows/tox.yml | 9 +-- .sanity-ansible-ignore-2.12.txt | 65 +++++++++++++++++++ library/network_connections.py | 10 +-- .../network_lsr/argument_validator.py | 4 +- module_utils/network_lsr/utils.py | 2 +- 5 files changed, 78 insertions(+), 12 deletions(-) create mode 100644 .sanity-ansible-ignore-2.12.txt diff --git a/.github/workflows/tox.yml b/.github/workflows/tox.yml index 6be5605..1550a83 100644 --- a/.github/workflows/tox.yml +++ b/.github/workflows/tox.yml @@ -4,7 +4,7 @@ on: # yamllint disable-line rule:truthy - pull_request - push env: - TOX_LSR: "git+https://github.com/linux-system-roles/tox-lsr@2.5.1" + TOX_LSR: "git+https://github.com/linux-system-roles/tox-lsr@2.7.0" LSR_ANSIBLE_TEST_DOCKER: "true" LSR_ANSIBLES: 'ansible==2.9.*' LSR_MSCENARIOS: default @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - pyver: ['2.7', '3.6', '3.7', '3.8'] + pyver: ['2.7', '3.6', '3.7', '3.8', '3.9'] steps: - name: checkout PR uses: actions/checkout@v2 @@ -38,9 +38,10 @@ jobs: toxenvs="py${toxpyver}" case "$toxpyver" in 27) toxenvs="${toxenvs},coveralls,flake8,pylint" ;; - 36) toxenvs="${toxenvs},coveralls,ensure_provider_tests,black,yamllint,ansible-lint,collection,ansible-test" ;; + 36) toxenvs="${toxenvs},coveralls,ensure_provider_tests,black,yamllint" ;; 37) toxenvs="${toxenvs},coveralls" ;; - 38) toxenvs="${toxenvs},coveralls" ;; + 38) toxenvs="${toxenvs},coveralls,ansible-lint,ansible-plugin-scan,collection,ansible-test" ;; + 39) toxenvs="${toxenvs},coveralls" ;; esac TOXENV="$toxenvs" lsr_ci_runtox python-26: diff --git a/.sanity-ansible-ignore-2.12.txt b/.sanity-ansible-ignore-2.12.txt new file mode 100644 index 0000000..a889955 --- /dev/null +++ b/.sanity-ansible-ignore-2.12.txt @@ -0,0 +1,65 @@ +plugins/module_utils/network_lsr/nm/__init__.py empty-init!skip +plugins/module_utils/network_lsr/nm/__init__.py import-2.6!skip +plugins/module_utils/network_lsr/nm/__init__.py import-2.7!skip +plugins/module_utils/network_lsr/nm/__init__.py import-3.5!skip +plugins/module_utils/network_lsr/nm/__init__.py import-3.6!skip +plugins/module_utils/network_lsr/nm/__init__.py import-3.7!skip +plugins/module_utils/network_lsr/nm/__init__.py import-3.8!skip +plugins/module_utils/network_lsr/nm/__init__.py import-3.9!skip +plugins/module_utils/network_lsr/nm/__init__.py import-3.10!skip +plugins/module_utils/network_lsr/nm/active_connection.py import-2.6!skip +plugins/module_utils/network_lsr/nm/active_connection.py import-2.7!skip +plugins/module_utils/network_lsr/nm/active_connection.py import-3.5!skip +plugins/module_utils/network_lsr/nm/active_connection.py import-3.6!skip +plugins/module_utils/network_lsr/nm/active_connection.py import-3.7!skip +plugins/module_utils/network_lsr/nm/active_connection.py import-3.8!skip +plugins/module_utils/network_lsr/nm/active_connection.py import-3.9!skip +plugins/module_utils/network_lsr/nm/active_connection.py import-3.10!skip +plugins/module_utils/network_lsr/nm/client.py import-2.6!skip +plugins/module_utils/network_lsr/nm/client.py import-2.7!skip +plugins/module_utils/network_lsr/nm/client.py import-3.5!skip +plugins/module_utils/network_lsr/nm/client.py import-3.6!skip +plugins/module_utils/network_lsr/nm/client.py import-3.7!skip +plugins/module_utils/network_lsr/nm/client.py import-3.8!skip +plugins/module_utils/network_lsr/nm/client.py import-3.9!skip +plugins/module_utils/network_lsr/nm/client.py import-3.10!skip +plugins/module_utils/network_lsr/nm/connection.py import-2.6!skip +plugins/module_utils/network_lsr/nm/connection.py import-2.7!skip +plugins/module_utils/network_lsr/nm/connection.py import-3.5!skip +plugins/module_utils/network_lsr/nm/connection.py import-3.6!skip +plugins/module_utils/network_lsr/nm/connection.py import-3.7!skip +plugins/module_utils/network_lsr/nm/connection.py import-3.8!skip +plugins/module_utils/network_lsr/nm/connection.py import-3.9!skip +plugins/module_utils/network_lsr/nm/connection.py import-3.10!skip +plugins/module_utils/network_lsr/nm/error.py import-2.6!skip +plugins/module_utils/network_lsr/nm/error.py import-2.7!skip +plugins/module_utils/network_lsr/nm/error.py import-3.5!skip +plugins/module_utils/network_lsr/nm/error.py import-3.6!skip +plugins/module_utils/network_lsr/nm/error.py import-3.7!skip +plugins/module_utils/network_lsr/nm/error.py import-3.8!skip +plugins/module_utils/network_lsr/nm/error.py import-3.9!skip +plugins/module_utils/network_lsr/nm/error.py import-3.10!skip +plugins/module_utils/network_lsr/nm/provider.py import-2.6!skip +plugins/module_utils/network_lsr/nm/provider.py import-2.7!skip +plugins/module_utils/network_lsr/nm/provider.py import-3.5!skip +plugins/module_utils/network_lsr/nm/provider.py import-3.6!skip +plugins/module_utils/network_lsr/nm/provider.py import-3.7!skip +plugins/module_utils/network_lsr/nm/provider.py import-3.8!skip +plugins/module_utils/network_lsr/nm/provider.py import-3.9!skip +plugins/module_utils/network_lsr/nm/provider.py import-3.10!skip +plugins/modules/network_connections.py validate-modules:doc-default-does-not-match-spec +plugins/modules/network_connections.py validate-modules:doc-required-mismatch +plugins/modules/network_connections.py validate-modules:missing-examples +plugins/modules/network_connections.py validate-modules:missing-gplv3-license +plugins/modules/network_connections.py validate-modules:module-invalid-version-added +plugins/modules/network_connections.py validate-modules:no-default-for-required-parameter +plugins/modules/network_connections.py validate-modules:parameter-list-no-elements +plugins/modules/network_connections.py validate-modules:parameter-type-not-in-doc +plugins/modules/network_connections.py validate-modules:undocumented-parameter +tests/network/covstats shebang!skip +tests/network/ensure_provider_tests.py shebang!skip +tests/network/get_coverage.sh shebang!skip +tests/network/get_total_coverage.sh shebang!skip +tests/network/git-pre-commit.sh shebang!skip +tests/network/git-post-commit.sh shebang!skip +tests/network/merge_coverage.sh shebang!skip diff --git a/library/network_connections.py b/library/network_connections.py index 0effcd8..4185a13 100644 --- a/library/network_connections.py +++ b/library/network_connections.py @@ -256,7 +256,7 @@ class IfcfgUtil: if r.match(value): return value - if any([ord(c) < ord(" ") for c in value]): + if any(ord(c) < ord(" ") for c in value): # needs ansic escaping due to ANSI control caracters (newline) s = "$'" for c in value: @@ -470,8 +470,8 @@ class IfcfgUtil: if connection["zone"]: ifcfg["ZONE"] = connection["zone"] - addrs4 = list([a for a in ip["address"] if a["family"] == socket.AF_INET]) - addrs6 = list([a for a in ip["address"] if a["family"] == socket.AF_INET6]) + addrs4 = [a for a in ip["address"] if a["family"] == socket.AF_INET] + addrs6 = [a for a in ip["address"] if a["family"] == socket.AF_INET6] if ip["dhcp4"]: ifcfg["BOOTPROTO"] = "dhcp" @@ -1026,8 +1026,8 @@ class NMUtil: s_ip4.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto") s_ip6.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto") - addrs4 = list([a for a in ip["address"] if a["family"] == socket.AF_INET]) - addrs6 = list([a for a in ip["address"] if a["family"] == socket.AF_INET6]) + addrs4 = [a for a in ip["address"] if a["family"] == socket.AF_INET] + addrs6 = [a for a in ip["address"] if a["family"] == socket.AF_INET6] if ip["dhcp4"]: s_ip4.set_property(NM.SETTING_IP_CONFIG_METHOD, "auto") diff --git a/module_utils/network_lsr/argument_validator.py b/module_utils/network_lsr/argument_validator.py index 74e01b3..6868952 100644 --- a/module_utils/network_lsr/argument_validator.py +++ b/module_utils/network_lsr/argument_validator.py @@ -665,7 +665,7 @@ class ArgValidator_DictIP(ArgValidatorDict): def _validate_post(self, value, name, result): has_ipv6_addresses = any( - [a for a in result["address"] if a["family"] == socket.AF_INET6] + a for a in result["address"] if a["family"] == socket.AF_INET6 ) if result["ipv6_disabled"] is True: @@ -696,7 +696,7 @@ class ArgValidator_DictIP(ArgValidatorDict): if result["dhcp4"] is None: result["dhcp4"] = result["dhcp4_send_hostname"] is not None or not any( - [a for a in result["address"] if a["family"] == socket.AF_INET] + a for a in result["address"] if a["family"] == socket.AF_INET ) if result["auto6"] is None: diff --git a/module_utils/network_lsr/utils.py b/module_utils/network_lsr/utils.py index 7f672ce..b21979a 100644 --- a/module_utils/network_lsr/utils.py +++ b/module_utils/network_lsr/utils.py @@ -220,7 +220,7 @@ class Util: return False if len(ifname) >= 16: return False - if any([c == "/" or c == ":" or c.isspace() for c in ifname]): + if any(c == "/" or c == ":" or c.isspace() for c in ifname): return False # FIXME: encoding issues regarding python unicode string return True