Skip to content

Commit 8796589

Browse files
authored
PHPLIB-717: Test serverless with load balancer (#892)
1 parent 65bbd42 commit 8796589

File tree

5 files changed

+25
-189
lines changed

5 files changed

+25
-189
lines changed

.evergreen/config.yml

+19-24
Original file line numberDiff line numberDiff line change
@@ -203,33 +203,29 @@ functions:
203203
- command: shell.exec
204204
params:
205205
working_dir: "src"
206-
shell: bash
207-
script: |-
206+
script: |
208207
${PREPARE_SHELL}
209-
export PROJECT=${PROJECT}
210-
export SERVERLESS_DRIVERS_GROUP=${SERVERLESS_DRIVERS_GROUP}
211-
export SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY}
212-
export SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY}
213-
export SERVERLESS_ATLAS_USER=${SERVERLESS_ATLAS_USER}
214-
export SERVERLESS_ATLAS_PASSWORD=${SERVERLESS_ATLAS_PASSWORD}
215-
bash ${PROJECT_DIRECTORY}/.evergreen/serverless/create-instance.sh
208+
LOADBALANCED=ON \
209+
SERVERLESS_DRIVERS_GROUP=${SERVERLESS_DRIVERS_GROUP} \
210+
SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY} \
211+
SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY} \
212+
bash ${DRIVERS_TOOLS}/.evergreen/serverless/create-instance.sh
216213
- command: expansions.update
217214
params:
218215
file: src/serverless-expansion.yml
219216

220217
"delete serverless instance":
221218
- command: shell.exec
222219
params:
223-
shell: bash
224-
script: |-
225-
set -o errexit
226-
export SERVERLESS_DRIVERS_GROUP=${SERVERLESS_DRIVERS_GROUP}
227-
export SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY}
228-
export SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY}
229-
export SERVERLESS_ATLAS_USER=${SERVERLESS_ATLAS_USER}
230-
export SERVERLESS_ATLAS_PASSWORD=${SERVERLESS_ATLAS_PASSWORD}
231-
export SERVERLESS_INSTANCE_NAME=${SERVERLESS_INSTANCE_NAME}
232-
bash ${PROJECT_DIRECTORY}/.evergreen/serverless/delete-instance.sh
220+
script: |
221+
# Only run if a serverless instance was started
222+
if [ -n "${SERVERLESS_INSTANCE_NAME}" ]; then
223+
SERVERLESS_DRIVERS_GROUP=${SERVERLESS_DRIVERS_GROUP} \
224+
SERVERLESS_API_PUBLIC_KEY=${SERVERLESS_API_PUBLIC_KEY} \
225+
SERVERLESS_API_PRIVATE_KEY=${SERVERLESS_API_PRIVATE_KEY} \
226+
SERVERLESS_INSTANCE_NAME=${SERVERLESS_INSTANCE_NAME} \
227+
bash ${DRIVERS_TOOLS}/.evergreen/serverless/delete-instance.sh
228+
fi
233229
234230
"run tests":
235231
- command: shell.exec
@@ -269,8 +265,7 @@ functions:
269265
type: test
270266
params:
271267
working_dir: "src"
272-
shell: bash
273-
script: |-
268+
script: |
274269
${PREPARE_SHELL}
275270
export MONGODB_IS_SERVERLESS=on
276271
export MONGODB_USERNAME=${SERVERLESS_ATLAS_USER}
@@ -396,6 +391,7 @@ post:
396391
# - func: "upload working dir"
397392
- func: "upload mo artifacts"
398393
- func: "upload test results"
394+
- func: "delete serverless instance"
399395
- func: "stop load balancer"
400396
- func: "stop mongo-orchestration"
401397
- func: "cleanup"
@@ -494,10 +490,9 @@ tasks:
494490
tags: ["serverless"]
495491
commands:
496492
- func: "create serverless instance"
497-
vars:
498-
PROJECT: "mongo-php-library"
499493
- func: "run serverless tests"
500-
- func: "delete serverless instance"
494+
vars:
495+
MONGODB_URI: "${SINGLE_ATLASPROXY_SERVERLESS_URI}"
501496

502497
- name: "test-loadBalanced"
503498
tags: ["loadbalanced"]

.evergreen/serverless/create-instance.sh

-87
This file was deleted.

.evergreen/serverless/delete-instance.sh

-40
This file was deleted.

.evergreen/serverless/get-instance.sh

-37
This file was deleted.

tests/FunctionalTestCase.php

+6-1
Original file line numberDiff line numberDiff line change
@@ -423,7 +423,7 @@ protected function isShardedCluster()
423423
return true;
424424
}
425425

426-
// Assume that load balancers are properly configured and front mongos
426+
// Assume that load balancers are properly configured and front sharded clusters
427427
if ($type == Server::TYPE_LOAD_BALANCER) {
428428
return true;
429429
}
@@ -433,6 +433,11 @@ protected function isShardedCluster()
433433

434434
protected function isShardedClusterUsingReplicasets()
435435
{
436+
// Assume serverless is a sharded cluster using replica sets
437+
if (static::isServerless()) {
438+
return true;
439+
}
440+
436441
$cursor = $this->getPrimaryServer()->executeQuery(
437442
'config.shards',
438443
new Query([], ['limit' => 1])

0 commit comments

Comments
 (0)