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 <rmeggins@redhat.com>
This commit is contained in:
Rich Megginson 2021-11-02 16:43:35 -06:00 committed by Till Maas
parent 774242fb63
commit 16ac152542
5 changed files with 78 additions and 12 deletions

View file

@ -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:

View file

@ -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

View file

@ -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")

View file

@ -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:

View file

@ -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