Skip to content

Commit 4ba8513

Browse files
authored
Merge branch 'master' into PYTHON-5144
2 parents dcbf212 + 7ef18af commit 4ba8513

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

57 files changed

+2436
-1231
lines changed

.evergreen/config.yml

Lines changed: 19 additions & 648 deletions
Large diffs are not rendered by default.

.evergreen/generated_configs/tasks.yml

Lines changed: 1222 additions & 251 deletions
Large diffs are not rendered by default.

.evergreen/generated_configs/variants.yml

Lines changed: 6 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -107,95 +107,51 @@ buildvariants:
107107
# Aws auth tests
108108
- name: auth-aws-ubuntu-20-python3.9
109109
tasks:
110-
- name: aws-auth-test-4.4
111-
- name: aws-auth-test-5.0
112-
- name: aws-auth-test-6.0
113-
- name: aws-auth-test-7.0
114-
- name: aws-auth-test-8.0
115-
- name: aws-auth-test-rapid
116-
- name: aws-auth-test-latest
110+
- name: .auth-aws
117111
display_name: Auth AWS Ubuntu-20 Python3.9
118112
run_on:
119113
- ubuntu2004-small
120114
expansions:
121115
PYTHON_BINARY: /opt/python/3.9/bin/python3
122116
- name: auth-aws-ubuntu-20-python3.13
123117
tasks:
124-
- name: aws-auth-test-4.4
125-
- name: aws-auth-test-5.0
126-
- name: aws-auth-test-6.0
127-
- name: aws-auth-test-7.0
128-
- name: aws-auth-test-8.0
129-
- name: aws-auth-test-rapid
130-
- name: aws-auth-test-latest
118+
- name: .auth-aws
131119
display_name: Auth AWS Ubuntu-20 Python3.13
132120
run_on:
133121
- ubuntu2004-small
134122
expansions:
135123
PYTHON_BINARY: /opt/python/3.13/bin/python3
136124
- name: auth-aws-win64-python3.9
137125
tasks:
138-
- name: aws-auth-test-4.4
139-
- name: aws-auth-test-5.0
140-
- name: aws-auth-test-6.0
141-
- name: aws-auth-test-7.0
142-
- name: aws-auth-test-8.0
143-
- name: aws-auth-test-rapid
144-
- name: aws-auth-test-latest
126+
- name: .auth-aws !.auth-aws-ecs
145127
display_name: Auth AWS Win64 Python3.9
146128
run_on:
147129
- windows-64-vsMulti-small
148130
expansions:
149-
skip_ECS_auth_test: "true"
150131
PYTHON_BINARY: C:/python/Python39/python.exe
151132
- name: auth-aws-win64-python3.13
152133
tasks:
153-
- name: aws-auth-test-4.4
154-
- name: aws-auth-test-5.0
155-
- name: aws-auth-test-6.0
156-
- name: aws-auth-test-7.0
157-
- name: aws-auth-test-8.0
158-
- name: aws-auth-test-rapid
159-
- name: aws-auth-test-latest
134+
- name: .auth-aws !.auth-aws-ecs
160135
display_name: Auth AWS Win64 Python3.13
161136
run_on:
162137
- windows-64-vsMulti-small
163138
expansions:
164-
skip_ECS_auth_test: "true"
165139
PYTHON_BINARY: C:/python/Python313/python.exe
166140
- name: auth-aws-macos-python3.9
167141
tasks:
168-
- name: aws-auth-test-4.4
169-
- name: aws-auth-test-5.0
170-
- name: aws-auth-test-6.0
171-
- name: aws-auth-test-7.0
172-
- name: aws-auth-test-8.0
173-
- name: aws-auth-test-rapid
174-
- name: aws-auth-test-latest
142+
- name: .auth-aws !.auth-aws-web-identity !.auth-aws-ecs !.auth-aws-ec2
175143
display_name: Auth AWS macOS Python3.9
176144
run_on:
177145
- macos-14
178146
expansions:
179-
skip_ECS_auth_test: "true"
180-
skip_EC2_auth_test: "true"
181-
skip_web_identity_auth_test: "true"
182147
PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.9/bin/python3
183148
- name: auth-aws-macos-python3.13
184149
tasks:
185-
- name: aws-auth-test-4.4
186-
- name: aws-auth-test-5.0
187-
- name: aws-auth-test-6.0
188-
- name: aws-auth-test-7.0
189-
- name: aws-auth-test-8.0
190-
- name: aws-auth-test-rapid
191-
- name: aws-auth-test-latest
150+
- name: .auth-aws !.auth-aws-web-identity !.auth-aws-ecs !.auth-aws-ec2
192151
display_name: Auth AWS macOS Python3.13
193152
run_on:
194153
- macos-14
195154
expansions:
196-
skip_ECS_auth_test: "true"
197-
skip_EC2_auth_test: "true"
198-
skip_web_identity_auth_test: "true"
199155
PYTHON_BINARY: /Library/Frameworks/Python.Framework/Versions/3.13/bin/python3
200156

201157
# Compression tests

.evergreen/run-mongodb-aws-ecs-test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ export SET_XTRACE_ON=1
3030
cd src
3131
rm -rf .venv
3232
rm -f .evergreen/scripts/test-env.sh || true
33-
bash ./.evergreen/just.sh setup-tests auth_aws ecs
33+
bash ./.evergreen/just.sh setup-tests auth_aws ecs-remote
3434
bash .evergreen/just.sh run-tests

.evergreen/scripts/bootstrap-mongo-orchestration.sh

Lines changed: 0 additions & 30 deletions
This file was deleted.

.evergreen/scripts/generate_config.py

Lines changed: 104 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -734,23 +734,14 @@ def create_atlas_connect_variants():
734734

735735
def create_aws_auth_variants():
736736
variants = []
737-
tasks = [
738-
"aws-auth-test-4.4",
739-
"aws-auth-test-5.0",
740-
"aws-auth-test-6.0",
741-
"aws-auth-test-7.0",
742-
"aws-auth-test-8.0",
743-
"aws-auth-test-rapid",
744-
"aws-auth-test-latest",
745-
]
746737

747738
for host_name, python in product(["ubuntu20", "win64", "macos"], MIN_MAX_PYTHON):
748739
expansions = dict()
749-
if host_name != "ubuntu20":
750-
expansions["skip_ECS_auth_test"] = "true"
740+
tasks = [".auth-aws"]
751741
if host_name == "macos":
752-
expansions["skip_EC2_auth_test"] = "true"
753-
expansions["skip_web_identity_auth_test"] = "true"
742+
tasks = [".auth-aws !.auth-aws-web-identity !.auth-aws-ecs !.auth-aws-ec2"]
743+
elif host_name == "win64":
744+
tasks = [".auth-aws !.auth-aws-ecs"]
754745
host = HOSTS[host_name]
755746
variant = create_variant(
756747
tasks,
@@ -804,20 +795,20 @@ def create_server_tasks():
804795
for topo, version, (auth, ssl), sync in product(TOPOLOGIES, ALL_VERSIONS, AUTH_SSLS, SYNCS):
805796
name = f"test-{version}-{topo}-{auth}-{ssl}-{sync}".lower()
806797
tags = [version, topo, auth, ssl, sync]
807-
bootstrap_vars = dict(
798+
server_vars = dict(
808799
VERSION=version,
809800
TOPOLOGY=topo if topo != "standalone" else "server",
810801
AUTH=auth,
811802
SSL=ssl,
812803
)
813-
bootstrap_func = FunctionCall(func="bootstrap mongo-orchestration", vars=bootstrap_vars)
804+
server_func = FunctionCall(func="run server", vars=server_vars)
814805
test_vars = dict(AUTH=auth, SSL=ssl, SYNC=sync)
815806
if sync == "sync":
816807
test_vars["TEST_NAME"] = "default_sync"
817808
elif sync == "async":
818809
test_vars["TEST_NAME"] = "default_async"
819810
test_func = FunctionCall(func="run tests", vars=test_vars)
820-
tasks.append(EvgTask(name=name, tags=tags, commands=[bootstrap_func, test_func]))
811+
tasks.append(EvgTask(name=name, tags=tags, commands=[server_func, test_func]))
821812
return tasks
822813

823814

@@ -826,11 +817,13 @@ def create_load_balancer_tasks():
826817
for auth, ssl in AUTH_SSLS:
827818
name = f"test-load-balancer-{auth}-{ssl}".lower()
828819
tags = ["load-balancer", auth, ssl]
829-
bootstrap_vars = dict(TOPOLOGY="sharded_cluster", AUTH=auth, SSL=ssl, LOAD_BALANCER="true")
830-
bootstrap_func = FunctionCall(func="bootstrap mongo-orchestration", vars=bootstrap_vars)
820+
server_vars = dict(
821+
TOPOLOGY="sharded_cluster", AUTH=auth, SSL=ssl, TEST_NAME="load_balancer"
822+
)
823+
server_func = FunctionCall(func="run server", vars=server_vars)
831824
test_vars = dict(AUTH=auth, SSL=ssl, TEST_NAME="load_balancer")
832825
test_func = FunctionCall(func="run tests", vars=test_vars)
833-
tasks.append(EvgTask(name=name, tags=tags, commands=[bootstrap_func, test_func]))
826+
tasks.append(EvgTask(name=name, tags=tags, commands=[server_func, test_func]))
834827

835828
return tasks
836829

@@ -846,14 +839,105 @@ def create_kms_tasks():
846839
sub_test_name += "-fail"
847840
commands = []
848841
if not success:
849-
commands.append(FunctionCall(func="bootstrap mongo-orchestration"))
842+
commands.append(FunctionCall(func="run server"))
850843
test_vars = dict(TEST_NAME="kms", SUB_TEST_NAME=sub_test_name)
851844
test_func = FunctionCall(func="run tests", vars=test_vars)
852845
commands.append(test_func)
853846
tasks.append(EvgTask(name=name, commands=commands))
854847
return tasks
855848

856849

850+
def create_aws_tasks():
851+
tasks = []
852+
aws_test_types = [
853+
"regular",
854+
"assume-role",
855+
"ec2",
856+
"env-creds",
857+
"session-creds",
858+
"web-identity",
859+
"ecs",
860+
]
861+
for version in get_versions_from("4.4"):
862+
base_name = f"test-auth-aws-{version}"
863+
base_tags = ["auth-aws"]
864+
server_vars = dict(AUTH_AWS="1", VERSION=version)
865+
server_func = FunctionCall(func="run server", vars=server_vars)
866+
assume_func = FunctionCall(func="assume ec2 role")
867+
for test_type in aws_test_types:
868+
tags = [*base_tags, f"auth-aws-{test_type}"]
869+
name = f"{base_name}-{test_type}"
870+
test_vars = dict(TEST_NAME="auth_aws", SUB_TEST_NAME=test_type)
871+
test_func = FunctionCall(func="run tests", vars=test_vars)
872+
funcs = [server_func, assume_func, test_func]
873+
tasks.append(EvgTask(name=name, tags=tags, commands=funcs))
874+
875+
tags = [*base_tags, "auth-aws-web-identity"]
876+
name = f"{base_name}-web-identity-session-name"
877+
test_vars = dict(
878+
TEST_NAME="auth_aws", SUB_TEST_NAME="web-identity", AWS_ROLE_SESSION_NAME="test"
879+
)
880+
test_func = FunctionCall(func="run tests", vars=test_vars)
881+
funcs = [server_func, assume_func, test_func]
882+
tasks.append(EvgTask(name=name, tags=tags, commands=funcs))
883+
884+
return tasks
885+
886+
887+
def _create_ocsp_task(algo, variant, server_type, base_task_name):
888+
file_name = f"{algo}-basic-tls-ocsp-{variant}.json"
889+
890+
vars = dict(TEST_NAME="ocsp", ORCHESTRATION_FILE=file_name)
891+
server_func = FunctionCall(func="run server", vars=vars)
892+
893+
vars = dict(ORCHESTRATION_FILE=file_name, OCSP_SERVER_TYPE=server_type, TEST_NAME="ocsp")
894+
test_func = FunctionCall(func="run tests", vars=vars)
895+
896+
tags = ["ocsp", f"ocsp-{algo}"]
897+
if "disableStapling" not in variant:
898+
tags.append("ocsp-staple")
899+
900+
task_name = f"test-ocsp-{algo}-{base_task_name}"
901+
commands = [server_func, test_func]
902+
return EvgTask(name=task_name, tags=tags, commands=commands)
903+
904+
905+
def create_ocsp_tasks():
906+
tasks = []
907+
tests = [
908+
("disableStapling", "valid", "valid-cert-server-does-not-staple"),
909+
("disableStapling", "revoked", "invalid-cert-server-does-not-staple"),
910+
("disableStapling", "valid-delegate", "delegate-valid-cert-server-does-not-staple"),
911+
("disableStapling", "revoked-delegate", "delegate-invalid-cert-server-does-not-staple"),
912+
("disableStapling", "no-responder", "soft-fail"),
913+
("mustStaple", "valid", "valid-cert-server-staples"),
914+
("mustStaple", "revoked", "invalid-cert-server-staples"),
915+
("mustStaple", "valid-delegate", "delegate-valid-cert-server-staples"),
916+
("mustStaple", "revoked-delegate", "delegate-invalid-cert-server-staples"),
917+
(
918+
"mustStaple-disableStapling",
919+
"revoked",
920+
"malicious-invalid-cert-mustStaple-server-does-not-staple",
921+
),
922+
(
923+
"mustStaple-disableStapling",
924+
"revoked-delegate",
925+
"delegate-malicious-invalid-cert-mustStaple-server-does-not-staple",
926+
),
927+
(
928+
"mustStaple-disableStapling",
929+
"no-responder",
930+
"malicious-no-responder-mustStaple-server-does-not-staple",
931+
),
932+
]
933+
for algo in ["ecdsa", "rsa"]:
934+
for variant, server_type, base_task_name in tests:
935+
task = _create_ocsp_task(algo, variant, server_type, base_task_name)
936+
tasks.append(task)
937+
938+
return tasks
939+
940+
857941
##################
858942
# Generate Config
859943
##################

.evergreen/scripts/run-aws-ecs-auth-test.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

.evergreen/scripts/run-mod-wsgi-tests.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ PYTHON_VERSION=$(${PYTHON_BINARY} -c "import sys; sys.stdout.write('.'.join(str(
2222
${PYTHON_BINARY} -m venv --system-site-packages .venv
2323
source .venv/bin/activate
2424
pip install -U pip
25-
python -m pip install -e .
25+
export PYMONGO_C_EXT_MUST_BUILD=1
26+
python -m pip install -v -e .
2627

2728
export MOD_WSGI_SO=/opt/python/mod_wsgi/python_version/$PYTHON_VERSION/mod_wsgi_version/$MOD_WSGI_VERSION/mod_wsgi.so
2829
export PYTHONHOME=/opt/python/$PYTHON_VERSION

.evergreen/scripts/run-mongodb-aws-test.sh

Lines changed: 0 additions & 28 deletions
This file was deleted.

.evergreen/scripts/run-ocsp-test.sh

Lines changed: 0 additions & 12 deletions
This file was deleted.

0 commit comments

Comments
 (0)