From e25aebf55a90023c6bd6fd1f965427308f843215 Mon Sep 17 00:00:00 2001 From: Nam Nguyen Date: Thu, 18 Dec 2025 15:54:49 +0100 Subject: [PATCH 1/2] CLOUDP-301527: Migrate from custom pre-commit to official pre-commit framework - Add .pre-commit-config.yaml with hooks for golangci-lint, shellcheck, black, isort, etc. - Add generate_files.sh and regenerate_multicluster_rbac.sh scripts - Update Makefile, pyproject.toml, requirements.txt for pre-commit integration - Update evergreen scripts for pre-commit checks - Run pre-commit generation jobs in parallel --- .githooks/pre-commit | 291 +----------------- .pre-commit-config.yaml | 85 +++++ Makefile | 4 +- pyproject.toml | 1 + requirements.txt | 1 + scripts/code_snippets/validate_snippets.py | 19 ++ scripts/dev/generate_files.sh | 239 ++++++++++++++ scripts/dev/regenerate_multicluster_rbac.sh | 23 ++ scripts/evergreen/check_precommit.sh | 32 +- scripts/evergreen/lint_code.sh | 2 + .../prepare-openshift-bundles-for-e2e.sh | 2 +- 11 files changed, 411 insertions(+), 288 deletions(-) create mode 100644 .pre-commit-config.yaml create mode 100755 scripts/dev/generate_files.sh create mode 100755 scripts/dev/regenerate_multicluster_rbac.sh diff --git a/.githooks/pre-commit b/.githooks/pre-commit index a68317dea..3cb32a2c3 100755 --- a/.githooks/pre-commit +++ b/.githooks/pre-commit @@ -1,289 +1,18 @@ #!/usr/bin/env bash +# +# Git pre-commit hook that delegates to the pre-commit framework. +# This file is kept for backwards compatibility with existing dev setups. +# +# To set up: git config core.hooksPath .githooks +# set -Eeou pipefail source scripts/dev/set_env_context.sh -source scripts/funcs/printing -if [ -f "${PROJECT_DIR}"/venv/bin/activate ]; then - source "${PROJECT_DIR}"/venv/bin/activate +if [ -f "${PROJECT_DIR}/venv/bin/activate" ]; then + source "${PROJECT_DIR}/venv/bin/activate" fi -if [[ -z "${EVERGREEN_MODE:-}" ]]; then - # According to the latest SSDLC recommendations, the CI needs to always check all the files. Not just delta. - git_last_changed=$(git ls-tree -r origin/master --name-only) -else - git_last_changed=$(git diff --cached --name-only --diff-filter=ACM origin/master) -fi - -mkdir -p "$(go env GOPATH)/bin" - -update_mco_tests() { - echo "Regenerating MCO evergreen tests configuration" - python scripts/evergreen/e2e/mco/create_mco_tests.py >.evergreen-mco.yml - git add .evergreen-mco.yml -} - -# Generates a yaml file to install the operator from the helm sources. -generate_standalone_yaml() { - HELM_OPTS=$@ - - charttmpdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'charttmpdir') - charttmpdir=${charttmpdir}/chart - mkdir -p "${charttmpdir}" - - FILES=( - "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-base.yaml" - "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-clustermongodbroles.yaml" - "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-pvc-resize.yaml" - "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-telemetry.yaml" - "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-webhook.yaml" - "${charttmpdir}/mongodb-kubernetes/templates/database-roles.yaml" - "${charttmpdir}/mongodb-kubernetes/templates/operator-sa.yaml" - "${charttmpdir}/mongodb-kubernetes/templates/operator.yaml" - ) - - # generate normal public example - helm template --namespace mongodb -f helm_chart/values.yaml helm_chart --output-dir "${charttmpdir}" ${HELM_OPTS[@]} - cat "${FILES[@]}" >public/mongodb-kubernetes.yaml - cat "helm_chart/crds/"* >public/crds.yaml - - # generate openshift public example - rm -rf "${charttmpdir:?}"/* - helm template --namespace mongodb -f helm_chart/values.yaml helm_chart --output-dir "${charttmpdir}" --values helm_chart/values-openshift.yaml ${HELM_OPTS[@]} - cat "${FILES[@]}" >public/mongodb-kubernetes-openshift.yaml - - # generate openshift files for kustomize used for generating OLM bundle - rm -rf "${charttmpdir:?}"/* - helm template --namespace mongodb -f helm_chart/values.yaml helm_chart --output-dir "${charttmpdir}" --values helm_chart/values-openshift.yaml \ - --set operator.webhook.registerConfiguration=false --set operator.webhook.installClusterRole=false ${HELM_OPTS[@]} - - # update kustomize files for OLM bundle with files generated for openshift - cp "${charttmpdir}/mongodb-kubernetes/templates/operator.yaml" config/manager/manager.yaml - cp "${charttmpdir}/mongodb-kubernetes/templates/database-roles.yaml" config/rbac/database-roles.yaml - cp "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-base.yaml" config/rbac/operator-roles-base.yaml - cp "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-clustermongodbroles.yaml" config/rbac/operator-roles-clustermongodbroles.yaml - cp "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-pvc-resize.yaml" config/rbac/operator-roles-pvc-resize.yaml - cp "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-telemetry.yaml" config/rbac/operator-roles-telemetry.yaml - - # generate multi-cluster public example - rm -rf "${charttmpdir:?}"/* - helm template --namespace mongodb -f helm_chart/values.yaml helm_chart --output-dir "${charttmpdir}" --values helm_chart/values-multi-cluster.yaml ${HELM_OPTS[@]} - cat "${FILES[@]}" >public/mongodb-kubernetes-multi-cluster.yaml - -} - -python_formatting() { - # installing Black - if ! command -v "black" >/dev/null; then - pip install -r requirements.txt - fi - - echo "formatting isort" - isort . - echo "formatting black" - black . -} - -generate_manifests() { - make manifests - - git add config/crd/bases - git add helm_chart/crds - git add public/crds.yaml -} - -update_values_yaml_files() { - # ensure that all helm values files are up to date. - # shellcheck disable=SC2154 - python scripts/evergreen/release/update_helm_values_files.py - - # commit any changes we made - git add helm_chart/values.yaml - git add helm_chart/values-openshift.yaml - - # these can change if the version of community operator is different - git add go.mod - git add go.sum -} - -update_release_json() { - # ensure that release.json is up 2 date - # shellcheck disable=SC2154 - python scripts/evergreen/release/update_release.py - - # commit any changes we made - git add release.json -} - -regenerate_public_rbac_multi_cluster() { - if echo "$git_last_changed" | grep -q -e 'cmd/kubectl-mongodb' -e 'pkg/kubectl-mongodb'; then - echo 'regenerating multicluster RBAC public example' - pushd pkg/kubectl-mongodb/common/ - EXPORT_RBAC_SAMPLES="true" go test ./... -run TestPrintingOutRolesServiceAccountsAndRoleBindings - popd - git add public/samples/multi-cluster-cli-gitops - fi -} - -update_licenses() { - if [[ "${MDB_UPDATE_LICENSES:-""}" == "true" ]]; then - echo 'regenerating licenses' - time scripts/evergreen/update_licenses.sh 2>&1 | prepend "update_licenses" - git add LICENSE-THIRD-PARTY - fi -} - -check_erroneous_kubebuilder_annotations() { - # Makes sure there are not erroneous kubebuilder annotations that can - # end up in CRDs as descriptions. - if grep "// kubebuilder" ./* -r --exclude-dir=vendor --include=\*.go; then - echo -e "${RED}Found an erroneous kubebuilder annotation${NO_COLOR}" - exit 1 - fi -} - -check_incorrect_makefile_variable_brackets() { - if find . -name "Makefile" | grep -v vendor | xargs grep "\${"; then - echo -e "${RED}ERROR: Makefiles should NEVER contain curly brackets variables${NO_COLOR}" - exit 1 - fi -} - -update_jobs() { - # Update release.json first in case there is a newer version - time update_release_json - # We need to generate the values files first - time update_values_yaml_files - # The values files are used for generating the standalone yaml - time generate_standalone_yaml -} - -lint_code() { - scripts/evergreen/lint_code.sh -} - -lint_helm_chart() { - scripts/dev/lint_helm_chart.sh -} - -function validate_snippets() { - scripts/code_snippets/validate_snippets.py -} - -# bg_job_ vars are global; run_job_in_background function is appending to them on each call -bg_job_pids=() -bg_job_pids_with_names=() - -get_job_name() { - local search_pid="$1" - local match - match=$(printf '%s\n' "${bg_job_pids_with_names[@]}" | grep "^${search_pid}:") - echo "${match#*:}" # Remove everything up to and including the colon -} - -# Executes function given on the first argument as background job. -# It's ensuring logs are properly prefixed by the name and -# the job's pid is captured in bg_jobs array in order to wait for completion. -run_job_in_background() { - job_name=$1 - time ${job_name} 2>&1 | prepend "${job_name}" & - - local job_pid=$! - bg_job_pids+=("${job_pid}") - bg_job_pids_with_names+=("${job_pid}:${job_name}") - echo "Started ${job_name} with PID: ${job_pid}" -} - -# Waits for all background jobs stored in bg_job_pids and check their exit codes. -wait_for_all_background_jobs() { - failures=() - for pid in "${bg_job_pids[@]}"; do - wait "${pid}" || { - job_name=$(get_job_name "${pid}") - failures+=(" ${RED}${job_name} (PID ${pid})${NO_COLOR}") - } - done - - if [[ ${#failures[@]} -gt 0 ]]; then - echo -e "${RED}Some checks have failed:${NO_COLOR}" - for failure in "${failures[@]}"; do - echo -e "$failure" - done - echo -e "${RED}To see the details look/filter for the job's logs by it's prefixed name (e.g. \"start_shellcheck:\", \"lint_code:\", \"shellcheck failed\").${NO_COLOR}" - return 1 - fi - - return 0 -} - -pre_commit() { - run_job_in_background "update_jobs" - run_job_in_background "update_licenses" - run_job_in_background "lint_code" - run_job_in_background "start_shellcheck" - run_job_in_background "regenerate_public_rbac_multi_cluster" - run_job_in_background "python_formatting" - run_job_in_background "check_erroneous_kubebuilder_annotations" - run_job_in_background "validate_snippets" - - if wait_for_all_background_jobs; then - # lint_helm_chart must be run after all the background jobs are finished because one of the BG jobs (update_jobs) - # updates the helm chart. And lint_helm_chart requires the helm chart to be updated already. - lint_helm_chart - - local lint_helm_chart_status=$? - if [ "$lint_helm_chart_status" -eq 0 ]; then - echo -e "${GREEN}pre-commit: All checks passed!${NO_COLOR}" - return 0 - else - return 1 - fi - else - return 1 - fi -} - -# Function to run shellcheck on a single file -run_shellcheck() { - local file="$1" - - local diff_output - diff_output=$(shellcheck -f diff "$file" -e SC2154 -e SC1091 -e SC1090 -e SC2148 -o require-variable-braces -P "scripts" 2>&1) - - if [[ -n "$diff_output" && "$diff_output" != *"Issues were detected, but none were auto-fixable"* ]]; then - echo "$diff_output" | git apply - echo "Applied auto-fixes for $file" - elif [[ "$diff_output" == *"Issues were detected, but none were auto-fixable"* ]]; then - echo -e "${RED}shellcheck failed on $file${NO_COLOR}" - shellcheck --color=always -x "$file" -e SC2154 -e SC1091 -e SC1090 -e SC2148 -o require-variable-braces -P "scripts" - return 1 - fi -} - -# Export function so it's available in subshells (for xargs) -export -f run_shellcheck - -start_shellcheck() { - # shellcheck disable=SC2016 - { - find scripts -type f -name "*.sh" - find scripts/dev/contexts -type f | grep -v private-context - find scripts/funcs -type f - find public/architectures -type f -name "*.sh" - find docs/ -type f -name "*.sh" - } | xargs -I {} -P 20 bash -c 'run_shellcheck "$1"' _ {} -} - -cmd=${1:-"pre-commit"} - -if [[ "${cmd}" == "generate_standalone_yaml" ]]; then - shift 1 - generate_standalone_yaml "$@" -elif [[ "${cmd}" == "pre-commit" ]]; then - time pre_commit -elif [[ "${cmd}" == "shellcheck" ]]; then - start_shellcheck -elif [[ "${cmd}" == "lint" ]]; then - lint_code -fi +# Run pre-commit framework +exec pre-commit run --all-files diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..9ef3712c5 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,85 @@ +# Pre-commit configuration for mongodb-kubernetes +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks + +default_stages: [pre-commit] + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v5.0.0 + hooks: + # TODO: Enable these hooks in a follow-up PR - they modify 200+ files + # - id: trailing-whitespace + # exclude: | + # (?x)^( + # .*\.patch$| + # vendor/.*| + # testdata/.*| + # helm_chart/crds/.*| + # public/crds\.yaml$| + # config/crd/bases/.* + # ) + # - id: end-of-file-fixer + # exclude: | + # (?x)^( + # .*\.patch$| + # vendor/.*| + # testdata/.*| + # helm_chart/crds/.*| + # public/crds\.yaml$| + # config/crd/bases/.* + # ) + - id: check-added-large-files + - id: check-merge-conflict + - id: check-json + exclude: | + (?x)^( + vendor/.*| + testdata/.* + ) + + - repo: https://github.com/psf/black + rev: 24.10.0 + hooks: + - id: black + language_version: python3 + + - repo: https://github.com/pycqa/isort + rev: 5.13.2 + hooks: + - id: isort + args: ["--profile", "black"] + + - repo: https://github.com/koalaman/shellcheck-precommit + rev: v0.10.0 + hooks: + - id: shellcheck + args: [-e, SC2154, -e, SC1091, -e, SC1090, -e, SC2148, -o, require-variable-braces, -P, scripts] + exclude: | + (?x)^( + vendor/.*| + scripts/dev/contexts/private-context.* + ) + files: | + (?x)( + \.sh$| + ^scripts/dev/contexts/[^/]+$| + ^scripts/funcs/[^/]+$ + ) + + - repo: https://github.com/golangci/golangci-lint + rev: v1.62.2 + hooks: + - id: golangci-lint + args: [--timeout=10m] + + # Local hooks for project-specific tasks + # Runs all generation/validation jobs in parallel internally + - repo: local + hooks: + - id: generate-and-validate + name: generate-and-validate (parallel) + entry: scripts/dev/generate_files.sh generate_all + language: system + pass_filenames: false + stages: [pre-commit] diff --git a/Makefile b/Makefile index 40204ecf8..e0d733921 100644 --- a/Makefile +++ b/Makefile @@ -57,10 +57,10 @@ prerequisites: @ scripts/dev/install.sh precommit: - @ .githooks/pre-commit + @ source scripts/dev/set_env_context.sh && pre-commit run --all-files precommit-with-licenses: - @ MDB_UPDATE_LICENSES=true .githooks/pre-commit + @ source scripts/dev/set_env_context.sh && MDB_UPDATE_LICENSES=true pre-commit run --all-files switch: @ scripts/dev/switch_context.sh $(context) $(additional_override) diff --git a/pyproject.toml b/pyproject.toml index a4f290a52..31b53df2d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -5,3 +5,4 @@ include = '\.pyi?$' [tool.isort] profile = "black" +line_length = 120 diff --git a/requirements.txt b/requirements.txt index 7562d29f3..c93ee5ede 100644 --- a/requirements.txt +++ b/requirements.txt @@ -35,6 +35,7 @@ python-frontmatter==1.1.0 python-on-whales==0.79.0 yamale==6.1.0 yamllint==1.37.1 +pre-commit==4.0.1 PyGithub==2.8.1 # from kubeobject diff --git a/scripts/code_snippets/validate_snippets.py b/scripts/code_snippets/validate_snippets.py index be797add9..beb8807c3 100755 --- a/scripts/code_snippets/validate_snippets.py +++ b/scripts/code_snippets/validate_snippets.py @@ -1,16 +1,35 @@ #!/usr/bin/env python3 import os +import subprocess import sys from collections import defaultdict +def is_git_ignored(path): + """Check if a path is git-ignored.""" + try: + result = subprocess.run( + ["git", "check-ignore", "-q", path], + capture_output=True, + text=True, + ) + return result.returncode == 0 + except Exception: + return False + + def find_snippet_directories(): """Find all directories containing both test.sh and code_snippets subdirectory.""" snippet_dirs = [] # Traverse current directory recursively to find test.sh files for root, dirs, files in os.walk("."): + # Skip git-ignored directories + if is_git_ignored(root): + dirs.clear() # Don't descend into ignored directories + continue + if "test.sh" in files: # Check if this directory also has a code_snippets subdirectory code_snippets_path = os.path.join(root, "code_snippets") diff --git a/scripts/dev/generate_files.sh b/scripts/dev/generate_files.sh new file mode 100755 index 000000000..52d6f1fa2 --- /dev/null +++ b/scripts/dev/generate_files.sh @@ -0,0 +1,239 @@ +#!/usr/bin/env bash +# +# File generation script for pre-commit hooks. +# This script generates various files (YAML configs, manifests, etc.). +# + +set -Eeou pipefail + +source scripts/dev/set_env_context.sh +source scripts/funcs/printing + +if [ -f "${PROJECT_DIR}/venv/bin/activate" ]; then + source "${PROJECT_DIR}/venv/bin/activate" +fi + +mkdir -p "$(go env GOPATH)/bin" + +update_mco_tests() { + echo "Regenerating MCO evergreen tests configuration" + python scripts/evergreen/e2e/mco/create_mco_tests.py >.evergreen-mco.yml + git add .evergreen-mco.yml +} + +# Generates a yaml file to install the operator from the helm sources. +generate_standalone_yaml() { + charttmpdir=$(mktemp -d 2>/dev/null || mktemp -d -t 'charttmpdir') + charttmpdir=${charttmpdir}/chart + mkdir -p "${charttmpdir}" + + FILES=( + "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-base.yaml" + "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-clustermongodbroles.yaml" + "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-pvc-resize.yaml" + "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-telemetry.yaml" + "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-webhook.yaml" + "${charttmpdir}/mongodb-kubernetes/templates/database-roles.yaml" + "${charttmpdir}/mongodb-kubernetes/templates/operator-sa.yaml" + "${charttmpdir}/mongodb-kubernetes/templates/operator.yaml" + ) + + # generate normal public example + helm template --namespace mongodb -f helm_chart/values.yaml helm_chart --output-dir "${charttmpdir}" "$@" + cat "${FILES[@]}" >public/mongodb-kubernetes.yaml + cat "helm_chart/crds/"* >public/crds.yaml + + # generate openshift public example + rm -rf "${charttmpdir:?}"/* + helm template --namespace mongodb -f helm_chart/values.yaml helm_chart --output-dir "${charttmpdir}" --values helm_chart/values-openshift.yaml "$@" + cat "${FILES[@]}" >public/mongodb-kubernetes-openshift.yaml + + # generate openshift files for kustomize used for generating OLM bundle + rm -rf "${charttmpdir:?}"/* + helm template --namespace mongodb -f helm_chart/values.yaml helm_chart --output-dir "${charttmpdir}" --values helm_chart/values-openshift.yaml \ + --set operator.webhook.registerConfiguration=false --set operator.webhook.installClusterRole=false "$@" + + # update kustomize files for OLM bundle with files generated for openshift + cp "${charttmpdir}/mongodb-kubernetes/templates/operator.yaml" config/manager/manager.yaml + cp "${charttmpdir}/mongodb-kubernetes/templates/database-roles.yaml" config/rbac/database-roles.yaml + cp "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-base.yaml" config/rbac/operator-roles-base.yaml + cp "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-clustermongodbroles.yaml" config/rbac/operator-roles-clustermongodbroles.yaml + cp "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-pvc-resize.yaml" config/rbac/operator-roles-pvc-resize.yaml + cp "${charttmpdir}/mongodb-kubernetes/templates/operator-roles-telemetry.yaml" config/rbac/operator-roles-telemetry.yaml + + # generate multi-cluster public example + rm -rf "${charttmpdir:?}"/* + helm template --namespace mongodb -f helm_chart/values.yaml helm_chart --output-dir "${charttmpdir}" --values helm_chart/values-multi-cluster.yaml "$@" + cat "${FILES[@]}" >public/mongodb-kubernetes-multi-cluster.yaml +} + +generate_manifests() { + make manifests + + git add config/crd/bases + git add helm_chart/crds + git add public/crds.yaml +} + +update_values_yaml_files() { + # ensure that all helm values files are up to date. + # shellcheck disable=SC2154 + python scripts/evergreen/release/update_helm_values_files.py + + # commit any changes we made + git add helm_chart/values.yaml + git add helm_chart/values-openshift.yaml + + # these can change if the version of community operator is different + git add go.mod + git add go.sum +} + +update_release_json() { + # ensure that release.json is up 2 date + # shellcheck disable=SC2154 + python scripts/evergreen/release/update_release.py + + # commit any changes we made + git add release.json +} + +regenerate_public_rbac_multi_cluster() { + if [[ -z "${EVERGREEN_MODE:-}" ]]; then + # According to the latest SSDLC recommendations, the CI needs to always check all the files. Not just delta. + git_last_changed=$(git ls-tree -r origin/master --name-only) + else + git_last_changed=$(git diff --cached --name-only --diff-filter=ACM origin/master) + fi + + if echo "${git_last_changed}" | grep -q -e 'cmd/kubectl-mongodb' -e 'pkg/kubectl-mongodb'; then + echo 'regenerating multicluster RBAC public example' + pushd pkg/kubectl-mongodb/common/ + EXPORT_RBAC_SAMPLES="true" go test ./... -run TestPrintingOutRolesServiceAccountsAndRoleBindings + popd + git add public/samples/multi-cluster-cli-gitops + fi +} + +update_licenses() { + if [[ "${MDB_UPDATE_LICENSES:-""}" == "true" ]]; then + echo 'regenerating licenses' + time scripts/evergreen/update_licenses.sh 2>&1 | prepend "update_licenses" + git add LICENSE-THIRD-PARTY + fi +} + +# bg_job_ vars are global; run_job_in_background function is appending to them on each call +bg_job_pids=() +bg_job_pids_with_names=() + +get_job_name() { + local search_pid="$1" + local match + match=$(printf '%s\n' "${bg_job_pids_with_names[@]}" | grep "^${search_pid}:") + echo "${match#*:}" # Remove everything up to and including the colon +} + +# Executes function given on the first argument as background job. +# It's ensuring logs are properly prefixed by the name and +# the job's pid is captured in bg_jobs array in order to wait for completion. +run_job_in_background() { + job_name=$1 + time ${job_name} 2>&1 | prepend "${job_name}" & + + local job_pid=$! + bg_job_pids+=("${job_pid}") + bg_job_pids_with_names+=("${job_pid}:${job_name}") + echo "Started ${job_name} with PID: ${job_pid}" +} + +# Waits for all background jobs stored in bg_job_pids and check their exit codes. +wait_for_all_background_jobs() { + failures=() + for pid in "${bg_job_pids[@]}"; do + wait "${pid}" || { + job_name=$(get_job_name "${pid}") + failures+=(" ${RED}${job_name} (PID ${pid})${NO_COLOR}") + } + done + + if [[ ${#failures[@]} -gt 0 ]]; then + echo -e "${RED}Some generation jobs have failed:${NO_COLOR}" + for failure in "${failures[@]}"; do + echo -e "${failure}" + done + return 1 + fi + + return 0 +} + +validate_snippets() { + scripts/code_snippets/validate_snippets.py +} + +check_kubebuilder_annotations() { + if grep -r "// kubebuilder" --include="*.go" --exclude-dir=vendor .; then + echo "Found erroneous kubebuilder annotation" + return 1 + fi +} + +helm_lint() { + scripts/dev/lint_helm_chart.sh +} + +generate_all() { + title "Running pre-commit jobs in parallel" + + # Phase 1: Run generation jobs - some have dependencies + # update_release and update_values must run before generate_standalone_yaml + run_job_in_background "update_release_json" + run_job_in_background "update_values_yaml_files" + + # These can run in parallel with the above + run_job_in_background "generate_manifests" + run_job_in_background "update_mco_tests" + run_job_in_background "regenerate_public_rbac_multi_cluster" + run_job_in_background "update_licenses" + run_job_in_background "validate_snippets" + run_job_in_background "check_kubebuilder_annotations" + run_job_in_background "helm_lint" + + # Wait for update_release and update_values to complete before generate_standalone_yaml + local release_pid="${bg_job_pids[0]}" + local values_pid="${bg_job_pids[1]}" + + wait "${release_pid}" || true + wait "${values_pid}" || true + + # Now run generate_standalone_yaml (depends on values files) + run_job_in_background "generate_standalone_yaml" + + # Wait for all remaining jobs + if wait_for_all_background_jobs; then + echo -e "${GREEN}All pre-commit jobs completed successfully!${NO_COLOR}" + return 0 + else + return 1 + fi +} + +cmd=${1:-"generate_all"} + +if [[ "${cmd}" == "generate_standalone_yaml" ]]; then + shift 1 + generate_standalone_yaml "$@" +elif [[ "${cmd}" == "generate_all" ]]; then + time generate_all +elif [[ "${cmd}" == "update_mco_tests" ]]; then + update_mco_tests +elif [[ "${cmd}" == "generate_manifests" ]]; then + generate_manifests +elif [[ "${cmd}" == "update_values" ]]; then + update_values_yaml_files +elif [[ "${cmd}" == "update_release" ]]; then + update_release_json +elif [[ "${cmd}" == "update_licenses" ]]; then + update_licenses +fi diff --git a/scripts/dev/regenerate_multicluster_rbac.sh b/scripts/dev/regenerate_multicluster_rbac.sh new file mode 100755 index 000000000..d032991fd --- /dev/null +++ b/scripts/dev/regenerate_multicluster_rbac.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash +# +# Regenerate multicluster RBAC public example if relevant files changed. +# + +set -Eeou pipefail + +source scripts/dev/set_env_context.sh +source scripts/funcs/printing + +if [ -f "${PROJECT_DIR}/venv/bin/activate" ]; then + source "${PROJECT_DIR}/venv/bin/activate" +fi + +git_last_changed=$(git ls-tree -r origin/master --name-only) + +if echo "${git_last_changed}" | grep -q -e 'cmd/kubectl-mongodb' -e 'pkg/kubectl-mongodb'; then + echo 'regenerating multicluster RBAC public example' + pushd pkg/kubectl-mongodb/common/ + EXPORT_RBAC_SAMPLES="true" go test ./... -run TestPrintingOutRolesServiceAccountsAndRoleBindings + popd + git add public/samples/multi-cluster-cli-gitops +fi diff --git a/scripts/evergreen/check_precommit.sh b/scripts/evergreen/check_precommit.sh index 8103ac80a..0714aa36e 100755 --- a/scripts/evergreen/check_precommit.sh +++ b/scripts/evergreen/check_precommit.sh @@ -1,12 +1,36 @@ #!/usr/bin/env bash +# +# CI script to run pre-commit checks in Evergreen. +# This script is called by the Evergreen CI pipeline. +# + set -Eeou pipefail -# Store the current state of the index and working directory -initial_index_state=$(git diff --name-only --cached --diff-filter=AM) +source scripts/dev/set_env_context.sh +source scripts/funcs/printing +# Activate virtual environment if it exists +if [ -f "${PROJECT_DIR}/venv/bin/activate" ]; then + source "${PROJECT_DIR}/venv/bin/activate" +fi + +# Ensure pre-commit is installed +if ! command -v pre-commit &>/dev/null; then + echo "pre-commit not found, installing..." + pip install pre-commit +fi + +title "Running pre-commit checks" + +# Set EVERGREEN_MODE to signal we're in CI export EVERGREEN_MODE=true -.githooks/pre-commit +# Store the current state of the index and working directory +initial_index_state=$(git diff --name-only --cached --diff-filter=AM) + +# Run pre-commit on all files +# --show-diff-on-failure shows what changes hooks would make +pre-commit run --all-files --show-diff-on-failure --verbose echo "Pre-commit hook has completed." # Stage any changes made by the pre-commit hook @@ -23,7 +47,7 @@ if [ "${initial_index_state}" != "${final_index_state}" ]; then echo "Final index state:" echo "${final_index_state}" - echo "We have files that differ after running pre-commit, please run make precommit-with-licenses locally" + echo "We have files that differ after running pre-commit, please run make precommit locally" echo "Full diff: " git diff --cached --diff-filter=AM echo "The following files differ: " diff --git a/scripts/evergreen/lint_code.sh b/scripts/evergreen/lint_code.sh index 4cc7863cf..05d6a8881 100755 --- a/scripts/evergreen/lint_code.sh +++ b/scripts/evergreen/lint_code.sh @@ -1,6 +1,8 @@ #!/usr/bin/env bash set -Eeou pipefail +source scripts/dev/set_env_context.sh + # Set required version required_version="v2.0.2" diff --git a/scripts/evergreen/operator-sdk/prepare-openshift-bundles-for-e2e.sh b/scripts/evergreen/operator-sdk/prepare-openshift-bundles-for-e2e.sh index 7b5525794..58f4f34d7 100755 --- a/scripts/evergreen/operator-sdk/prepare-openshift-bundles-for-e2e.sh +++ b/scripts/evergreen/operator-sdk/prepare-openshift-bundles-for-e2e.sh @@ -47,7 +47,7 @@ generate_helm_charts() { helm_set_values+=("--set" "${param}") done - .githooks/pre-commit generate_standalone_yaml "${helm_set_values[@]}" + scripts/dev/generate_files.sh generate_standalone_yaml "${helm_set_values[@]}" } function clone_git_repo_into_temp() { From c14c0302b8a980dffdd4f108b76514fbf35320fb Mon Sep 17 00:00:00 2001 From: Nam Nguyen Date: Thu, 18 Dec 2025 15:54:55 +0100 Subject: [PATCH 2/2] chore: Apply pre-commit hooks (black, isort, shellcheck) - Auto-format Python files with black and isort - Apply shellcheck fixes to shell scripts --- .../scripts/clean-failed-namespaces.sh | 10 ++-- docker/delve-sidecar/attach-delve.sh | 4 +- docker/mongodb-agent/agent-launcher-shim.sh | 8 +-- docker/mongodb-agent/dummy-probe.sh | 22 ++++---- docker/mongodb-agent/setup-agent-files.sh | 34 +++++------ .../content/probe.sh | 4 +- .../kubetester/__init__.py | 5 +- .../kubetester/certs.py | 14 +---- .../kubetester/mongodb.py | 7 +-- .../kubetester/omtester.py | 7 +-- .../kubetester/opsmanager.py | 18 +----- .../authentication/helper_switch_project.py | 5 +- .../authentication/mongodb_custom_roles.py | 8 +-- ...plica_set_ldap_group_dn_with_x509_agent.py | 6 +- .../replica_set_ldap_switch_project.py | 10 +--- .../replica_set_scram_sha_1_switch_project.py | 9 +-- ...eplica_set_scram_sha_256_switch_project.py | 9 +-- .../replica_set_scram_sha_and_x509.py | 6 +- ...replica_set_scram_x509_internal_cluster.py | 6 +- .../replica_set_x509_switch_project.py | 14 +---- .../replica_set_x509_to_scram_transition.py | 6 +- .../sharded_cluster_ldap_switch_project.py | 10 +--- .../sharded_cluster_oidc_m2m_group.py | 5 +- .../sharded_cluster_oidc_m2m_user.py | 5 +- ...rded_cluster_scram_sha_1_switch_project.py | 9 +-- ...ed_cluster_scram_sha_256_switch_project.py | 9 +-- .../sharded_cluster_scram_sha_and_x509.py | 6 +- .../sharded_cluster_x509_switch_project.py | 14 +---- .../tests/conftest.py | 6 +- .../tests/multicluster/conftest.py | 8 +-- .../multi_2_cluster_clusterwide_replicaset.py | 7 +-- .../multi_cluster_backup_restore.py | 6 +- .../multicluster/multi_cluster_cli_recover.py | 5 +- .../multicluster/multi_cluster_clusterwide.py | 5 +- .../multi_cluster_reconcile_races.py | 8 +-- ...multi_cluster_recover_network_partition.py | 5 +- .../multicluster/multi_cluster_replica_set.py | 6 +- .../multi_cluster_scale_up_cluster.py | 8 +-- .../multicluster_appdb_disaster_recovery.py | 12 +--- ...ticluster_appdb_s3_based_backup_restore.py | 11 +--- ...er_appdb_upgrade_downgrade_v1_27_to_mck.py | 5 +- .../multicluster_om_networking_clusterwide.py | 4 +- .../multicluster_om_appdb_cleanup.py | 15 +---- .../multicluster_om_appdb_no_mesh.py | 9 +-- ...terwide_operator_not_in_mesh_networking.py | 9 +-- .../multicluster_shardedcluster/__init__.py | 4 +- ...multi_cluster_sharded_disaster_recovery.py | 23 ++------ ...r_sharded_external_access_no_ext_domain.py | 5 +- .../multi_cluster_sharded_geo_sharding.py | 4 +- .../multi_cluster_sharded_tls.py | 13 +---- .../multi_cluster_sharded_tls_no_mesh.py | 7 +-- .../tests/operator/operator_proxy.py | 4 +- .../opsmanager/om_localmode_single_pv.py | 5 +- .../opsmanager/om_ops_manager_backup_kmip.py | 6 +- .../om_ops_manager_backup_restore.py | 6 +- .../om_ops_manager_backup_restore_minio.py | 12 +--- .../om_ops_manager_backup_sharded_cluster.py | 15 +---- .../opsmanager/om_ops_manager_backup_tls.py | 6 +- .../om_ops_manager_backup_tls_custom_ca.py | 13 +---- .../tests/opsmanager/om_ops_manager_scale.py | 6 +- .../opsmanager/om_ops_manager_upgrade.py | 17 +----- .../om_appdb_external_connectivity.py | 6 +- .../om_ops_manager_backup_light.py | 6 +- .../tests/replicaset/replica_set.py | 6 +- .../replicaset/replica_set_agent_flags.py | 13 +---- .../tests/replicaset/replica_set_groups.py | 7 +-- .../replica_set_process_hostnames.py | 6 +- .../replica_set_upgrade_downgrade.py | 6 +- .../tests/search/search_enterprise_tls.py | 8 +-- .../search_enterprise_x509_cluster_auth.py | 6 +- .../sharded_cluster_agent_flags.py | 6 +- .../sharded_cluster_migration.py | 11 +--- .../sharded_cluster_shard_overrides.py | 6 +- ..._cluster_single_cluster_external_access.py | 11 +--- .../tests/standalone/standalone_groups.py | 7 +-- ...onfigure_tls_and_x509_simultaneously_rs.py | 6 +- ...onfigure_tls_and_x509_simultaneously_sc.py | 5 +- ..._tls_and_x509_simultaneously_standalone.py | 6 +- .../tls/tls_replica_set_process_hostnames.py | 6 +- .../tests/tls/tls_sc_requiressl_custom_ca.py | 5 +- .../tls/tls_sharded_cluster_certs_prefix.py | 5 +- .../tls/tls_x509_configure_all_options_sc.py | 6 +- .../tests/tls/tls_x509_rs.py | 6 +- .../tests/tls/tls_x509_user_connectivity.py | 6 +- ...appdb_tls_operator_upgrade_v1_32_to_mck.py | 7 +-- .../tests/upgrades/meko_mck_upgrade.py | 10 +--- .../tests/users/users_addition_removal.py | 7 +-- .../mongodb_deployment_vault.py | 14 +---- .../tests/vaultintegration/om_backup_vault.py | 8 +-- .../vaultintegration/om_deployment_vault.py | 8 +-- generate_ssdlc_report.py | 5 +- .../scripts/dev/setup_sa.sh | 7 ++- multi_cluster/tools/install_istio.sh | 42 ++++++++------ multi_cluster/tools/install_istio_central.sh | 2 +- scripts/preflight_images.py | 4 +- scripts/python/find_test_variants_test.py | 6 +- scripts/release/argparse_utils.py | 5 +- scripts/release/atomic_pipeline.py | 16 +----- scripts/release/build/build_info.py | 2 +- scripts/release/build/build_scenario.py | 2 + scripts/release/build/image_build_process.py | 56 ++++++++----------- scripts/release/calculate_next_version.py | 6 +- scripts/release/create_changelog.py | 7 +-- .../kubectl_mongodb/build_kubectl_plugin.py | 12 +--- .../download_kubectl_plugin.py | 11 +--- .../kubectl_mongodb/promote_kubectl_plugin.py | 9 +-- scripts/release/pipeline.py | 18 ++---- scripts/release/release_info.py | 8 +-- scripts/release/release_notes.py | 14 +---- scripts/release/tests/release_notes_test.py | 5 +- scripts/release/tests/version_test.py | 4 +- scripts/release/version.py | 6 +- 112 files changed, 241 insertions(+), 761 deletions(-) diff --git a/docker/cluster-cleaner/scripts/clean-failed-namespaces.sh b/docker/cluster-cleaner/scripts/clean-failed-namespaces.sh index 6fc607021..aeee29e9a 100755 --- a/docker/cluster-cleaner/scripts/clean-failed-namespaces.sh +++ b/docker/cluster-cleaner/scripts/clean-failed-namespaces.sh @@ -4,15 +4,15 @@ touch error.log tail -F error.log & delete_resources_safely() { - resource_type="$1" - namespace="$2" + resource_type="${1}" + namespace="${2}" - echo "Attempting normal deletion of $resource_type in $namespace..." + echo "Attempting normal deletion of ${resource_type} in ${namespace}..." kubectl delete "${resource_type}" --all -n "${namespace}" --wait=true --timeout=10s 2>error.log|| true # Check if any resources are still stuck # Let's not fail here and continue deletion - resources=$(kubectl get "$resource_type" -n "${namespace}" --no-headers -o custom-columns=":metadata.name" 2>error.log || true) + resources=$(kubectl get "${resource_type}" -n "${namespace}" --no-headers -o custom-columns=":metadata.name" 2>error.log || true) for resource in ${resources}; do echo "${resource_type}/${resource} is still present, force deleting..." @@ -39,7 +39,7 @@ kubectl get namespace -l "${LABELS}" -o name for namespace in $(kubectl get namespace -l "${LABELS}" -o name 2>error.log); do creation_time=$(kubectl get "${namespace}" -o jsonpath='{.metadata.creationTimestamp}' 2>error.log || echo "") - if [ -z "$creation_time" ]; then + if [ -z "${creation_time}" ]; then echo "Namespace ${namespace} does not exist or has no creation timestamp, skipping." continue fi diff --git a/docker/delve-sidecar/attach-delve.sh b/docker/delve-sidecar/attach-delve.sh index 042bfc190..78baada2c 100644 --- a/docker/delve-sidecar/attach-delve.sh +++ b/docker/delve-sidecar/attach-delve.sh @@ -8,6 +8,6 @@ while ! pgrep -f "mongodb-mms-automation-agent" > /dev/null; do done APP_PID=$(pgrep -f "mongodb-mms-automation-agent") -echo "Found app with PID: $APP_PID, attaching Delve..." +echo "Found app with PID: ${APP_PID}, attaching Delve..." -dlv attach "$APP_PID" --headless --listen=:2345 --api-version=2 --accept-multiclient --continue +dlv attach "${APP_PID}" --headless --listen=:2345 --api-version=2 --accept-multiclient --continue diff --git a/docker/mongodb-agent/agent-launcher-shim.sh b/docker/mongodb-agent/agent-launcher-shim.sh index 4d735bad6..b0e4253e3 100755 --- a/docker/mongodb-agent/agent-launcher-shim.sh +++ b/docker/mongodb-agent/agent-launcher-shim.sh @@ -9,13 +9,13 @@ SCRIPTS_DIR="/opt/scripts" # Function to start the agent launcher start_agent_launcher() { echo "Starting agent launcher..." - echo "Final contents of $SCRIPTS_DIR:" - ls -la "$SCRIPTS_DIR" + echo "Final contents of ${SCRIPTS_DIR}:" + ls -la "${SCRIPTS_DIR}" - if [[ -f "$SCRIPTS_DIR/agent-launcher.sh" ]]; then + if [[ -f "${SCRIPTS_DIR}/agent-launcher.sh" ]]; then echo "Found agent-launcher.sh, executing..." echo "Note: agent-launcher.sh will become PID 1 and handle all signal processing including cleanup" - exec "$SCRIPTS_DIR/agent-launcher.sh" + exec "${SCRIPTS_DIR}/agent-launcher.sh" else echo "ERROR: agent-launcher.sh not found" exit 1 diff --git a/docker/mongodb-agent/dummy-probe.sh b/docker/mongodb-agent/dummy-probe.sh index 8fe84138f..48280e68c 100755 --- a/docker/mongodb-agent/dummy-probe.sh +++ b/docker/mongodb-agent/dummy-probe.sh @@ -4,34 +4,34 @@ find_init_container() { local pid pid=$(pgrep -f "agent-utilities-holder_marker" | head -n1) - if [[ -n "$pid" && -d "/proc/$pid/root/probes" ]]; then - echo "$pid" + if [[ -n "${pid}" && -d "/proc/${pid}/root/probes" ]]; then + echo "${pid}" return 0 fi return 1 } execute_liveness_probe() { - local init_pid="$1" - local init_probe_path="/proc/$init_pid/root/probes/probe.sh" + local init_pid="${1}" + local init_probe_path="/proc/${init_pid}/root/probes/probe.sh" - if [[ ! -f "$init_probe_path" ]]; then - echo "ERROR: Liveness probe script not found at $init_probe_path" + if [[ ! -f "${init_probe_path}" ]]; then + echo "ERROR: Liveness probe script not found at ${init_probe_path}" exit 1 - elif [[ ! -x "$init_probe_path" ]]; then - echo "ERROR: Liveness probe script not executable at $init_probe_path" + elif [[ ! -x "${init_probe_path}" ]]; then + echo "ERROR: Liveness probe script not executable at ${init_probe_path}" exit 1 else # Execute the actual probe script from the init-database container # This works because of shared process namespace - the probe can see all processes - exec "$init_probe_path" + exec "${init_probe_path}" fi } # Main execution if init_pid=$(find_init_container); then - echo "Found init container with PID: $init_pid, executing liveness probe..." - execute_liveness_probe "$init_pid" + echo "Found init container with PID: ${init_pid}, executing liveness probe..." + execute_liveness_probe "${init_pid}" else echo "WARNING: Init container not found, falling back to basic liveness check" # Fallback: if we can't find the init container, just check if this container is alive diff --git a/docker/mongodb-agent/setup-agent-files.sh b/docker/mongodb-agent/setup-agent-files.sh index 46babe6f9..84aac4ec3 100755 --- a/docker/mongodb-agent/setup-agent-files.sh +++ b/docker/mongodb-agent/setup-agent-files.sh @@ -8,8 +8,8 @@ SCRIPTS_DIR="/opt/scripts" # readiness always returns failure setup_dummy_probes() { echo "Setting up dummy probe scripts..." - cp --remove-destination /usr/local/bin/dummy-probe.sh "$SCRIPTS_DIR/probe.sh" - cp --remove-destination /usr/local/bin/dummy-readinessprobe "$SCRIPTS_DIR/readinessprobe" + cp --remove-destination /usr/local/bin/dummy-probe.sh "${SCRIPTS_DIR}/probe.sh" + cp --remove-destination /usr/local/bin/dummy-readinessprobe "${SCRIPTS_DIR}/readinessprobe" echo "Dummy probe scripts ready" } @@ -18,23 +18,23 @@ find_init_container() { for i in {1..150}; do local pid pid=$(pgrep -f "agent-utilities-holder_marker" | head -n1) - if [[ -n "$pid" && -d "/proc/$pid/root/scripts" ]]; then - echo "$pid" + if [[ -n "${pid}" && -d "/proc/${pid}/root/scripts" ]]; then + echo "${pid}" return 0 fi - echo "Waiting for init container... (attempt $i)" >&2 + echo "Waiting for init container... (attempt ${i})" >&2 sleep 2 done return 1 } link_agent_scripts() { - local init_scripts_dir="$1" + local init_scripts_dir="${1}" echo "Linking agent launcher scripts..." for script in agent-launcher.sh agent-launcher-lib.sh; do - ln -sf "$init_scripts_dir/$script" "$SCRIPTS_DIR/$script" - echo "Linked $script" + ln -sf "${init_scripts_dir}/${script}" "${SCRIPTS_DIR}/${script}" + echo "Linked ${script}" done } @@ -44,26 +44,26 @@ main() { setup_dummy_probes if init_pid=$(find_init_container); then - echo "Found init container with PID: $init_pid" + echo "Found init container with PID: ${init_pid}" - init_root="/proc/$init_pid/root" - init_scripts="$init_root/scripts" - init_probes="$init_root/probes" + init_root="/proc/${init_pid}/root" + init_scripts="${init_root}/scripts" + init_probes="${init_root}/probes" # Verify scripts directory exists - if [[ ! -d "$init_scripts" ]]; then - echo "ERROR: Scripts directory $init_scripts not found" + if [[ ! -d "${init_scripts}" ]]; then + echo "ERROR: Scripts directory ${init_scripts} not found" exit 1 fi # Verify probes directory exists - if [[ ! -d "$init_probes" ]]; then - echo "ERROR: Probes directory $init_probes not found" + if [[ ! -d "${init_probes}" ]]; then + echo "ERROR: Probes directory ${init_probes} not found" exit 1 fi # Link scripts from init container - link_agent_scripts "$init_scripts" + link_agent_scripts "${init_scripts}" echo "File setup completed successfully" exit 0 diff --git a/docker/mongodb-kubernetes-init-database/content/probe.sh b/docker/mongodb-kubernetes-init-database/content/probe.sh index 137522b0f..5c0e649ef 100755 --- a/docker/mongodb-kubernetes-init-database/content/probe.sh +++ b/docker/mongodb-kubernetes-init-database/content/probe.sh @@ -2,9 +2,9 @@ set -Eeou pipefail check_process() { - local check_process=$1 + local check_process=${1} # shellcheck disable=SC2009 - ps -ax | grep -v " grep " | grep -v jq | grep -v tail | grep "$check_process" + ps -ax | grep -v " grep " | grep -v jq | grep -v tail | grep "${check_process}" return $? } diff --git a/docker/mongodb-kubernetes-tests/kubetester/__init__.py b/docker/mongodb-kubernetes-tests/kubetester/__init__.py index dda3f01b7..8194d1f4a 100644 --- a/docker/mongodb-kubernetes-tests/kubetester/__init__.py +++ b/docker/mongodb-kubernetes-tests/kubetester/__init__.py @@ -11,10 +11,7 @@ # Re-exports from .kubetester import fixture as find_fixture -from .security_context import ( - assert_pod_container_security_context, - assert_pod_security_context, -) +from .security_context import assert_pod_container_security_context, assert_pod_security_context def create_secret( diff --git a/docker/mongodb-kubernetes-tests/kubetester/certs.py b/docker/mongodb-kubernetes-tests/kubetester/certs.py index 1f567aff4..3d7981ae2 100644 --- a/docker/mongodb-kubernetes-tests/kubetester/certs.py +++ b/docker/mongodb-kubernetes-tests/kubetester/certs.py @@ -13,22 +13,12 @@ from kubeobject import CustomObject from kubernetes import client from kubernetes.client.rest import ApiException -from kubetester import ( - create_secret, - delete_secret, - kubetester, - random_k8s_name, - read_secret, -) +from kubetester import create_secret, delete_secret, kubetester, random_k8s_name, read_secret from kubetester.kubetester import KubernetesTester from kubetester.phase import Phase from opentelemetry import trace from tests import test_logger -from tests.vaultintegration import ( - store_secret_in_vault, - vault_namespace_name, - vault_sts_name, -) +from tests.vaultintegration import store_secret_in_vault, vault_namespace_name, vault_sts_name TRACER = trace.get_tracer("evergreen-agent") logger = test_logger.get_test_logger(__name__) diff --git a/docker/mongodb-kubernetes-tests/kubetester/mongodb.py b/docker/mongodb-kubernetes-tests/kubetester/mongodb.py index a523f9975..6dd92343c 100644 --- a/docker/mongodb-kubernetes-tests/kubetester/mongodb.py +++ b/docker/mongodb-kubernetes-tests/kubetester/mongodb.py @@ -23,12 +23,7 @@ from .mongodb_common import MongoDBCommon from .mongodb_utils_state import in_desired_state -from .mongotester import ( - MongoTester, - ReplicaSetTester, - ShardedClusterTester, - StandaloneTester, -) +from .mongotester import MongoTester, ReplicaSetTester, ShardedClusterTester, StandaloneTester from .opsmanager import MongoDBOpsManager from .phase import Phase diff --git a/docker/mongodb-kubernetes-tests/kubetester/omtester.py b/docker/mongodb-kubernetes-tests/kubetester/omtester.py index e178e5c0b..676911caf 100644 --- a/docker/mongodb-kubernetes-tests/kubetester/omtester.py +++ b/docker/mongodb-kubernetes-tests/kubetester/omtester.py @@ -15,12 +15,7 @@ import requests import semver from kubetester.automation_config_tester import AutomationConfigTester -from kubetester.kubetester import ( - KubernetesTester, - build_agent_auth, - build_auth, - run_periodically, -) +from kubetester.kubetester import KubernetesTester, build_agent_auth, build_auth, run_periodically from kubetester.mongotester import BackgroundHealthChecker from kubetester.om_queryable_backups import OMQueryableBackup from opentelemetry import trace diff --git a/docker/mongodb-kubernetes-tests/kubetester/opsmanager.py b/docker/mongodb-kubernetes-tests/kubetester/opsmanager.py index de536f15d..7ac360a6d 100644 --- a/docker/mongodb-kubernetes-tests/kubetester/opsmanager.py +++ b/docker/mongodb-kubernetes-tests/kubetester/opsmanager.py @@ -10,18 +10,9 @@ import requests from kubeobject import CustomObject from kubernetes.client.rest import ApiException -from kubetester import ( - create_configmap, - create_or_update_secret, - read_secret, -) +from kubetester import create_configmap, create_or_update_secret, read_secret from kubetester.automation_config_tester import AutomationConfigTester -from kubetester.kubetester import ( - KubernetesTester, - build_list_of_hosts, - get_pods, - is_default_architecture_static, -) +from kubetester.kubetester import KubernetesTester, build_list_of_hosts, get_pods, is_default_architecture_static from kubetester.mongodb_common import MongoDBCommon from kubetester.mongodb_utils_state import in_desired_state from kubetester.mongotester import MongoTester, MultiReplicaSetTester, ReplicaSetTester @@ -30,10 +21,7 @@ from opentelemetry import trace from requests.auth import HTTPDigestAuth from tests import test_logger -from tests.common.multicluster.multicluster_utils import ( - multi_cluster_pod_names, - multi_cluster_service_names, -) +from tests.common.multicluster.multicluster_utils import multi_cluster_pod_names, multi_cluster_service_names from tests.conftest import ( get_central_cluster_client, get_member_cluster_api_client, diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/helper_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/helper_switch_project.py index 6530df4fa..59be3c69d 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/helper_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/helper_switch_project.py @@ -1,7 +1,4 @@ -from kubetester import ( - create_or_update_configmap, - read_configmap, -) +from kubetester import create_or_update_configmap, read_configmap from kubetester.mongodb import MongoDB from kubetester.mongotester import ReplicaSetTester, ShardedClusterTester from kubetester.phase import Phase diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/mongodb_custom_roles.py b/docker/mongodb-kubernetes-tests/tests/authentication/mongodb_custom_roles.py index 9665e6169..51480e0e4 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/mongodb_custom_roles.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/mongodb_custom_roles.py @@ -1,10 +1,4 @@ -from kubetester import ( - create_or_update_configmap, - find_fixture, - read_configmap, - try_load, - wait_until, -) +from kubetester import create_or_update_configmap, find_fixture, read_configmap, try_load, wait_until from kubetester.automation_config_tester import AutomationConfigTester from kubetester.mongodb import MongoDB, Phase from kubetester.mongodb_multi import MongoDBMulti diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_ldap_group_dn_with_x509_agent.py b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_ldap_group_dn_with_x509_agent.py index 5be38e868..22b2c45c3 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_ldap_group_dn_with_x509_agent.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_ldap_group_dn_with_x509_agent.py @@ -5,11 +5,7 @@ from kubernetes import client from kubernetes.client.rest import ApiException from kubetester import create_secret, find_fixture, kubetester -from kubetester.certs import ( - ISSUER_CA_NAME, - create_x509_agent_tls_certs, - create_x509_mongodb_tls_certs, -) +from kubetester.certs import ISSUER_CA_NAME, create_x509_agent_tls_certs, create_x509_mongodb_tls_certs from kubetester.ldap import LDAPUser, OpenLDAP from kubetester.mongodb import MongoDB from kubetester.mongodb_user import MongoDBUser, generic_user diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_ldap_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_ldap_switch_project.py index acfba009b..abc22013f 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_ldap_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_ldap_switch_project.py @@ -1,11 +1,7 @@ from typing import List import pytest -from kubetester import ( - create_secret, - find_fixture, - try_load, -) +from kubetester import create_secret, find_fixture, try_load from kubetester.certs import create_mongodb_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.ldap import LDAP_AUTHENTICATION_MECHANISM, LDAPUser, OpenLDAP @@ -13,9 +9,7 @@ from kubetester.mongodb_user import MongoDBUser, Role, generic_user from kubetester.phase import Phase -from .helper_switch_project import ( - SwitchProjectHelper, -) +from .helper_switch_project import SwitchProjectHelper MDB_RESOURCE_NAME = "replica-set-ldap-switch-project" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_1_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_1_switch_project.py index b0baaaaf9..02815f277 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_1_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_1_switch_project.py @@ -1,17 +1,12 @@ import pytest -from kubetester import ( - create_or_update_secret, - try_load, -) +from kubetester import create_or_update_secret, try_load from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB from kubetester.mongodb_user import MongoDBUser from kubetester.phase import Phase -from .helper_switch_project import ( - SwitchProjectHelper, -) +from .helper_switch_project import SwitchProjectHelper MDB_RESOURCE_NAME = "replica-set-scram-sha-1-switch-project" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_256_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_256_switch_project.py index 3126117a0..489e4106f 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_256_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_256_switch_project.py @@ -1,17 +1,12 @@ import pytest -from kubetester import ( - create_or_update_secret, - try_load, -) +from kubetester import create_or_update_secret, try_load from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB from kubetester.mongodb_user import MongoDBUser from kubetester.phase import Phase -from .helper_switch_project import ( - SwitchProjectHelper, -) +from .helper_switch_project import SwitchProjectHelper MDB_RESOURCE_NAME = "replica-set-scram-sha-256-switch-project" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_and_x509.py b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_and_x509.py index 7c5ebb4cd..2e7e19c58 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_and_x509.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_sha_and_x509.py @@ -2,11 +2,7 @@ import pytest from kubetester.automation_config_tester import AutomationConfigTester -from kubetester.certs import ( - ISSUER_CA_NAME, - create_mongodb_tls_certs, - create_x509_user_cert, -) +from kubetester.certs import ISSUER_CA_NAME, create_mongodb_tls_certs, create_x509_user_cert from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_x509_internal_cluster.py b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_x509_internal_cluster.py index aa35812b0..4cdf84a54 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_x509_internal_cluster.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_scram_x509_internal_cluster.py @@ -1,10 +1,6 @@ from kubetester import create_or_update_secret, read_secret from kubetester.automation_config_tester import AutomationConfigTester -from kubetester.certs import ( - ISSUER_CA_NAME, - create_x509_agent_tls_certs, - create_x509_mongodb_tls_certs, -) +from kubetester.certs import ISSUER_CA_NAME, create_x509_agent_tls_certs, create_x509_mongodb_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_x509_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_x509_switch_project.py index e0851e8aa..b92263dfd 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_x509_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_x509_switch_project.py @@ -1,19 +1,11 @@ import pytest -from kubetester import ( - try_load, -) -from kubetester.certs import ( - ISSUER_CA_NAME, - create_agent_tls_certs, - create_mongodb_tls_certs, -) +from kubetester import try_load +from kubetester.certs import ISSUER_CA_NAME, create_agent_tls_certs, create_mongodb_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB -from .helper_switch_project import ( - SwitchProjectHelper, -) +from .helper_switch_project import SwitchProjectHelper MDB_RESOURCE_NAME = "replica-set-x509-switch-project" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_x509_to_scram_transition.py b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_x509_to_scram_transition.py index f16917a47..04079bf39 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_x509_to_scram_transition.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/replica_set_x509_to_scram_transition.py @@ -3,11 +3,7 @@ import pytest from kubetester import try_load from kubetester.automation_config_tester import AutomationConfigTester -from kubetester.certs import ( - ISSUER_CA_NAME, - create_agent_tls_certs, - create_mongodb_tls_certs, -) +from kubetester.certs import ISSUER_CA_NAME, create_agent_tls_certs, create_mongodb_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_ldap_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_ldap_switch_project.py index 2ef7f7acc..ea63471aa 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_ldap_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_ldap_switch_project.py @@ -1,20 +1,14 @@ from typing import Dict, List import pytest -from kubetester import ( - find_fixture, - try_load, - wait_until, -) +from kubetester import find_fixture, try_load, wait_until from kubetester.kubetester import KubernetesTester from kubetester.ldap import LDAP_AUTHENTICATION_MECHANISM, LDAPUser, OpenLDAP from kubetester.mongodb import MongoDB from kubetester.mongodb_user import MongoDBUser, Role, generic_user from kubetester.phase import Phase -from .helper_switch_project import ( - SwitchProjectHelper, -) +from .helper_switch_project import SwitchProjectHelper MDB_RESOURCE_NAME = "sharded-cluster-ldap-switch-project" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_oidc_m2m_group.py b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_oidc_m2m_group.py index da03cfa85..a6cce820e 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_oidc_m2m_group.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_oidc_m2m_group.py @@ -9,10 +9,7 @@ from kubetester.mongotester import ShardedClusterTester from kubetester.phase import Phase from pytest import fixture -from tests.shardedcluster.conftest import ( - enable_multi_cluster_deployment, - get_mongos_service_names, -) +from tests.shardedcluster.conftest import enable_multi_cluster_deployment, get_mongos_service_names MDB_RESOURCE = "oidc-sharded-cluster-replica-set" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_oidc_m2m_user.py b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_oidc_m2m_user.py index 98413ae1b..612f3b23c 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_oidc_m2m_user.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_oidc_m2m_user.py @@ -10,10 +10,7 @@ from kubetester.mongotester import ShardedClusterTester from kubetester.phase import Phase from pytest import fixture -from tests.shardedcluster.conftest import ( - enable_multi_cluster_deployment, - get_mongos_service_names, -) +from tests.shardedcluster.conftest import enable_multi_cluster_deployment, get_mongos_service_names MDB_RESOURCE = "oidc-sharded-cluster-replica-set" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_1_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_1_switch_project.py index a903e71bf..f78f9dcfb 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_1_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_1_switch_project.py @@ -1,17 +1,12 @@ import pytest -from kubetester import ( - create_or_update_secret, - try_load, -) +from kubetester import create_or_update_secret, try_load from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB from kubetester.mongodb_user import MongoDBUser from kubetester.phase import Phase -from .helper_switch_project import ( - SwitchProjectHelper, -) +from .helper_switch_project import SwitchProjectHelper MDB_RESOURCE_NAME = "sharded-cluster-scram-sha-1-switch-project" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_256_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_256_switch_project.py index d8783d896..6d4249d8d 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_256_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_256_switch_project.py @@ -1,17 +1,12 @@ import pytest -from kubetester import ( - create_or_update_secret, - try_load, -) +from kubetester import create_or_update_secret, try_load from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB from kubetester.mongodb_user import MongoDBUser from kubetester.phase import Phase -from .helper_switch_project import ( - SwitchProjectHelper, -) +from .helper_switch_project import SwitchProjectHelper MDB_RESOURCE_NAME = "sharded-cluster-scram-sha-256-switch-project" diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_and_x509.py b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_and_x509.py index 56d4d8cc4..d7c30d61f 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_and_x509.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_scram_sha_and_x509.py @@ -3,11 +3,7 @@ import pytest from kubetester import create_secret, try_load from kubetester.automation_config_tester import AutomationConfigTester -from kubetester.certs import ( - create_sharded_cluster_certs, - create_x509_agent_tls_certs, - create_x509_user_cert, -) +from kubetester.certs import create_sharded_cluster_certs, create_x509_agent_tls_certs, create_x509_user_cert from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB diff --git a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_x509_switch_project.py b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_x509_switch_project.py index 5187216b4..52c0f0d02 100644 --- a/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_x509_switch_project.py +++ b/docker/mongodb-kubernetes-tests/tests/authentication/sharded_cluster_x509_switch_project.py @@ -1,19 +1,11 @@ import pytest -from kubetester import ( - try_load, -) -from kubetester.certs import ( - ISSUER_CA_NAME, - create_sharded_cluster_certs, - create_x509_agent_tls_certs, -) +from kubetester import try_load +from kubetester.certs import ISSUER_CA_NAME, create_sharded_cluster_certs, create_x509_agent_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB -from .helper_switch_project import ( - SwitchProjectHelper, -) +from .helper_switch_project import SwitchProjectHelper MDB_RESOURCE_NAME = "sharded-cluster-x509-switch-project" diff --git a/docker/mongodb-kubernetes-tests/tests/conftest.py b/docker/mongodb-kubernetes-tests/tests/conftest.py index 4af1db0b4..c4dfa44a0 100644 --- a/docker/mongodb-kubernetes-tests/tests/conftest.py +++ b/docker/mongodb-kubernetes-tests/tests/conftest.py @@ -20,11 +20,7 @@ update_configmap, ) from kubetester.awss3client import AwsS3Client -from kubetester.helm import ( - helm_chart_path_and_version, - helm_install_from_chart, - helm_repo_add, -) +from kubetester.helm import helm_chart_path_and_version, helm_install_from_chart, helm_repo_add from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as _fixture from kubetester.kubetester import running_locally diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/conftest.py b/docker/mongodb-kubernetes-tests/tests/multicluster/conftest.py index 5b5100fe5..48d7f7dac 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/conftest.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/conftest.py @@ -20,13 +20,7 @@ ) from kubetester.multicluster_client import MultiClusterClient from pytest import fixture -from tests.authentication.conftest import ( - AUTOMATION_AGENT_NAME, - LDAP_NAME, - LDAP_PASSWORD, - ldap_host, - openldap_install, -) +from tests.authentication.conftest import AUTOMATION_AGENT_NAME, LDAP_NAME, LDAP_PASSWORD, ldap_host, openldap_install from tests.conftest import ( create_issuer, get_api_servers_from_test_pod_kubeconfig, diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_2_cluster_clusterwide_replicaset.py b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_2_cluster_clusterwide_replicaset.py index 277f3fc9f..20bc00e48 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_2_cluster_clusterwide_replicaset.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_2_cluster_clusterwide_replicaset.py @@ -2,12 +2,7 @@ import kubernetes import pytest -from kubetester import ( - create_or_update_configmap, - create_or_update_secret, - read_configmap, - read_secret, -) +from kubetester import create_or_update_configmap, create_or_update_secret, read_configmap, read_secret from kubetester.certs_mongodb_multi import create_multi_cluster_mongodb_tls_certs from kubetester.kubetester import ensure_ent_version from kubetester.kubetester import fixture as yaml_fixture diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_backup_restore.py b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_backup_restore.py index 981df49d4..b46636d0e 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_backup_restore.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_backup_restore.py @@ -27,11 +27,7 @@ from kubetester.opsmanager import MongoDBOpsManager from kubetester.phase import Phase from pytest import fixture, mark -from tests.conftest import ( - assert_data_got_restored, - update_coredns_hosts, - wait_for_primary, -) +from tests.conftest import assert_data_got_restored, update_coredns_hosts, wait_for_primary TEST_DATA = {"_id": "unique_id", "name": "John", "address": "Highway 37", "age": 30} diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_cli_recover.py b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_cli_recover.py index 16067e7ca..dbdb12c5d 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_cli_recover.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_cli_recover.py @@ -8,10 +8,7 @@ from kubetester.multicluster_client import MultiClusterClient from kubetester.operator import Operator from kubetester.phase import Phase -from tests.conftest import ( - run_kube_config_creation_tool, - run_multi_cluster_recovery_tool, -) +from tests.conftest import run_kube_config_creation_tool, run_multi_cluster_recovery_tool from tests.constants import MULTI_CLUSTER_OPERATOR_NAME from tests.multicluster.conftest import cluster_spec_list diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_clusterwide.py b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_clusterwide.py index bda9be3c2..88f9f088a 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_clusterwide.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_clusterwide.py @@ -12,10 +12,7 @@ from kubetester.operator import Operator from kubetester.phase import Phase from pytest import fixture, mark -from tests.conftest import ( - _install_multi_cluster_operator, - run_kube_config_creation_tool, -) +from tests.conftest import _install_multi_cluster_operator, run_kube_config_creation_tool from ..constants import MULTI_CLUSTER_OPERATOR_NAME from . import prepare_multi_cluster_namespaces diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_reconcile_races.py b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_reconcile_races.py index 2d01409c8..8682d9f30 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_reconcile_races.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_reconcile_races.py @@ -5,13 +5,7 @@ import kubernetes.client import pytest -from kubetester import ( - create_or_update_configmap, - create_or_update_secret, - find_fixture, - read_service, - try_load, -) +from kubetester import create_or_update_configmap, create_or_update_secret, find_fixture, read_service, try_load from kubetester.kubetester import KubernetesTester, ensure_ent_version from kubetester.kubetester import fixture as yaml_fixture from kubetester.mongodb import MongoDB diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_recover_network_partition.py b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_recover_network_partition.py index 28b910efb..a4cd7e529 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_recover_network_partition.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_recover_network_partition.py @@ -10,10 +10,7 @@ from kubetester.operator import Operator from kubetester.phase import Phase from pytest import fixture, mark -from tests.conftest import ( - get_member_cluster_api_client, - run_multi_cluster_recovery_tool, -) +from tests.conftest import get_member_cluster_api_client, run_multi_cluster_recovery_tool from ..constants import MULTI_CLUSTER_OPERATOR_NAME from .conftest import cluster_spec_list, create_service_entries_objects diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_replica_set.py b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_replica_set.py index 599015d46..e4d9bc88b 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_replica_set.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_replica_set.py @@ -12,11 +12,7 @@ from kubetester.multicluster_client import MultiClusterClient from kubetester.operator import Operator from kubetester.phase import Phase -from tests.conftest import ( - assert_log_rotation_process, - member_cluster_clients, - setup_log_rotate_for_agents, -) +from tests.conftest import assert_log_rotation_process, member_cluster_clients, setup_log_rotate_for_agents from tests.multicluster.conftest import cluster_spec_list MONGODB_PORT = 30000 diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_scale_up_cluster.py b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_scale_up_cluster.py index 3acc73dff..ad46467e9 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_scale_up_cluster.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster/multi_cluster_scale_up_cluster.py @@ -3,13 +3,7 @@ import kubernetes import pytest -from kubetester import ( - create_or_update_configmap, - random_k8s_name, - read_configmap, - try_load, - wait_until, -) +from kubetester import create_or_update_configmap, random_k8s_name, read_configmap, try_load, wait_until from kubetester.automation_config_tester import AutomationConfigTester from kubetester.certs_mongodb_multi import create_multi_cluster_mongodb_tls_certs from kubetester.kubetester import KubernetesTester diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_disaster_recovery.py b/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_disaster_recovery.py index 0bfafe0bf..4fb11b931 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_disaster_recovery.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_disaster_recovery.py @@ -2,22 +2,14 @@ import kubernetes import kubernetes.client -from kubetester import ( - delete_statefulset, - get_statefulset, - read_configmap, - try_load, - update_configmap, -) +from kubetester import delete_statefulset, get_statefulset, read_configmap, try_load, update_configmap from kubetester.kubetester import fixture as yaml_fixture from kubetester.kubetester import run_periodically from kubetester.opsmanager import MongoDBOpsManager from kubetester.phase import Phase from pytest import fixture, mark from tests.common.cert.cert_issuer import create_appdb_certs -from tests.conftest import ( - get_member_cluster_api_client, -) +from tests.conftest import get_member_cluster_api_client from tests.constants import MULTI_CLUSTER_MEMBER_LIST_CONFIGMAP from tests.multicluster.conftest import cluster_spec_list diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_s3_based_backup_restore.py b/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_s3_based_backup_restore.py index 0d573066c..ecd1a9997 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_s3_based_backup_restore.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_s3_based_backup_restore.py @@ -13,15 +13,8 @@ from kubetester.phase import Phase from pymongo.errors import ServerSelectionTimeoutError from pytest import fixture, mark -from tests.common.constants import ( - MONGODB_PORT, - S3_BLOCKSTORE_NAME, - S3_OPLOG_NAME, - TEST_DATA, -) -from tests.common.ops_manager.multi_cluster import ( - ops_manager_multi_cluster_with_tls_s3_backups, -) +from tests.common.constants import MONGODB_PORT, S3_BLOCKSTORE_NAME, S3_OPLOG_NAME, TEST_DATA +from tests.common.ops_manager.multi_cluster import ops_manager_multi_cluster_with_tls_s3_backups from tests.conftest import assert_data_got_restored from tests.constants import AWS_REGION from tests.multicluster.conftest import cluster_spec_list diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_upgrade_downgrade_v1_27_to_mck.py b/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_upgrade_downgrade_v1_27_to_mck.py index 6e04a50ea..2edd0b561 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_upgrade_downgrade_v1_27_to_mck.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_appdb_upgrade_downgrade_v1_27_to_mck.py @@ -16,10 +16,7 @@ install_legacy_deployment_state_meko, log_deployments_info, ) -from tests.constants import ( - LEGACY_MULTI_CLUSTER_OPERATOR_NAME, - MULTI_CLUSTER_OPERATOR_NAME, -) +from tests.constants import LEGACY_MULTI_CLUSTER_OPERATOR_NAME, MULTI_CLUSTER_OPERATOR_NAME from tests.multicluster.conftest import cluster_spec_list from tests.upgrades import downscale_operator_deployment diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_om_networking_clusterwide.py b/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_om_networking_clusterwide.py index 47ee80a5a..a6e2dea70 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_om_networking_clusterwide.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_appdb/multicluster_om_networking_clusterwide.py @@ -17,9 +17,7 @@ from tests.multicluster.conftest import cluster_spec_list, create_namespace from ..common.constants import MEMBER_CLUSTER_1, MEMBER_CLUSTER_2, MEMBER_CLUSTER_3 -from ..common.ops_manager.multi_cluster import ( - ops_manager_multi_cluster_with_tls_s3_backups, -) +from ..common.ops_manager.multi_cluster import ops_manager_multi_cluster_with_tls_s3_backups from .conftest import create_s3_bucket_blockstore, create_s3_bucket_oplog # This test is for checking networking when OM is deployed in a complex multi-cluster scenario involving: diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_appdb_cleanup.py b/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_appdb_cleanup.py index 54ecefcfb..7d672d651 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_appdb_cleanup.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_appdb_cleanup.py @@ -12,19 +12,10 @@ from pytest import fixture, mark from tests import test_logger from tests.common.cert.cert_issuer import create_appdb_certs -from tests.common.ops_manager.multi_cluster import ( - ops_manager_multi_cluster_with_tls_s3_backups, -) -from tests.conftest import ( - get_central_cluster_client, - get_cluster_clients, - get_member_cluster_clients, -) +from tests.common.ops_manager.multi_cluster import ops_manager_multi_cluster_with_tls_s3_backups +from tests.conftest import get_central_cluster_client, get_cluster_clients, get_member_cluster_clients from tests.multicluster.conftest import cluster_spec_list -from tests.multicluster_appdb.conftest import ( - create_s3_bucket_blockstore, - create_s3_bucket_oplog, -) +from tests.multicluster_appdb.conftest import create_s3_bucket_blockstore, create_s3_bucket_oplog CERT_PREFIX = "prefix" OM_NAME = "om-appdb-cleanup" diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_appdb_no_mesh.py b/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_appdb_no_mesh.py index 34d05184f..7ce6f7dbd 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_appdb_no_mesh.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_appdb_no_mesh.py @@ -27,17 +27,12 @@ get_member_cluster_clients, update_coredns_hosts, ) -from tests.multicluster_appdb.conftest import ( - create_s3_bucket_blockstore, - create_s3_bucket_oplog, -) +from tests.multicluster_appdb.conftest import create_s3_bucket_blockstore, create_s3_bucket_oplog from .. import test_logger from ..common.cert.cert_issuer import create_appdb_certs from ..common.constants import MEMBER_CLUSTER_1, MEMBER_CLUSTER_2, MEMBER_CLUSTER_3 -from ..common.ops_manager.multi_cluster import ( - ops_manager_multi_cluster_with_tls_s3_backups, -) +from ..common.ops_manager.multi_cluster import ops_manager_multi_cluster_with_tls_s3_backups from ..constants import TELEMETRY_CONFIGMAP_NAME from ..multicluster.conftest import cluster_spec_list diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_clusterwide_operator_not_in_mesh_networking.py b/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_clusterwide_operator_not_in_mesh_networking.py index eeeee8e6e..ff4951856 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_clusterwide_operator_not_in_mesh_networking.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_om/multicluster_om_clusterwide_operator_not_in_mesh_networking.py @@ -9,9 +9,7 @@ from pytest import fixture, mark from tests.common.cert.cert_issuer import create_appdb_certs from tests.common.constants import MEMBER_CLUSTER_2, MEMBER_CLUSTER_3 -from tests.common.ops_manager.multi_cluster import ( - ops_manager_multi_cluster_with_tls_s3_backups, -) +from tests.common.ops_manager.multi_cluster import ops_manager_multi_cluster_with_tls_s3_backups from tests.conftest import ( create_issuer_ca_configmap, get_aws_s3_client, @@ -30,10 +28,7 @@ ) from tests.multicluster import prepare_multi_cluster_namespaces from tests.multicluster.conftest import cluster_spec_list, create_namespace -from tests.multicluster_appdb.conftest import ( - create_s3_bucket_blockstore, - create_s3_bucket_oplog, -) +from tests.multicluster_appdb.conftest import create_s3_bucket_blockstore, create_s3_bucket_oplog # This test requires a cluster-wide operator. # To run it locally you must specify the following in private-context: diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/__init__.py b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/__init__.py index 4ac0ca677..5b9f98e8c 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/__init__.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/__init__.py @@ -8,9 +8,7 @@ from kubetester.mongodb import MongoDB from kubetester.multicluster_client import MultiClusterClient from tests import test_logger -from tests.shardedcluster.conftest import ( - get_member_cluster_clients_using_cluster_mapping, -) +from tests.shardedcluster.conftest import get_member_cluster_clients_using_cluster_mapping logger = test_logger.get_test_logger(__name__) diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_disaster_recovery.py b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_disaster_recovery.py index 994696896..7a95f339f 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_disaster_recovery.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_disaster_recovery.py @@ -4,17 +4,8 @@ import kubernetes import kubernetes.client -from kubetester import ( - delete_statefulset, - get_statefulset, - read_configmap, - try_load, - update_configmap, -) -from kubetester.kubetester import ( - KubernetesTester, - ensure_ent_version, -) +from kubetester import delete_statefulset, get_statefulset, read_configmap, try_load, update_configmap +from kubetester.kubetester import KubernetesTester, ensure_ent_version from kubetester.kubetester import fixture as yaml_fixture from kubetester.kubetester import ( get_env_var_or_fail, @@ -29,16 +20,10 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests import test_logger -from tests.conftest import ( - get_central_cluster_client, - get_member_cluster_api_client, -) +from tests.conftest import get_central_cluster_client, get_member_cluster_api_client from tests.constants import MULTI_CLUSTER_MEMBER_LIST_CONFIGMAP from tests.multicluster.conftest import cluster_spec_list -from tests.shardedcluster.conftest import ( - enable_multi_cluster_deployment, - get_all_sharded_cluster_pod_names, -) +from tests.shardedcluster.conftest import enable_multi_cluster_deployment, get_all_sharded_cluster_pod_names MEMBER_CLUSTERS = ["kind-e2e-cluster-1", "kind-e2e-cluster-2", "kind-e2e-cluster-3"] FAILED_MEMBER_CLUSTER_INDEX = 2 diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_external_access_no_ext_domain.py b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_external_access_no_ext_domain.py index 553210974..f234caad6 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_external_access_no_ext_domain.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_external_access_no_ext_domain.py @@ -10,10 +10,7 @@ from pytest import fixture, mark from tests import test_logger from tests.conftest import get_member_cluster_api_client -from tests.shardedcluster.conftest import ( - enable_multi_cluster_deployment, - setup_external_access, -) +from tests.shardedcluster.conftest import enable_multi_cluster_deployment, setup_external_access MDB_RESOURCE_NAME = "sh" logger = test_logger.get_test_logger(__name__) diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_geo_sharding.py b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_geo_sharding.py index 2f906a329..4e462583f 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_geo_sharding.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_geo_sharding.py @@ -13,9 +13,7 @@ assert_mongos_sts_members_count, assert_shard_sts_members_count, ) -from tests.shardedcluster.conftest import ( - get_member_cluster_clients_using_cluster_mapping, -) +from tests.shardedcluster.conftest import get_member_cluster_clients_using_cluster_mapping MDB_RESOURCE_NAME = "sh-geo-sharding" logger = test_logger.get_test_logger(__name__) diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_tls.py b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_tls.py index 77866c242..72ba509d6 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_tls.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_tls.py @@ -1,22 +1,13 @@ import kubernetes from kubetester import try_load -from kubetester.certs import ( - SetPropertiesMultiCluster, - generate_cert, - get_agent_x509_subject, - get_mongodb_x509_subject, -) +from kubetester.certs import SetPropertiesMultiCluster, generate_cert, get_agent_x509_subject, get_mongodb_x509_subject from kubetester.certs_mongodb_multi import create_multi_cluster_tls_certs from kubetester.kubetester import fixture as _fixture from kubetester.mongodb import MongoDB from kubetester.operator import Operator from kubetester.phase import Phase from pytest import fixture, mark -from tests.conftest import ( - get_central_cluster_client, - get_member_cluster_clients, - get_member_cluster_names, -) +from tests.conftest import get_central_cluster_client, get_member_cluster_clients, get_member_cluster_names from tests.multicluster.conftest import cluster_spec_list MDB_RESOURCE = "sharded-cluster-custom-certs" diff --git a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_tls_no_mesh.py b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_tls_no_mesh.py index 7d30e08e8..3832b4937 100644 --- a/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_tls_no_mesh.py +++ b/docker/mongodb-kubernetes-tests/tests/multicluster_shardedcluster/multi_cluster_sharded_tls_no_mesh.py @@ -2,12 +2,7 @@ import kubernetes from kubetester import try_load -from kubetester.certs import ( - SetPropertiesMultiCluster, - generate_cert, - get_agent_x509_subject, - get_mongodb_x509_subject, -) +from kubetester.certs import SetPropertiesMultiCluster, generate_cert, get_agent_x509_subject, get_mongodb_x509_subject from kubetester.certs_mongodb_multi import create_multi_cluster_tls_certs from kubetester.kubetester import fixture as _fixture from kubetester.kubetester import skip_if_local diff --git a/docker/mongodb-kubernetes-tests/tests/operator/operator_proxy.py b/docker/mongodb-kubernetes-tests/tests/operator/operator_proxy.py index f19705b32..b7a6ee41d 100644 --- a/docker/mongodb-kubernetes-tests/tests/operator/operator_proxy.py +++ b/docker/mongodb-kubernetes-tests/tests/operator/operator_proxy.py @@ -2,9 +2,7 @@ from kubernetes import client from kubetester import create_or_update_configmap -from kubetester.create_or_replace_from_yaml import ( - create_or_replace_from_yaml as apply_yaml, -) +from kubetester.create_or_replace_from_yaml import create_or_replace_from_yaml as apply_yaml from kubetester.kubetester import KubernetesTester, ensure_ent_version from kubetester.kubetester import fixture as _fixture from kubetester.kubetester import get_pods diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_localmode_single_pv.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_localmode_single_pv.py index c8dc2fa05..8cf197551 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_localmode_single_pv.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_localmode_single_pv.py @@ -10,10 +10,7 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests.conftest import get_member_cluster_api_client, is_multi_cluster -from tests.opsmanager.withMonitoredAppDB.conftest import ( - enable_multi_cluster_deployment, - get_om_member_cluster_names, -) +from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment, get_om_member_cluster_names # This version is not supported by the Ops Manager and is not present in the local mode. VERSION_NOT_IN_OPS_MANAGER = "6.0.4" diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_kmip.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_kmip.py index 48c07e933..1e5c04849 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_kmip.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_kmip.py @@ -15,11 +15,7 @@ from pymongo import ReadPreference from pytest import fixture, mark from tests.conftest import is_multi_cluster -from tests.opsmanager.om_ops_manager_backup import ( - S3_SECRET_NAME, - create_aws_secret, - create_s3_bucket, -) +from tests.opsmanager.om_ops_manager_backup import S3_SECRET_NAME, create_aws_secret, create_s3_bucket from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment TEST_DATA = {"_id": "unique_id", "name": "John", "address": "Highway 37", "age": 30} diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_restore.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_restore.py index 49dbaef73..5ebf0cac1 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_restore.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_restore.py @@ -15,11 +15,7 @@ from pymongo.errors import ServerSelectionTimeoutError from pytest import fixture, mark from tests.conftest import assert_data_got_restored, is_multi_cluster -from tests.opsmanager.om_ops_manager_backup import ( - S3_SECRET_NAME, - create_aws_secret, - create_s3_bucket, -) +from tests.opsmanager.om_ops_manager_backup import S3_SECRET_NAME, create_aws_secret, create_s3_bucket from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment """ diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_restore_minio.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_restore_minio.py index ddc8e6bb6..2e6e310b1 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_restore_minio.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_restore_minio.py @@ -4,12 +4,7 @@ from typing import List, Optional import pymongo -from kubetester import ( - create_or_update_namespace, - create_or_update_secret, - read_secret, - try_load, -) +from kubetester import create_or_update_namespace, create_or_update_secret, read_secret, try_load from kubetester.certs import create_mongodb_tls_certs, create_ops_manager_tls_certs from kubetester.kubetester import KubernetesTester, ensure_ent_version from kubetester.kubetester import fixture as yaml_fixture @@ -23,10 +18,7 @@ from tests.conftest import assert_data_got_restored, is_multi_cluster from tests.opsmanager.conftest import mino_operator_install, mino_tenant_install from tests.opsmanager.om_ops_manager_backup import S3_SECRET_NAME -from tests.opsmanager.om_ops_manager_backup_tls_custom_ca import ( - FIRST_PROJECT_RS_NAME, - SECOND_PROJECT_RS_NAME, -) +from tests.opsmanager.om_ops_manager_backup_tls_custom_ca import FIRST_PROJECT_RS_NAME, SECOND_PROJECT_RS_NAME from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment TEST_DATA = {"_id": "unique_id", "name": "John", "address": "Highway 37", "age": 30} diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_sharded_cluster.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_sharded_cluster.py index 97888098d..761e45e9b 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_sharded_cluster.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_sharded_cluster.py @@ -2,12 +2,7 @@ from typing import Optional from kubernetes.client.rest import ApiException -from kubetester import ( - create_or_update_secret, - get_default_storage_class, - try_load, - wait_until, -) +from kubetester import create_or_update_secret, get_default_storage_class, try_load, wait_until from kubetester.awss3client import AwsS3Client from kubetester.kubetester import KubernetesTester, ensure_ent_version from kubetester.kubetester import fixture as yaml_fixture @@ -21,12 +16,8 @@ from tests.conftest import is_multi_cluster from tests.opsmanager.om_ops_manager_backup import create_aws_secret, create_s3_bucket from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment -from tests.shardedcluster.conftest import ( - enable_multi_cluster_deployment as enable_multi_cluster_deployment_mdb, -) -from tests.shardedcluster.conftest import ( - get_mongos_service_names, -) +from tests.shardedcluster.conftest import enable_multi_cluster_deployment as enable_multi_cluster_deployment_mdb +from tests.shardedcluster.conftest import get_mongos_service_names HEAD_PATH = "/head/" S3_SECRET_NAME = "my-s3-secret" diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_tls.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_tls.py index 285234f19..56e1ad91f 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_tls.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_tls.py @@ -10,11 +10,7 @@ from pytest import fixture, mark from tests.common.cert.cert_issuer import create_appdb_certs from tests.conftest import get_member_cluster_api_client, is_multi_cluster -from tests.opsmanager.om_ops_manager_backup import ( - BLOCKSTORE_RS_NAME, - OPLOG_RS_NAME, - new_om_data_store, -) +from tests.opsmanager.om_ops_manager_backup import BLOCKSTORE_RS_NAME, OPLOG_RS_NAME, new_om_data_store from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment """ diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_tls_custom_ca.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_tls_custom_ca.py index 4c84a9045..4c9eae13d 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_tls_custom_ca.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_backup_tls_custom_ca.py @@ -10,17 +10,8 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests.common.cert.cert_issuer import create_appdb_certs -from tests.conftest import ( - default_external_domain, - external_domain_fqdns, - is_multi_cluster, - update_coredns_hosts, -) -from tests.opsmanager.om_ops_manager_backup import ( - BLOCKSTORE_RS_NAME, - OPLOG_RS_NAME, - S3_SECRET_NAME, -) +from tests.conftest import default_external_domain, external_domain_fqdns, is_multi_cluster, update_coredns_hosts +from tests.opsmanager.om_ops_manager_backup import BLOCKSTORE_RS_NAME, OPLOG_RS_NAME, S3_SECRET_NAME from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment OPLOG_SECRET_NAME = S3_SECRET_NAME + "-oplog" diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_scale.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_scale.py index a3e19251e..730d0491c 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_scale.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_scale.py @@ -7,11 +7,7 @@ from kubetester.opsmanager import MongoDBOpsManager from kubetester.phase import Phase from pytest import fixture -from tests.conftest import ( - get_member_cluster_api_client, - is_multi_cluster, - verify_pvc_expanded, -) +from tests.conftest import get_member_cluster_api_client, is_multi_cluster, verify_pvc_expanded from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment gen_key_resource_version = None diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_upgrade.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_upgrade.py index d06af3563..a2b77f743 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_upgrade.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/om_ops_manager_upgrade.py @@ -7,15 +7,9 @@ from kubernetes.client.rest import ApiException from kubetester import try_load from kubetester.awss3client import AwsS3Client -from kubetester.kubetester import ( - ensure_ent_version, -) +from kubetester.kubetester import ensure_ent_version from kubetester.kubetester import fixture as yaml_fixture -from kubetester.kubetester import ( - is_default_architecture_static, - run_periodically, - skip_if_local, -) +from kubetester.kubetester import is_default_architecture_static, run_periodically, skip_if_local from kubetester.mongodb import MongoDB from kubetester.opsmanager import MongoDBOpsManager from kubetester.phase import Phase @@ -23,12 +17,7 @@ from tests import test_logger from tests.conftest import get_member_cluster_clients, is_multi_cluster from tests.opsmanager.om_appdb_scram import OM_USER_NAME -from tests.opsmanager.om_ops_manager_backup import ( - OPLOG_RS_NAME, - S3_SECRET_NAME, - create_aws_secret, - create_s3_bucket, -) +from tests.opsmanager.om_ops_manager_backup import OPLOG_RS_NAME, S3_SECRET_NAME, create_aws_secret, create_s3_bucket from tests.opsmanager.withMonitoredAppDB.conftest import enable_multi_cluster_deployment # Current test focuses on Ops Manager upgrade which involves upgrade for both OpsManager and AppDB. diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/withMonitoredAppDB/om_appdb_external_connectivity.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/withMonitoredAppDB/om_appdb_external_connectivity.py index 486b55f95..847d766ff 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/withMonitoredAppDB/om_appdb_external_connectivity.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/withMonitoredAppDB/om_appdb_external_connectivity.py @@ -9,11 +9,7 @@ from pytest import fixture, mark from tests.common.cert.cert_issuer import create_appdb_certs from tests.common.placeholders import placeholders -from tests.conftest import ( - default_external_domain, - external_domain_fqdns, - update_coredns_hosts, -) +from tests.conftest import default_external_domain, external_domain_fqdns, update_coredns_hosts OM_NAME = "om-appdb-external" APPDB_NAME = f"{OM_NAME}-db" diff --git a/docker/mongodb-kubernetes-tests/tests/opsmanager/withMonitoredAppDB/om_ops_manager_backup_light.py b/docker/mongodb-kubernetes-tests/tests/opsmanager/withMonitoredAppDB/om_ops_manager_backup_light.py index f2a3a05c8..3add4cfc3 100644 --- a/docker/mongodb-kubernetes-tests/tests/opsmanager/withMonitoredAppDB/om_ops_manager_backup_light.py +++ b/docker/mongodb-kubernetes-tests/tests/opsmanager/withMonitoredAppDB/om_ops_manager_backup_light.py @@ -11,11 +11,7 @@ from kubetester.opsmanager import MongoDBOpsManager from kubetester.phase import Phase from pytest import fixture, mark -from tests.conftest import ( - get_central_cluster_client, - get_member_cluster_api_client, - is_multi_cluster, -) +from tests.conftest import get_central_cluster_client, get_member_cluster_api_client, is_multi_cluster from tests.opsmanager.om_ops_manager_backup import ( HEAD_PATH, OPLOG_RS_NAME, diff --git a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set.py b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set.py index 98ea5b36b..57e0a4fee 100644 --- a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set.py +++ b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set.py @@ -3,11 +3,7 @@ import pytest from kubernetes import client -from kubetester import ( - assert_pod_container_security_context, - assert_pod_security_context, - try_load, -) +from kubetester import assert_pod_container_security_context, assert_pod_security_context, try_load from kubetester.automation_config_tester import AutomationConfigTester from kubetester.kubetester import KubernetesTester, fcv_from_version from kubetester.kubetester import fixture as yaml_fixture diff --git a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_agent_flags.py b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_agent_flags.py index 647820f91..0ce23b507 100644 --- a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_agent_flags.py +++ b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_agent_flags.py @@ -1,20 +1,11 @@ from typing import Optional -from kubetester import ( - create_or_update_configmap, - find_fixture, - random_k8s_name, - read_configmap, -) +from kubetester import create_or_update_configmap, find_fixture, random_k8s_name, read_configmap from kubetester.kubetester import KubernetesTester, ensure_ent_version from kubetester.mongodb import MongoDB from kubetester.phase import Phase from pytest import fixture, mark -from tests.pod_logs import ( - assert_log_types_in_structured_json_pod_log, - get_all_default_log_types, - get_all_log_types, -) +from tests.pod_logs import assert_log_types_in_structured_json_pod_log, get_all_default_log_types, get_all_log_types custom_agent_log_path = "/var/log/mongodb-mms-automation/customLogFile" custom_readiness_log_path = "/var/log/mongodb-mms-automation/customReadinessLogFile" diff --git a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_groups.py b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_groups.py index 2a9cb68fa..464cfd892 100644 --- a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_groups.py +++ b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_groups.py @@ -1,10 +1,5 @@ import pytest -from kubetester.kubetester import ( - EXTERNALLY_MANAGED_TAG, - MAX_TAG_LEN, - KubernetesTester, - fixture, -) +from kubetester.kubetester import EXTERNALLY_MANAGED_TAG, MAX_TAG_LEN, KubernetesTester, fixture from kubetester.omtester import should_include_tag diff --git a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_process_hostnames.py b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_process_hostnames.py index 83aba9961..211f36125 100644 --- a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_process_hostnames.py +++ b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_process_hostnames.py @@ -15,11 +15,7 @@ from kubetester.phase import Phase from pytest import fixture from tests.common.placeholders import placeholders -from tests.conftest import ( - default_external_domain, - external_domain_fqdns, - update_coredns_hosts, -) +from tests.conftest import default_external_domain, external_domain_fqdns, update_coredns_hosts @fixture diff --git a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_upgrade_downgrade.py b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_upgrade_downgrade.py index 7c714614c..53cebeb26 100644 --- a/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_upgrade_downgrade.py +++ b/docker/mongodb-kubernetes-tests/tests/replicaset/replica_set_upgrade_downgrade.py @@ -3,11 +3,7 @@ from kubetester.kubetester import KubernetesTester, fcv_from_version from kubetester.kubetester import fixture as yaml_fixture from kubetester.mongodb import MongoDB -from kubetester.mongotester import ( - MongoDBBackgroundTester, - MongoTester, - ReplicaSetTester, -) +from kubetester.mongotester import MongoDBBackgroundTester, MongoTester, ReplicaSetTester from kubetester.phase import Phase from pytest import fixture, mark diff --git a/docker/mongodb-kubernetes-tests/tests/search/search_enterprise_tls.py b/docker/mongodb-kubernetes-tests/tests/search/search_enterprise_tls.py index 117c1e69d..ef4017aea 100644 --- a/docker/mongodb-kubernetes-tests/tests/search/search_enterprise_tls.py +++ b/docker/mongodb-kubernetes-tests/tests/search/search_enterprise_tls.py @@ -1,11 +1,5 @@ import yaml -from kubetester import ( - create_or_update_secret, - get_service, - kubetester, - run_periodically, - try_load, -) +from kubetester import create_or_update_secret, get_service, kubetester, run_periodically, try_load from kubetester.certs import create_mongodb_tls_certs, create_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as yaml_fixture diff --git a/docker/mongodb-kubernetes-tests/tests/search/search_enterprise_x509_cluster_auth.py b/docker/mongodb-kubernetes-tests/tests/search/search_enterprise_x509_cluster_auth.py index 98b72e935..c3515c96a 100644 --- a/docker/mongodb-kubernetes-tests/tests/search/search_enterprise_x509_cluster_auth.py +++ b/docker/mongodb-kubernetes-tests/tests/search/search_enterprise_x509_cluster_auth.py @@ -1,10 +1,6 @@ import yaml from kubetester import create_or_update_secret, run_periodically, try_load -from kubetester.certs import ( - create_agent_tls_certs, - create_tls_certs, - create_x509_mongodb_tls_certs, -) +from kubetester.certs import create_agent_tls_certs, create_tls_certs, create_x509_mongodb_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as yaml_fixture from kubetester.mongodb import MongoDB diff --git a/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_agent_flags.py b/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_agent_flags.py index f9a3d66b2..0f008944b 100644 --- a/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_agent_flags.py +++ b/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_agent_flags.py @@ -5,11 +5,7 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests.conftest import is_multi_cluster -from tests.pod_logs import ( - assert_log_types_in_structured_json_pod_log, - get_all_default_log_types, - get_all_log_types, -) +from tests.pod_logs import assert_log_types_in_structured_json_pod_log, get_all_default_log_types, get_all_log_types from tests.shardedcluster.conftest import ( enable_multi_cluster_deployment, get_member_cluster_clients_using_cluster_mapping, diff --git a/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_migration.py b/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_migration.py index 5a0f7e642..6d1a2ab9a 100644 --- a/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_migration.py +++ b/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_migration.py @@ -2,16 +2,9 @@ import pytest from kubernetes import client from kubetester import try_load -from kubetester.kubetester import ( - assert_statefulset_architecture, - ensure_ent_version, -) +from kubetester.kubetester import assert_statefulset_architecture, ensure_ent_version from kubetester.kubetester import fixture as load_fixture -from kubetester.kubetester import ( - get_default_architecture, - is_multi_cluster, - skip_if_multi_cluster, -) +from kubetester.kubetester import get_default_architecture, is_multi_cluster, skip_if_multi_cluster from kubetester.mongodb import MongoDB from kubetester.mongotester import MongoDBBackgroundTester, MongoTester from kubetester.operator import Operator diff --git a/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_shard_overrides.py b/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_shard_overrides.py index 7d84c116d..1b61b8445 100644 --- a/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_shard_overrides.py +++ b/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_shard_overrides.py @@ -8,11 +8,7 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests import test_logger -from tests.conftest import ( - get_central_cluster_client, - get_member_cluster_names, - read_deployment_state, -) +from tests.conftest import get_central_cluster_client, get_member_cluster_names, read_deployment_state from tests.multicluster.conftest import cluster_spec_list from tests.multicluster_shardedcluster import ( build_expected_statefulsets, diff --git a/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_single_cluster_external_access.py b/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_single_cluster_external_access.py index 7db2eda7d..21e0df36d 100644 --- a/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_single_cluster_external_access.py +++ b/docker/mongodb-kubernetes-tests/tests/shardedcluster/sharded_cluster_single_cluster_external_access.py @@ -10,15 +10,8 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests import test_logger -from tests.conftest import ( - get_central_cluster_name, - is_multi_cluster, - update_coredns_hosts, -) -from tests.shardedcluster.conftest import ( - get_dns_hosts_for_external_access, - setup_external_access, -) +from tests.conftest import get_central_cluster_name, is_multi_cluster, update_coredns_hosts +from tests.shardedcluster.conftest import get_dns_hosts_for_external_access, setup_external_access SCALED_SHARD_COUNT = 2 logger = test_logger.get_test_logger(__name__) diff --git a/docker/mongodb-kubernetes-tests/tests/standalone/standalone_groups.py b/docker/mongodb-kubernetes-tests/tests/standalone/standalone_groups.py index 467e9849c..b6e95df9c 100644 --- a/docker/mongodb-kubernetes-tests/tests/standalone/standalone_groups.py +++ b/docker/mongodb-kubernetes-tests/tests/standalone/standalone_groups.py @@ -1,10 +1,5 @@ import pytest -from kubetester.kubetester import ( - EXTERNALLY_MANAGED_TAG, - MAX_TAG_LEN, - KubernetesTester, - fixture, -) +from kubetester.kubetester import EXTERNALLY_MANAGED_TAG, MAX_TAG_LEN, KubernetesTester, fixture from kubetester.omtester import should_include_tag, skip_if_cloud_manager diff --git a/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_rs.py b/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_rs.py index cf3ab1f48..7c79bc23e 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_rs.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_rs.py @@ -1,9 +1,5 @@ import pytest -from kubetester.certs import ( - ISSUER_CA_NAME, - create_agent_tls_certs, - create_mongodb_tls_certs, -) +from kubetester.certs import ISSUER_CA_NAME, create_agent_tls_certs, create_mongodb_tls_certs from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB from kubetester.mongotester import ReplicaSetTester diff --git a/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_sc.py b/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_sc.py index 2e0545da6..bdccce029 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_sc.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_sc.py @@ -7,10 +7,7 @@ from kubetester.mongotester import ShardedClusterTester from kubetester.operator import Operator from kubetester.phase import Phase -from tests.shardedcluster.conftest import ( - enable_multi_cluster_deployment, - get_mongos_service_names, -) +from tests.shardedcluster.conftest import enable_multi_cluster_deployment, get_mongos_service_names MDB_RESOURCE = "test-ssl-with-x509-sc" diff --git a/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_standalone.py b/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_standalone.py index 68157ceae..7a7bf2d77 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_standalone.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/e2e_configure_tls_and_x509_simultaneously_standalone.py @@ -1,9 +1,5 @@ import pytest -from kubetester.certs import ( - ISSUER_CA_NAME, - create_agent_tls_certs, - create_mongodb_tls_certs, -) +from kubetester.certs import ISSUER_CA_NAME, create_agent_tls_certs, create_mongodb_tls_certs from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB from kubetester.mongotester import StandaloneTester diff --git a/docker/mongodb-kubernetes-tests/tests/tls/tls_replica_set_process_hostnames.py b/docker/mongodb-kubernetes-tests/tests/tls/tls_replica_set_process_hostnames.py index a48f528f3..67f9cae1f 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/tls_replica_set_process_hostnames.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/tls_replica_set_process_hostnames.py @@ -17,11 +17,7 @@ from kubetester.operator import Operator from kubetester.phase import Phase from pytest import fixture, mark -from tests.conftest import ( - default_external_domain, - external_domain_fqdns, - update_coredns_hosts, -) +from tests.conftest import default_external_domain, external_domain_fqdns, update_coredns_hosts @fixture(scope="module") diff --git a/docker/mongodb-kubernetes-tests/tests/tls/tls_sc_requiressl_custom_ca.py b/docker/mongodb-kubernetes-tests/tests/tls/tls_sc_requiressl_custom_ca.py index d79e795b6..f1e00fa53 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/tls_sc_requiressl_custom_ca.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/tls_sc_requiressl_custom_ca.py @@ -8,10 +8,7 @@ from kubetester.mongotester import ShardedClusterTester from kubetester.operator import Operator from kubetester.phase import Phase -from tests.shardedcluster.conftest import ( - enable_multi_cluster_deployment, - get_mongos_service_names, -) +from tests.shardedcluster.conftest import enable_multi_cluster_deployment, get_mongos_service_names MDB_RESOURCE_NAME = "test-tls-base-sc-require-ssl" diff --git a/docker/mongodb-kubernetes-tests/tests/tls/tls_sharded_cluster_certs_prefix.py b/docker/mongodb-kubernetes-tests/tests/tls/tls_sharded_cluster_certs_prefix.py index 1d0823883..2b72a054e 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/tls_sharded_cluster_certs_prefix.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/tls_sharded_cluster_certs_prefix.py @@ -9,10 +9,7 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests.conftest import central_cluster_client -from tests.shardedcluster.conftest import ( - enable_multi_cluster_deployment, - get_mongos_service_names, -) +from tests.shardedcluster.conftest import enable_multi_cluster_deployment, get_mongos_service_names MDB_RESOURCE = "sharded-cluster-custom-certs" diff --git a/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_configure_all_options_sc.py b/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_configure_all_options_sc.py index 2c48186b1..df66264a5 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_configure_all_options_sc.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_configure_all_options_sc.py @@ -1,11 +1,7 @@ import pytest from kubetester import find_fixture, try_load from kubetester.automation_config_tester import AutomationConfigTester -from kubetester.certs import ( - create_sharded_cluster_certs, - create_x509_agent_tls_certs, - rotate_and_assert_certificates, -) +from kubetester.certs import create_sharded_cluster_certs, create_x509_agent_tls_certs, rotate_and_assert_certificates from kubetester.kubetester import KubernetesTester, is_multi_cluster from kubetester.mongodb import MongoDB from kubetester.operator import Operator diff --git a/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_rs.py b/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_rs.py index dc9fbddf5..535e2cc51 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_rs.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_rs.py @@ -1,9 +1,5 @@ import pytest -from kubetester.certs import ( - ISSUER_CA_NAME, - create_agent_tls_certs, - create_mongodb_tls_certs, -) +from kubetester.certs import ISSUER_CA_NAME, create_agent_tls_certs, create_mongodb_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.kubetester import skip_if_local diff --git a/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_user_connectivity.py b/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_user_connectivity.py index 8732b5e9a..720ce3780 100644 --- a/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_user_connectivity.py +++ b/docker/mongodb-kubernetes-tests/tests/tls/tls_x509_user_connectivity.py @@ -2,11 +2,7 @@ import pytest from kubetester.automation_config_tester import AutomationConfigTester -from kubetester.certs import ( - create_agent_tls_certs, - create_mongodb_tls_certs, - create_x509_user_cert, -) +from kubetester.certs import create_agent_tls_certs, create_mongodb_tls_certs, create_x509_user_cert from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as _fixture from kubetester.mongodb import MongoDB diff --git a/docker/mongodb-kubernetes-tests/tests/upgrades/appdb_tls_operator_upgrade_v1_32_to_mck.py b/docker/mongodb-kubernetes-tests/tests/upgrades/appdb_tls_operator_upgrade_v1_32_to_mck.py index a3589c30c..048070551 100644 --- a/docker/mongodb-kubernetes-tests/tests/upgrades/appdb_tls_operator_upgrade_v1_32_to_mck.py +++ b/docker/mongodb-kubernetes-tests/tests/upgrades/appdb_tls_operator_upgrade_v1_32_to_mck.py @@ -6,12 +6,7 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests.common.cert.cert_issuer import create_appdb_certs -from tests.conftest import ( - get_default_operator, - get_multi_cluster_operator, - install_official_operator, - is_multi_cluster, -) +from tests.conftest import get_default_operator, get_multi_cluster_operator, install_official_operator, is_multi_cluster from tests.constants import ( LEGACY_MULTI_CLUSTER_OPERATOR_NAME, LEGACY_OPERATOR_CHART, diff --git a/docker/mongodb-kubernetes-tests/tests/upgrades/meko_mck_upgrade.py b/docker/mongodb-kubernetes-tests/tests/upgrades/meko_mck_upgrade.py index 3520b90cc..c8cbc5e5f 100644 --- a/docker/mongodb-kubernetes-tests/tests/upgrades/meko_mck_upgrade.py +++ b/docker/mongodb-kubernetes-tests/tests/upgrades/meko_mck_upgrade.py @@ -13,11 +13,7 @@ from kubetester.phase import Phase from pytest import fixture, mark from tests import test_logger -from tests.conftest import ( - get_multi_cluster_operator, - is_multi_cluster, - log_deployments_info, -) +from tests.conftest import get_multi_cluster_operator, is_multi_cluster, log_deployments_info from tests.constants import ( LEGACY_MULTI_CLUSTER_OPERATOR_NAME, LEGACY_OPERATOR_NAME, @@ -27,9 +23,7 @@ OPERATOR_NAME, ) from tests.multicluster.conftest import cluster_spec_list -from tests.multicluster_appdb.multicluster_appdb_upgrade_downgrade_v1_27_to_mck import ( - assert_cm_expected_data, -) +from tests.multicluster_appdb.multicluster_appdb_upgrade_downgrade_v1_27_to_mck import assert_cm_expected_data from tests.upgrades import downscale_operator_deployment logger = test_logger.get_test_logger(__name__) diff --git a/docker/mongodb-kubernetes-tests/tests/users/users_addition_removal.py b/docker/mongodb-kubernetes-tests/tests/users/users_addition_removal.py index 789d20ba5..6dbcb5fb3 100644 --- a/docker/mongodb-kubernetes-tests/tests/users/users_addition_removal.py +++ b/docker/mongodb-kubernetes-tests/tests/users/users_addition_removal.py @@ -3,12 +3,7 @@ from cryptography.hazmat.backends import default_backend from cryptography.x509.oid import NameOID from kubetester import find_fixture -from kubetester.certs import ( - ISSUER_CA_NAME, - Certificate, - create_agent_tls_certs, - create_mongodb_tls_certs, -) +from kubetester.certs import ISSUER_CA_NAME, Certificate, create_agent_tls_certs, create_mongodb_tls_certs from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as load_fixture from kubetester.mongodb import MongoDB diff --git a/docker/mongodb-kubernetes-tests/tests/vaultintegration/mongodb_deployment_vault.py b/docker/mongodb-kubernetes-tests/tests/vaultintegration/mongodb_deployment_vault.py index 7bf25d008..753a1e981 100644 --- a/docker/mongodb-kubernetes-tests/tests/vaultintegration/mongodb_deployment_vault.py +++ b/docker/mongodb-kubernetes-tests/tests/vaultintegration/mongodb_deployment_vault.py @@ -5,18 +5,8 @@ import pytest from kubernetes import client from kubernetes.client.rest import ApiException -from kubetester import ( - create_configmap, - delete_secret, - get_statefulset, - random_k8s_name, - read_secret, -) -from kubetester.certs import ( - create_mongodb_tls_certs, - create_x509_agent_tls_certs, - create_x509_mongodb_tls_certs, -) +from kubetester import create_configmap, delete_secret, get_statefulset, random_k8s_name, read_secret +from kubetester.certs import create_mongodb_tls_certs, create_x509_agent_tls_certs, create_x509_mongodb_tls_certs from kubetester.http import https_endpoint_is_reachable from kubetester.kubetester import KubernetesTester from kubetester.kubetester import fixture as yaml_fixture diff --git a/docker/mongodb-kubernetes-tests/tests/vaultintegration/om_backup_vault.py b/docker/mongodb-kubernetes-tests/tests/vaultintegration/om_backup_vault.py index 8c29f8751..57158aecb 100644 --- a/docker/mongodb-kubernetes-tests/tests/vaultintegration/om_backup_vault.py +++ b/docker/mongodb-kubernetes-tests/tests/vaultintegration/om_backup_vault.py @@ -24,13 +24,7 @@ from kubetester.phase import Phase from pytest import fixture, mark -from ..constants import ( - APPDB_SA_NAME, - AWS_REGION, - DATABASE_SA_NAME, - OM_SA_NAME, - OPERATOR_NAME, -) +from ..constants import APPDB_SA_NAME, AWS_REGION, DATABASE_SA_NAME, OM_SA_NAME, OPERATOR_NAME from . import assert_secret_in_vault, run_command_in_vault, store_secret_in_vault OM_NAME = "om-basic" diff --git a/docker/mongodb-kubernetes-tests/tests/vaultintegration/om_deployment_vault.py b/docker/mongodb-kubernetes-tests/tests/vaultintegration/om_deployment_vault.py index 422217047..886759574 100644 --- a/docker/mongodb-kubernetes-tests/tests/vaultintegration/om_deployment_vault.py +++ b/docker/mongodb-kubernetes-tests/tests/vaultintegration/om_deployment_vault.py @@ -4,13 +4,7 @@ import pytest from kubernetes import client from kubernetes.client.rest import ApiException -from kubetester import ( - create_configmap, - create_secret, - delete_secret, - get_statefulset, - read_secret, -) +from kubetester import create_configmap, create_secret, delete_secret, get_statefulset, read_secret from kubetester.certs import create_mongodb_tls_certs, create_ops_manager_tls_certs from kubetester.kubetester import KubernetesTester, assert_container_count_with_static from kubetester.kubetester import fixture as yaml_fixture diff --git a/generate_ssdlc_report.py b/generate_ssdlc_report.py index 9954f2f08..897262889 100755 --- a/generate_ssdlc_report.py +++ b/generate_ssdlc_report.py @@ -26,10 +26,7 @@ import boto3 from lib.base_logger import logger -from scripts.evergreen.release.agent_matrix import ( - LATEST_OPERATOR_VERSION, - get_supported_version_for_image, -) +from scripts.evergreen.release.agent_matrix import LATEST_OPERATOR_VERSION, get_supported_version_for_image NUMBER_OF_THREADS = 15 S3_BUCKET = "kubernetes-operators-sboms" diff --git a/mongodb-community-operator/scripts/dev/setup_sa.sh b/mongodb-community-operator/scripts/dev/setup_sa.sh index 18f178ec7..d5cc084c7 100755 --- a/mongodb-community-operator/scripts/dev/setup_sa.sh +++ b/mongodb-community-operator/scripts/dev/setup_sa.sh @@ -2,6 +2,7 @@ service_accounts=$(kubectl get serviceaccounts -n "${NAMESPACE}" -o jsonpath='{.items[*].metadata.name}') -for service_account in $service_accounts; do - kubectl patch serviceaccount "$service_account" -n "${NAMESPACE}" -p "{\"imagePullSecrets\": [{\"name\": \"image-registries-secret\"}]}" -done \ No newline at end of file +# shellcheck disable=SC2086 # service_accounts is intentionally unquoted for word splitting +for service_account in ${service_accounts}; do + kubectl patch serviceaccount "${service_account}" -n "${NAMESPACE}" -p "{\"imagePullSecrets\": [{\"name\": \"image-registries-secret\"}]}" +done diff --git a/multi_cluster/tools/install_istio.sh b/multi_cluster/tools/install_istio.sh index 15ca12d46..392494a18 100755 --- a/multi_cluster/tools/install_istio.sh +++ b/multi_cluster/tools/install_istio.sh @@ -8,14 +8,14 @@ export CTX_CLUSTER3=${CTX_CLUSTER3:-e2e.cluster3.mongokubernetes.com} export VERSION=${VERSION:-1.12.8} IS_KIND="false" -if [[ $CTX_CLUSTER1 = kind* ]]; then +if [[ ${CTX_CLUSTER1} = kind* ]]; then IS_KIND="true" fi source multi_cluster/tools/download_istio.sh # -cd istio-${VERSION} +cd "istio-${VERSION}" ## perform cleanup prior to install bin/istioctl x uninstall --context="${CTX_CLUSTER1}" --purge --skip-confirmation & bin/istioctl x uninstall --context="${CTX_CLUSTER2}" --purge --skip-confirmation & @@ -40,28 +40,28 @@ kubectl --context="${CTX_CLUSTER1}" delete ns istio-system || true kubectl --context="${CTX_CLUSTER1}" create ns istio-system kubectl --context="${CTX_CLUSTER1}" label --overwrite ns istio-system pod-security.kubernetes.io/enforce=privileged kubectl --context="${CTX_CLUSTER1}" create secret generic cacerts -n istio-system \ - --from-file=${CTX_CLUSTER1}/ca-cert.pem \ - --from-file=${CTX_CLUSTER1}/ca-key.pem \ - --from-file=${CTX_CLUSTER1}/root-cert.pem \ - --from-file=${CTX_CLUSTER1}/cert-chain.pem + --from-file="${CTX_CLUSTER1}/ca-cert.pem" \ + --from-file="${CTX_CLUSTER1}/ca-key.pem" \ + --from-file="${CTX_CLUSTER1}/root-cert.pem" \ + --from-file="${CTX_CLUSTER1}/cert-chain.pem" kubectl --context="${CTX_CLUSTER2}" delete ns istio-system || true kubectl --context="${CTX_CLUSTER2}" create ns istio-system kubectl --context="${CTX_CLUSTER2}" label --overwrite ns istio-system pod-security.kubernetes.io/enforce=privileged kubectl --context="${CTX_CLUSTER2}" create secret generic cacerts -n istio-system \ - --from-file=${CTX_CLUSTER2}/ca-cert.pem \ - --from-file=${CTX_CLUSTER2}/ca-key.pem \ - --from-file=${CTX_CLUSTER2}/root-cert.pem \ - --from-file=${CTX_CLUSTER2}/cert-chain.pem + --from-file="${CTX_CLUSTER2}/ca-cert.pem" \ + --from-file="${CTX_CLUSTER2}/ca-key.pem" \ + --from-file="${CTX_CLUSTER2}/root-cert.pem" \ + --from-file="${CTX_CLUSTER2}/cert-chain.pem" kubectl --context="${CTX_CLUSTER3}" delete ns istio-system || true kubectl --context="${CTX_CLUSTER3}" create ns istio-system kubectl --context="${CTX_CLUSTER3}" label --overwrite ns istio-system pod-security.kubernetes.io/enforce=privileged kubectl --context="${CTX_CLUSTER3}" create secret generic cacerts -n istio-system \ - --from-file=${CTX_CLUSTER3}/ca-cert.pem \ - --from-file=${CTX_CLUSTER3}/ca-key.pem \ - --from-file=${CTX_CLUSTER3}/root-cert.pem \ - --from-file=${CTX_CLUSTER3}/cert-chain.pem + --from-file="${CTX_CLUSTER3}/ca-cert.pem" \ + --from-file="${CTX_CLUSTER3}/ca-key.pem" \ + --from-file="${CTX_CLUSTER3}/root-cert.pem" \ + --from-file="${CTX_CLUSTER3}/cert-chain.pem" popd # install IstioOperator in clusters @@ -145,43 +145,49 @@ wait CLUSTER_1_ADDITIONAL_OPTS="" CLUSTER_2_ADDITIONAL_OPTS="" CLUSTER_3_ADDITIONAL_OPTS="" -if [[ $IS_KIND == "true" ]]; then - CLUSTER_1_ADDITIONAL_OPTS="--server https://$(kubectl --context=${CTX_CLUSTER1} get node e2e-cluster-1-control-plane -o=jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'):6443" - CLUSTER_2_ADDITIONAL_OPTS="--server https://$(kubectl --context=${CTX_CLUSTER2} get node e2e-cluster-2-control-plane -o=jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'):6443" - CLUSTER_3_ADDITIONAL_OPTS="--server https://$(kubectl --context=${CTX_CLUSTER3} get node e2e-cluster-3-control-plane -o=jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'):6443" +if [[ ${IS_KIND} == "true" ]]; then + CLUSTER_1_ADDITIONAL_OPTS="--server https://$(kubectl --context="${CTX_CLUSTER1}" get node e2e-cluster-1-control-plane -o=jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'):6443" + CLUSTER_2_ADDITIONAL_OPTS="--server https://$(kubectl --context="${CTX_CLUSTER2}" get node e2e-cluster-2-control-plane -o=jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'):6443" + CLUSTER_3_ADDITIONAL_OPTS="--server https://$(kubectl --context="${CTX_CLUSTER3}" get node e2e-cluster-3-control-plane -o=jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'):6443" fi # enable endpoint discovery +# shellcheck disable=SC2086 # CLUSTER_X_ADDITIONAL_OPTS must not be quoted - empty string breaks istioctl bin/istioctl x create-remote-secret \ --context="${CTX_CLUSTER1}" \ -n istio-system \ --name=cluster1 ${CLUSTER_1_ADDITIONAL_OPTS} | kubectl apply -f - --context="${CTX_CLUSTER2}" +# shellcheck disable=SC2086 bin/istioctl x create-remote-secret \ --context="${CTX_CLUSTER1}" \ -n istio-system \ --name=cluster1 ${CLUSTER_1_ADDITIONAL_OPTS} | kubectl apply -f - --context="${CTX_CLUSTER3}" +# shellcheck disable=SC2086 bin/istioctl x create-remote-secret \ --context="${CTX_CLUSTER2}" \ -n istio-system \ --name=cluster2 ${CLUSTER_2_ADDITIONAL_OPTS} | kubectl apply -f - --context="${CTX_CLUSTER1}" +# shellcheck disable=SC2086 bin/istioctl x create-remote-secret \ --context="${CTX_CLUSTER2}" \ -n istio-system \ --name=cluster2 ${CLUSTER_2_ADDITIONAL_OPTS} | kubectl apply -f - --context="${CTX_CLUSTER3}" +# shellcheck disable=SC2086 bin/istioctl x create-remote-secret \ --context="${CTX_CLUSTER3}" \ -n istio-system \ --name=cluster3 ${CLUSTER_3_ADDITIONAL_OPTS} | kubectl apply -f - --context="${CTX_CLUSTER1}" +# shellcheck disable=SC2086 bin/istioctl x create-remote-secret \ --context="${CTX_CLUSTER3}" \ -n istio-system \ diff --git a/multi_cluster/tools/install_istio_central.sh b/multi_cluster/tools/install_istio_central.sh index 2ee3e5427..8e6762963 100755 --- a/multi_cluster/tools/install_istio_central.sh +++ b/multi_cluster/tools/install_istio_central.sh @@ -7,7 +7,7 @@ export VERSION=${VERSION:-1.14.2} export CTX_CLUSTER=${CTX_CLUSTER:-e2e.operator.mongokubernetes.com} source multi_cluster/tools/download_istio.sh -cd istio-${VERSION} +cd "istio-${VERSION}" bin/istioctl x uninstall --context="${CTX_CLUSTER}" --purge --skip-confirmation bin/istioctl install --context="${CTX_CLUSTER}" --set components.cni.enabled=true --set profile=default --set meshConfig.outboundTrafficPolicy.mode=REGISTRY_ONLY --skip-confirmation diff --git a/scripts/preflight_images.py b/scripts/preflight_images.py index fc16074c9..0971615c8 100755 --- a/scripts/preflight_images.py +++ b/scripts/preflight_images.py @@ -15,9 +15,7 @@ from typing import Dict, Tuple import requests -from evergreen.release.agent_matrix import ( - get_supported_version_for_image, -) +from evergreen.release.agent_matrix import get_supported_version_for_image LOGLEVEL = os.environ.get("LOGLEVEL", "INFO").upper() logging.basicConfig(level=LOGLEVEL) diff --git a/scripts/python/find_test_variants_test.py b/scripts/python/find_test_variants_test.py index 16238fd5d..44c062820 100644 --- a/scripts/python/find_test_variants_test.py +++ b/scripts/python/find_test_variants_test.py @@ -4,11 +4,7 @@ import pytest -from scripts.python.find_test_variants import ( - extract_task_name_from_url, - find_task_variants, - main, -) +from scripts.python.find_test_variants import extract_task_name_from_url, find_task_variants, main # This test file uses our real .evergreen.yml, so it might require adjustments if we change the test structure diff --git a/scripts/release/argparse_utils.py b/scripts/release/argparse_utils.py index cd1f81ddf..61340ea3e 100644 --- a/scripts/release/argparse_utils.py +++ b/scripts/release/argparse_utils.py @@ -3,10 +3,7 @@ from scripts.release.build.build_info import BUILDER_DOCKER, BUILDER_PODMAN from scripts.release.build.build_scenario import BuildScenario from scripts.release.build.image_build_configuration import SUPPORTED_PLATFORMS -from scripts.release.build.image_build_process import ( - DockerImageBuilder, - PodmanImageBuilder, -) +from scripts.release.build.image_build_process import DockerImageBuilder, PodmanImageBuilder def str2bool(v): diff --git a/scripts/release/atomic_pipeline.py b/scripts/release/atomic_pipeline.py index 19c936fdd..24a4ecd72 100755 --- a/scripts/release/atomic_pipeline.py +++ b/scripts/release/atomic_pipeline.py @@ -15,20 +15,10 @@ from opentelemetry import trace from lib.base_logger import logger -from scripts.release.agent.agents_to_rebuild import ( - get_all_agents_for_rebuild, - get_currently_used_agents, -) -from scripts.release.agent.validation import ( - generate_agent_build_args, - generate_tools_build_args, -) +from scripts.release.agent.agents_to_rebuild import get_all_agents_for_rebuild, get_currently_used_agents +from scripts.release.agent.validation import generate_agent_build_args, generate_tools_build_args from scripts.release.build.image_build_configuration import ImageBuildConfiguration -from scripts.release.build.image_signing import ( - mongodb_artifactory_login, - sign_image, - verify_signature, -) +from scripts.release.build.image_signing import mongodb_artifactory_login, sign_image, verify_signature TRACER = trace.get_tracer("evergreen-agent") diff --git a/scripts/release/build/build_info.py b/scripts/release/build/build_info.py index 7659cb866..80ff78b2a 100644 --- a/scripts/release/build/build_info.py +++ b/scripts/release/build/build_info.py @@ -124,7 +124,7 @@ def load_build_info(scenario: BuildScenario) -> BuildInfo: sign=scenario_data.get("sign", False), version_prefix=scenario_data.get("version-prefix"), registry=scenario_data.get("registry"), - region=scenario_data.get("region") + region=scenario_data.get("region"), ) return BuildInfo(images=images, binaries=binaries, helm_charts=helm_charts) diff --git a/scripts/release/build/build_scenario.py b/scripts/release/build/build_scenario.py index 99760ea89..9cd15ade3 100644 --- a/scripts/release/build/build_scenario.py +++ b/scripts/release/build/build_scenario.py @@ -1,9 +1,11 @@ from enum import StrEnum + class BuildScenario(StrEnum): RELEASE = "release" # Official release triggered by a git tag or OM version bump PATCH = "patch" # CI build for a patch/pull request STAGING = "staging" # CI build from a merge to the master DEVELOPMENT = "development" # Local build on a developer machine + SUPPORTED_SCENARIOS = supported_scenarios = list(BuildScenario) diff --git a/scripts/release/build/image_build_process.py b/scripts/release/build/image_build_process.py index ee7d04d8b..f1cea9d6a 100644 --- a/scripts/release/build/image_build_process.py +++ b/scripts/release/build/image_build_process.py @@ -3,30 +3,30 @@ from typing import Dict, Optional import boto3 -import docker import python_on_whales from botocore.exceptions import BotoCoreError, ClientError from python_on_whales.exceptions import DockerException +import docker from lib.base_logger import logger class ImageBuilder(object): - def prepare_builder(self): pass + def prepare_builder(self): + pass - def check_if_image_exists(self, image_tag: str) -> bool: pass + def check_if_image_exists(self, image_tag: str) -> bool: + pass - def build_image(self, tags: list[str], - dockerfile: str, - path: str, - args: Dict[str, str], - platforms: list[str]): pass + def build_image(self, tags: list[str], dockerfile: str, path: str, args: Dict[str, str], platforms: list[str]): + pass # check_if_image_exists could easily be used to get the digest of manfiest list but # the python package that we use somehow doesn't return the digest of manifest list # even though the respective docker CLI returns the digest. That's why we had to introduce # this function. - def get_manfiest_list_digest(self, image: str) -> Optional[str]: pass + def get_manfiest_list_digest(self, image: str) -> Optional[str]: + pass DEFAULT_BUILDER_NAME = "multiarch" # Default buildx builder name @@ -118,28 +118,21 @@ def check_if_image_exists(self, image_tag: str) -> bool: def get_manfiest_list_digest(self, image) -> Optional[str]: SKOPEO_IMAGE = "quay.io/skopeo/stable" - skopeo_inspect_command = ["inspect", f"docker://{image}", "--format", "{{.Digest}}"] + skopeo_inspect_command = ["inspect", f"docker://{image}", "--format", "{{.Digest}}"] docker_run_skopeo = ["docker", "run", "--rm", SKOPEO_IMAGE] docker_run_skopeo.extend(skopeo_inspect_command) - + try: - result = subprocess.run( - docker_run_skopeo, - capture_output=True, - text=True, - check=True - ) + result = subprocess.run(docker_run_skopeo, capture_output=True, text=True, check=True) return result.stdout.strip() except subprocess.CalledProcessError as e: - raise Exception(f"Failed to run skopeo inspect using 'docker run' for image {image}. Error: {e.stderr.strip()}") from e + raise Exception( + f"Failed to run skopeo inspect using 'docker run' for image {image}. Error: {e.stderr.strip()}" + ) from e except FileNotFoundError: raise Exception("docker is not installed on the system.") - def build_image(self, tags: list[str], - dockerfile: str, - path: str, - args: Dict[str, str], - platforms: list[str]): + def build_image(self, tags: list[str], dockerfile: str, path: str, args: Dict[str, str], platforms: list[str]): """ Build a Docker image using python_on_whales and Docker Buildx for multi-architecture support. @@ -190,25 +183,22 @@ class PodmanImageBuilder(ImageBuilder): def check_if_image_exists(self, image_tag: str) -> bool: logger.warning( - f"PodmanImageBuilder does not support checking if image exists remotely. Skipping check for {image_tag}.") + f"PodmanImageBuilder does not support checking if image exists remotely. Skipping check for {image_tag}." + ) return False def get_manfiest_list_digest(self, image) -> Optional[str]: - raise Exception("PodmanImageBuilder does not support getting digest for manifest list, use docker image builder instead.") + raise Exception( + "PodmanImageBuilder does not support getting digest for manifest list, use docker image builder instead." + ) - def build_image(self, tags: list[str], - dockerfile: str, - path: str, - args: Dict[str, str], - platforms: list[str]): + def build_image(self, tags: list[str], dockerfile: str, path: str, args: Dict[str, str], platforms: list[str]): if len(platforms) > 1: raise Exception("PodmanImageBuilder currently supports only single platform builds.") platform = platforms[0] - logger.info( - f"Building image with podman, tags {tags} for platform={platform}, dockerfile args: {args}" - ) + logger.info(f"Building image with podman, tags {tags} for platform={platform}, dockerfile args: {args}") try: build_command = [ "sudo", diff --git a/scripts/release/calculate_next_version.py b/scripts/release/calculate_next_version.py index 34cc888fa..4d9521fff 100644 --- a/scripts/release/calculate_next_version.py +++ b/scripts/release/calculate_next_version.py @@ -3,11 +3,7 @@ from git import Repo -from scripts.release.constants import ( - DEFAULT_CHANGELOG_PATH, - DEFAULT_RELEASE_INITIAL_VERSION, - DEFAULT_REPOSITORY_PATH, -) +from scripts.release.constants import DEFAULT_CHANGELOG_PATH, DEFAULT_RELEASE_INITIAL_VERSION, DEFAULT_REPOSITORY_PATH from scripts.release.version import calculate_next_version if __name__ == "__main__": diff --git a/scripts/release/create_changelog.py b/scripts/release/create_changelog.py index 2722df6b9..7495425d7 100644 --- a/scripts/release/create_changelog.py +++ b/scripts/release/create_changelog.py @@ -2,12 +2,7 @@ import datetime import os -from scripts.release.changelog import ( - FRONTMATTER_DATE_FORMAT, - ChangeKind, - get_changelog_filename, - parse_change_date, -) +from scripts.release.changelog import FRONTMATTER_DATE_FORMAT, ChangeKind, get_changelog_filename, parse_change_date from scripts.release.constants import DEFAULT_CHANGELOG_PATH if __name__ == "__main__": diff --git a/scripts/release/kubectl_mongodb/build_kubectl_plugin.py b/scripts/release/kubectl_mongodb/build_kubectl_plugin.py index ac240b89e..77295060b 100755 --- a/scripts/release/kubectl_mongodb/build_kubectl_plugin.py +++ b/scripts/release/kubectl_mongodb/build_kubectl_plugin.py @@ -4,17 +4,9 @@ from lib.base_logger import logger from scripts.release.argparse_utils import get_platforms_from_arg, get_scenario_from_arg -from scripts.release.build.build_info import ( - KUBECTL_PLUGIN_BINARY, - load_build_info, -) +from scripts.release.build.build_info import KUBECTL_PLUGIN_BINARY, load_build_info from scripts.release.build.build_scenario import SUPPORTED_SCENARIOS, BuildScenario -from scripts.release.kubectl_mongodb.utils import ( - create_s3_client, - kubectl_plugin_name, - parse_platform, - s3_path, -) +from scripts.release.kubectl_mongodb.utils import create_s3_client, kubectl_plugin_name, parse_platform, s3_path def build_kubectl_plugin(local_dir: str, platforms: list[str]): diff --git a/scripts/release/kubectl_mongodb/download_kubectl_plugin.py b/scripts/release/kubectl_mongodb/download_kubectl_plugin.py index 6029224bf..f503f7d92 100755 --- a/scripts/release/kubectl_mongodb/download_kubectl_plugin.py +++ b/scripts/release/kubectl_mongodb/download_kubectl_plugin.py @@ -6,17 +6,10 @@ from lib.base_logger import logger from scripts.release.argparse_utils import get_scenario_from_arg -from scripts.release.build.build_info import ( - KUBECTL_PLUGIN_BINARY, - load_build_info, -) +from scripts.release.build.build_info import KUBECTL_PLUGIN_BINARY, load_build_info from scripts.release.build.build_scenario import SUPPORTED_SCENARIOS, BuildScenario from scripts.release.build.image_build_configuration import SUPPORTED_PLATFORMS -from scripts.release.kubectl_mongodb.build_kubectl_plugin import ( - kubectl_plugin_name, - parse_platform, - s3_path, -) +from scripts.release.kubectl_mongodb.build_kubectl_plugin import kubectl_plugin_name, parse_platform, s3_path from scripts.release.kubectl_mongodb.utils import create_s3_client KUBECTL_MONGODB_PLUGIN_BIN_PATH = "bin/kubectl-mongodb" diff --git a/scripts/release/kubectl_mongodb/promote_kubectl_plugin.py b/scripts/release/kubectl_mongodb/promote_kubectl_plugin.py index 7a7ecff75..bf7608c5d 100644 --- a/scripts/release/kubectl_mongodb/promote_kubectl_plugin.py +++ b/scripts/release/kubectl_mongodb/promote_kubectl_plugin.py @@ -8,14 +8,9 @@ from botocore.exceptions import ClientError from lib.base_logger import logger -from scripts.release.build.build_info import ( - KUBECTL_PLUGIN_BINARY, - load_build_info, -) +from scripts.release.build.build_info import KUBECTL_PLUGIN_BINARY, load_build_info from scripts.release.build.build_scenario import BuildScenario -from scripts.release.kubectl_mongodb.download_kubectl_plugin import ( - download_kubectl_plugin_from_s3, -) +from scripts.release.kubectl_mongodb.download_kubectl_plugin import download_kubectl_plugin_from_s3 from scripts.release.kubectl_mongodb.utils import ( CHECKSUMS_PATH, LOCAL_ARTIFACTS_DIR, diff --git a/scripts/release/pipeline.py b/scripts/release/pipeline.py index 91545c65c..87fb86ac3 100644 --- a/scripts/release/pipeline.py +++ b/scripts/release/pipeline.py @@ -4,14 +4,9 @@ from typing import Callable, Dict from opentelemetry import context, trace -from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import ( - OTLPSpanExporter as OTLPSpanGrpcExporter, -) +from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter as OTLPSpanGrpcExporter from opentelemetry.sdk.resources import SERVICE_NAME, Resource -from opentelemetry.sdk.trace import ( - SynchronousMultiSpanProcessor, - TracerProvider, -) +from opentelemetry.sdk.trace import SynchronousMultiSpanProcessor, TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.trace import NonRecordingSpan, SpanContext, TraceFlags @@ -53,13 +48,8 @@ UPGRADE_HOOK_IMAGE, load_build_info, ) -from scripts.release.build.build_scenario import ( - SUPPORTED_SCENARIOS, - BuildScenario, -) -from scripts.release.build.image_build_configuration import ( - ImageBuildConfiguration, -) +from scripts.release.build.build_scenario import SUPPORTED_SCENARIOS, BuildScenario +from scripts.release.build.image_build_configuration import ImageBuildConfiguration from scripts.release.build.image_build_process import PodmanImageBuilder CURRENT_AGENTS = "current" diff --git a/scripts/release/release_info.py b/scripts/release/release_info.py index df8c48c3e..21fe52e07 100644 --- a/scripts/release/release_info.py +++ b/scripts/release/release_info.py @@ -17,12 +17,8 @@ load_build_info, ) from scripts.release.build.build_scenario import BuildScenario -from scripts.release.build.image_build_process import ( - DockerImageBuilder, -) -from scripts.release.kubectl_mongodb.utils import ( - upload_assets_to_github_release, -) +from scripts.release.build.image_build_process import DockerImageBuilder +from scripts.release.kubectl_mongodb.utils import upload_assets_to_github_release SEARCH_IMAGE = "search" SEARCH_IMAGE_REPOSITORY = "quay.io/mongodb/mongodb-search" diff --git a/scripts/release/release_notes.py b/scripts/release/release_notes.py index d01ebdc06..e937c62a5 100644 --- a/scripts/release/release_notes.py +++ b/scripts/release/release_notes.py @@ -4,17 +4,9 @@ from git import Repo from jinja2 import Template -from scripts.release.changelog import ( - ChangeKind, -) -from scripts.release.constants import ( - DEFAULT_CHANGELOG_PATH, - DEFAULT_RELEASE_INITIAL_VERSION, - DEFAULT_REPOSITORY_PATH, -) -from scripts.release.version import ( - calculate_next_version_with_changelog, -) +from scripts.release.changelog import ChangeKind +from scripts.release.constants import DEFAULT_CHANGELOG_PATH, DEFAULT_RELEASE_INITIAL_VERSION, DEFAULT_REPOSITORY_PATH +from scripts.release.version import calculate_next_version_with_changelog def generate_release_notes( diff --git a/scripts/release/tests/release_notes_test.py b/scripts/release/tests/release_notes_test.py index b26f20597..d665cbeaf 100644 --- a/scripts/release/tests/release_notes_test.py +++ b/scripts/release/tests/release_notes_test.py @@ -1,9 +1,6 @@ from git import Repo -from scripts.release.constants import ( - DEFAULT_CHANGELOG_PATH, - DEFAULT_RELEASE_INITIAL_VERSION, -) +from scripts.release.constants import DEFAULT_CHANGELOG_PATH, DEFAULT_RELEASE_INITIAL_VERSION from scripts.release.release_notes import generate_release_notes diff --git a/scripts/release/tests/version_test.py b/scripts/release/tests/version_test.py index 1b1d6d1d8..685f791fd 100644 --- a/scripts/release/tests/version_test.py +++ b/scripts/release/tests/version_test.py @@ -1,9 +1,7 @@ import unittest from scripts.release.changelog import ChangeKind -from scripts.release.version import ( - increment_previous_version, -) +from scripts.release.version import increment_previous_version class TestCalculateNextReleaseVersion(unittest.TestCase): diff --git a/scripts/release/version.py b/scripts/release/version.py index 8ef0220b9..a5cab4714 100644 --- a/scripts/release/version.py +++ b/scripts/release/version.py @@ -1,11 +1,7 @@ import semver from git import Commit, Repo, TagReference -from scripts.release.changelog import ( - ChangeEntry, - ChangeKind, - get_changelog_entries, -) +from scripts.release.changelog import ChangeEntry, ChangeKind, get_changelog_entries def calculate_next_version(