Skip to content

PYTHON-5316 Update tests for other hosts #2287

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
Apr 16, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions .evergreen/generated_configs/tasks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3083,6 +3083,50 @@ tasks:
SUB_TEST_NAME: gke
tags: [auth_oidc, auth_oidc_remote]

# Other hosts tests
- name: test-sync-noauth-nossl-standalone
commands:
- func: run server
vars:
AUTH: noauth
SSL: nossl
TOPOLOGY: standalone
- func: run tests
vars:
AUTH: noauth
SSL: nossl
TOPOLOGY: standalone
TEST_NAME: default_sync
tags: [other-hosts, standalone-noauth-nossl]
- name: test-async-noauth-ssl-replica-set
commands:
- func: run server
vars:
AUTH: noauth
SSL: ssl
TOPOLOGY: replica_set
- func: run tests
vars:
AUTH: noauth
SSL: ssl
TOPOLOGY: replica_set
TEST_NAME: default_async
tags: [other-hosts, replica_set-noauth-ssl]
- name: test-sync-auth-ssl-sharded-cluster
commands:
- func: run server
vars:
AUTH: auth
SSL: ssl
TOPOLOGY: sharded_cluster
- func: run tests
vars:
AUTH: auth
SSL: ssl
TOPOLOGY: sharded_cluster
TEST_NAME: default_sync
tags: [other-hosts, sharded_cluster-auth-ssl]

# Perf tests
- name: perf-8.0-standalone-ssl
commands:
Expand Down
45 changes: 25 additions & 20 deletions .evergreen/generated_configs/variants.yml
Original file line number Diff line number Diff line change
@@ -1,61 +1,66 @@
buildvariants:
# Alternative hosts tests
- name: openssl-1.0.2-rhel7-python3.9
- name: openssl-1.0.2-rhel7-v5.0-python3.9
tasks:
- name: .5.0 .standalone !.sync_async
display_name: OpenSSL 1.0.2 RHEL7 Python3.9
- name: .other-hosts
display_name: OpenSSL 1.0.2 RHEL7 v5.0 Python3.9
run_on:
- rhel79-small
batchtime: 10080
expansions:
VERSION: "5.0"
PYTHON_VERSION: "3.9"
PYTHON_BINARY: /opt/python/3.9/bin/python3
- name: other-hosts-rhel9-fips
- name: other-hosts-rhel9-fips-latest
tasks:
- name: .6.0 .standalone !.sync_async
display_name: Other hosts RHEL9-FIPS
- name: .other-hosts
display_name: Other hosts RHEL9-FIPS latest
run_on:
- rhel92-fips
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
REQUIRE_FIPS: "1"
- name: other-hosts-rhel8-zseries
- name: other-hosts-rhel8-zseries-latest
tasks:
- name: .6.0 .standalone !.sync_async
display_name: Other hosts RHEL8-zseries
- name: .other-hosts
display_name: Other hosts RHEL8-zseries latest
run_on:
- rhel8-zseries-small
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
- name: other-hosts-rhel8-power8
- name: other-hosts-rhel8-power8-latest
tasks:
- name: .6.0 .standalone !.sync_async
display_name: Other hosts RHEL8-POWER8
- name: .other-hosts
display_name: Other hosts RHEL8-POWER8 latest
run_on:
- rhel8-power-small
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
- name: other-hosts-rhel8-arm64
- name: other-hosts-rhel8-arm64-latest
tasks:
- name: .6.0 .standalone !.sync_async
display_name: Other hosts RHEL8-arm64
- name: .other-hosts
display_name: Other hosts RHEL8-arm64 latest
run_on:
- rhel82-arm64-small
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"
- name: other-hosts-amazon2023
- name: other-hosts-amazon2023-latest
tasks:
- name: .latest !.sync_async .sharded_cluster .auth .ssl
- name: .latest !.sync_async .replica_set .noauth .ssl
- name: .latest !.sync_async .standalone .noauth .nossl
display_name: Other hosts Amazon2023
- name: .other-hosts
display_name: Other hosts Amazon2023 latest
run_on:
- amazon2023-arm64-latest-large-m8g
batchtime: 10080
expansions:
VERSION: latest
NO_EXT: "1"

# Atlas connect tests
Expand Down
42 changes: 30 additions & 12 deletions .evergreen/scripts/generate_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
create_variant,
get_assume_role,
get_s3_put,
get_standard_auth_ssl,
get_subprocess_exec,
get_task_name,
get_variant_name,
Expand Down Expand Up @@ -548,29 +549,29 @@ def create_alternative_hosts_variants():
variants = []

host = HOSTS["rhel7"]
version = "5.0"
variants.append(
create_variant(
[".5.0 .standalone !.sync_async"],
get_variant_name("OpenSSL 1.0.2", host, python=CPYTHONS[0]),
[".other-hosts"],
get_variant_name("OpenSSL 1.0.2", host, python=CPYTHONS[0], version=version),
host=host,
python=CPYTHONS[0],
batchtime=batchtime,
expansions=dict(VERSION=version, PYTHON_VERSION=CPYTHONS[0]),
)
)

version = "latest"
for host_name in OTHER_HOSTS:
expansions = dict()
expansions = dict(VERSION="latest")
handle_c_ext(C_EXTS[0], expansions)
host = HOSTS[host_name]
if "fips" in host_name.lower():
expansions["REQUIRE_FIPS"] = "1"
tags = [".6.0 .standalone !.sync_async"]
if host_name == "Amazon2023":
tags = [f".latest !.sync_async {t}" for t in SUB_TASKS]
variants.append(
create_variant(
tags,
display_name=get_variant_name("Other hosts", host),
[".other-hosts"],
display_name=get_variant_name("Other hosts", host, version=version),
batchtime=batchtime,
host=host,
expansions=expansions,
Expand Down Expand Up @@ -615,14 +616,32 @@ def create_server_version_tasks():
return tasks


def create_other_hosts_tasks():
tasks = []

for topology, sync in zip_cycle(TOPOLOGIES, SYNCS):
auth, ssl = get_standard_auth_ssl(topology)
tags = [
"other-hosts",
f"{topology}-{auth}-{ssl}",
]
expansions = dict(AUTH=auth, SSL=ssl, TOPOLOGY=topology)
name = get_task_name("test", sync=sync, **expansions)
server_func = FunctionCall(func="run server", vars=expansions)
test_vars = expansions.copy()
test_vars["TEST_NAME"] = f"default_{sync}"
test_func = FunctionCall(func="run tests", vars=test_vars)
tasks.append(EvgTask(name=name, tags=tags, commands=[server_func, test_func]))
return tasks


def create_standard_linux_tasks():
tasks = []

for (version, topology), python in zip_cycle(
list(product(ALL_VERSIONS, TOPOLOGIES)), ALL_PYTHONS
):
auth = "auth" if topology == "sharded_cluster" else "noauth"
ssl = "nossl" if topology == "standalone" else "ssl"
auth, ssl = get_standard_auth_ssl(topology)
tags = [
"standard-linux",
f"server-{version}",
Expand All @@ -645,8 +664,7 @@ def create_standard_non_linux_tasks():
for (version, topology), python, sync in zip_cycle(
list(product(ALL_VERSIONS, TOPOLOGIES)), CPYTHONS, SYNCS
):
auth = "auth" if topology == "sharded_cluster" else "noauth"
ssl = "nossl" if topology == "standalone" else "ssl"
auth, ssl = get_standard_auth_ssl(topology)
tags = [
"standard-non-linux",
f"server-{version}",
Expand Down
6 changes: 6 additions & 0 deletions .evergreen/scripts/generate_config_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -239,6 +239,12 @@ def handle_c_ext(c_ext, expansions) -> None:
expansions["NO_EXT"] = "1"


def get_standard_auth_ssl(topology):
auth = "auth" if topology == "sharded_cluster" else "noauth"
ssl = "nossl" if topology == "standalone" else "ssl"
return auth, ssl


def get_assume_role(**kwargs):
kwargs.setdefault("command_type", EvgCommandType.SETUP)
kwargs.setdefault("role_arn", "${assume_role_arn}")
Expand Down
Loading