From 69a9541f4b9ea1f10ad6ce80b711f23543fbdc7d Mon Sep 17 00:00:00 2001 From: GomathiselviS Date: Wed, 31 Jan 2024 11:00:43 -0500 Subject: [PATCH] Fix sanity failures (#220) * Fix sanity failures * Add github workflows --- .config/ansible-lint.yml | 5 ++++ .github/workflows/changelog.yml | 23 +++++++++++++++ .github/workflows/linters.yml | 29 +++++++++++++++++++ .github/workflows/sanity-tests.yml | 23 +++++++++++++++ .github/workflows/unit-tests.yml | 21 ++++++++++++++ changelogs/fragments/fix_sanity_failures.yml | 4 +++ plugins/inventory/openshift.py | 5 ++-- .../module_utils/openshift_adm_prune_auth.py | 2 +- .../openshift_adm_prune_deployments.py | 1 - .../openshift_adm_prune_images.py | 1 - plugins/module_utils/openshift_builds.py | 1 - plugins/module_utils/openshift_groups.py | 1 - .../module_utils/openshift_import_image.py | 4 +-- plugins/module_utils/openshift_process.py | 1 - plugins/modules/openshift_adm_groups_sync.py | 1 - test-requirements.txt | 1 + tests/sanity/ignore-2.16.txt | 3 ++ tests/sanity/ignore-2.17.txt | 3 ++ .../unit/plugins/module_utils/test_ldap_dn.py | 2 +- 19 files changed, 118 insertions(+), 13 deletions(-) create mode 100644 .config/ansible-lint.yml create mode 100644 .github/workflows/changelog.yml create mode 100644 .github/workflows/linters.yml create mode 100644 .github/workflows/sanity-tests.yml create mode 100644 .github/workflows/unit-tests.yml create mode 100644 changelogs/fragments/fix_sanity_failures.yml create mode 100644 tests/sanity/ignore-2.16.txt create mode 100644 tests/sanity/ignore-2.17.txt diff --git a/.config/ansible-lint.yml b/.config/ansible-lint.yml new file mode 100644 index 0000000..7c92b22 --- /dev/null +++ b/.config/ansible-lint.yml @@ -0,0 +1,5 @@ +--- +profile: production +exclude_paths: + - molecule + - tests/sanity diff --git a/.github/workflows/changelog.yml b/.github/workflows/changelog.yml new file mode 100644 index 0000000..569e334 --- /dev/null +++ b/.github/workflows/changelog.yml @@ -0,0 +1,23 @@ +--- +name: Changelog +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + pull_request: + types: + - opened + - reopened + - labeled + - unlabeled + - synchronize + branches: + - main + - stable-* + tags: + - '*' + +jobs: + changelog: + uses: ansible-network/github_actions/.github/workflows/changelog.yml@main diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml new file mode 100644 index 0000000..11258aa --- /dev/null +++ b/.github/workflows/linters.yml @@ -0,0 +1,29 @@ +--- +name: Linters +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + pull_request: + types: + - opened + - reopened + - labeled + - unlabeled + - synchronize + branches: + - main + - stable-* + tags: + - '*' +jobs: + linters: + uses: ansible-network/github_actions/.github/workflows/tox-linters.yml@main + ansible-lint: + runs-on: ubuntu-latest + steps: + - uses: ansible-network/github_actions/.github/actions/checkout_dependency@main + + - name: Run ansible-lint + uses: ansible/ansible-lint@v6.21.0 diff --git a/.github/workflows/sanity-tests.yml b/.github/workflows/sanity-tests.yml new file mode 100644 index 0000000..49359de --- /dev/null +++ b/.github/workflows/sanity-tests.yml @@ -0,0 +1,23 @@ +--- +name: Sanity tests +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + pull_request: + types: + - opened + - reopened + - synchronize + branches: + - main + - stable-* + tags: + - '*' + +jobs: + sanity: + uses: ansible-network/github_actions/.github/workflows/sanity.yml@main + with: + collection_pre_install: '-r source/tests/sanity/requirements.yml' diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml new file mode 100644 index 0000000..d3aa3b0 --- /dev/null +++ b/.github/workflows/unit-tests.yml @@ -0,0 +1,21 @@ +--- +name: Unit tests +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +on: + pull_request: + types: + - opened + - reopened + - synchronize + branches: + - main + - stable-* + tags: + - '*' + +jobs: + unit-source: + uses: ansible-network/github_actions/.github/workflows/unit_source.yml@main diff --git a/changelogs/fragments/fix_sanity_failures.yml b/changelogs/fragments/fix_sanity_failures.yml new file mode 100644 index 0000000..4abda43 --- /dev/null +++ b/changelogs/fragments/fix_sanity_failures.yml @@ -0,0 +1,4 @@ +--- +trivial: + - Fix sanity validate-modules and yamllint failures. + - Add GH workflows. diff --git a/plugins/inventory/openshift.py b/plugins/inventory/openshift.py index f69c652..17df857 100644 --- a/plugins/inventory/openshift.py +++ b/plugins/inventory/openshift.py @@ -133,9 +133,10 @@ class InventoryModule(K8sInventoryModule): transport = 'oc' def check_kubernetes_collection(self): - if not HAS_KUBERNETES_COLLECTION: - K8sInventoryException("The kubernetes.core collection must be installed") + raise K8sInventoryException( + "The kubernetes.core collection must be installed" + ) def fetch_objects(self, connections): self.check_kubernetes_collection() diff --git a/plugins/module_utils/openshift_adm_prune_auth.py b/plugins/module_utils/openshift_adm_prune_auth.py index e5143ae..56f32f6 100644 --- a/plugins/module_utils/openshift_adm_prune_auth.py +++ b/plugins/module_utils/openshift_adm_prune_auth.py @@ -66,7 +66,7 @@ class OpenShiftAdmPruneAuth(AnsibleOpenshiftModule): def update_resource_binding(self, ref_kind, ref_names, namespaced=False): kind = 'ClusterRoleBinding' - api_version = "rbac.authorization.k8s.io/v1", + api_version = "rbac.authorization.k8s.io/v1" if namespaced: kind = "RoleBinding" resource = self.find_resource(kind=kind, api_version=api_version, fail=True) diff --git a/plugins/module_utils/openshift_adm_prune_deployments.py b/plugins/module_utils/openshift_adm_prune_deployments.py index 418922d..db73059 100644 --- a/plugins/module_utils/openshift_adm_prune_deployments.py +++ b/plugins/module_utils/openshift_adm_prune_deployments.py @@ -4,7 +4,6 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type from datetime import datetime, timezone -import traceback from ansible.module_utils._text import to_native diff --git a/plugins/module_utils/openshift_adm_prune_images.py b/plugins/module_utils/openshift_adm_prune_images.py index 442cf90..58a62de 100644 --- a/plugins/module_utils/openshift_adm_prune_images.py +++ b/plugins/module_utils/openshift_adm_prune_images.py @@ -4,7 +4,6 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type from datetime import datetime, timezone, timedelta -import traceback import copy from ansible.module_utils._text import to_native diff --git a/plugins/module_utils/openshift_builds.py b/plugins/module_utils/openshift_builds.py index 02e60fd..15fdfdd 100644 --- a/plugins/module_utils/openshift_builds.py +++ b/plugins/module_utils/openshift_builds.py @@ -4,7 +4,6 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type from datetime import datetime, timezone, timedelta -import traceback import time from ansible.module_utils._text import to_native diff --git a/plugins/module_utils/openshift_groups.py b/plugins/module_utils/openshift_groups.py index 5d1aaad..5a878b2 100644 --- a/plugins/module_utils/openshift_groups.py +++ b/plugins/module_utils/openshift_groups.py @@ -7,7 +7,6 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -import traceback from datetime import datetime from ansible.module_utils.parsing.convert_bool import boolean diff --git a/plugins/module_utils/openshift_import_image.py b/plugins/module_utils/openshift_import_image.py index 01bba82..af321b1 100644 --- a/plugins/module_utils/openshift_import_image.py +++ b/plugins/module_utils/openshift_import_image.py @@ -3,10 +3,8 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type -import traceback import copy -from ansible.module_utils._text import to_native from ansible.module_utils.parsing.convert_bool import boolean from ansible.module_utils.six import string_types @@ -315,7 +313,7 @@ class OpenShiftImportImage(AnsibleOpenshiftModule): if not result["api_found"]: msg = 'Failed to find API for resource with apiVersion "{0}" and kind "{1}"'.format( api_version, kind - ), + ) self.fail_json(msg=msg) imagestream = None if len(result["resources"]) > 0: diff --git a/plugins/module_utils/openshift_process.py b/plugins/module_utils/openshift_process.py index 6fa69d1..ebb8ee2 100644 --- a/plugins/module_utils/openshift_process.py +++ b/plugins/module_utils/openshift_process.py @@ -4,7 +4,6 @@ from __future__ import (absolute_import, division, print_function) __metaclass__ = type import os -import traceback from ansible.module_utils._text import to_native diff --git a/plugins/modules/openshift_adm_groups_sync.py b/plugins/modules/openshift_adm_groups_sync.py index 66b0fbb..d01a4ba 100644 --- a/plugins/modules/openshift_adm_groups_sync.py +++ b/plugins/modules/openshift_adm_groups_sync.py @@ -192,7 +192,6 @@ builds: # ENDREMOVE (downstream) import copy -import traceback from ansible_collections.kubernetes.core.plugins.module_utils.args_common import AUTH_ARG_SPEC diff --git a/test-requirements.txt b/test-requirements.txt index 7f23468..99e8534 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -2,3 +2,4 @@ coverage==4.5.4 pytest pytest-xdist pytest-forked +pytest-ansible diff --git a/tests/sanity/ignore-2.16.txt b/tests/sanity/ignore-2.16.txt new file mode 100644 index 0000000..2fd2bdc --- /dev/null +++ b/tests/sanity/ignore-2.16.txt @@ -0,0 +1,3 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc \ No newline at end of file diff --git a/tests/sanity/ignore-2.17.txt b/tests/sanity/ignore-2.17.txt new file mode 100644 index 0000000..2fd2bdc --- /dev/null +++ b/tests/sanity/ignore-2.17.txt @@ -0,0 +1,3 @@ +plugins/modules/k8s.py validate-modules:parameter-type-not-in-doc +plugins/modules/k8s.py validate-modules:return-syntax-error +plugins/modules/openshift_process.py validate-modules:parameter-type-not-in-doc \ No newline at end of file diff --git a/tests/unit/plugins/module_utils/test_ldap_dn.py b/tests/unit/plugins/module_utils/test_ldap_dn.py index 5835f36..848499a 100644 --- a/tests/unit/plugins/module_utils/test_ldap_dn.py +++ b/tests/unit/plugins/module_utils/test_ldap_dn.py @@ -10,7 +10,7 @@ from ansible_collections.community.okd.plugins.module_utils.openshift_ldap impor import pytest try: - import ldap + import ldap # pylint: disable=unused-import except ImportError: pytestmark = pytest.mark.skip("This test requires the python-ldap library")