@@ -476,7 +476,7 @@ functions:
476
476
silent : true
477
477
script : |
478
478
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
479
- alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
479
+ alias urlencode='python -c "import sys, urllib as ul; sys.stdout.write( ul.quote_plus(sys.argv[1]) )"'
480
480
USER=$(urlencode ${iam_auth_ecs_account})
481
481
PASS=$(urlencode ${iam_auth_ecs_secret_access_key})
482
482
MONGODB_URI="mongodb://$USER:$PASS@localhost"
@@ -487,7 +487,7 @@ functions:
487
487
working_dir : " src"
488
488
script : |
489
489
${PREPARE_SHELL}
490
- .evergreen/run-mongodb-aws-test.sh
490
+ PYTHON_BINARY=${PYTHON_BINARY} .evergreen/run-mongodb-aws-test.sh
491
491
492
492
" run aws auth test with assume role credentials " :
493
493
- command : shell.exec
@@ -496,6 +496,14 @@ functions:
496
496
working_dir : " src"
497
497
script : |
498
498
${PREPARE_SHELL}
499
+ # The aws_e2e_assume_role script requires python3 with boto3.
500
+ virtualenv -p ${python3_binary} mongovenv
501
+ if [ "Windows_NT" = "$OS" ]; then
502
+ . mongovenv/Scripts/activate
503
+ else
504
+ . mongovenv/bin/activate
505
+ fi
506
+ pip install boto3
499
507
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
500
508
mongo aws_e2e_assume_role.js
501
509
- command : shell.exec
@@ -506,12 +514,13 @@ functions:
506
514
script : |
507
515
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
508
516
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
509
- alias urlencode='python -c "import sys, urllib as ul; print ul.quote_plus(sys.argv[1])"'
510
- USER=$(jq -r '.AccessKeyId' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
517
+ alias urlencode='python -c "import sys, urllib as ul; sys.stdout.write(ul.quote_plus(sys.argv[1]))"'
518
+ alias jsonkey='python -c "import json,sys;sys.stdout.write(json.load(sys.stdin)[sys.argv[1]])" < ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json'
519
+ USER=$(jsonkey AccessKeyId)
511
520
USER=$(urlencode $USER)
512
- PASS=$(jq -r '. SecretAccessKey' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json )
521
+ PASS=$(jsonkey SecretAccessKey)
513
522
PASS=$(urlencode $PASS)
514
- SESSION_TOKEN=$(jq -r '. SessionToken' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json )
523
+ SESSION_TOKEN=$(jsonkey SessionToken)
515
524
SESSION_TOKEN=$(urlencode $SESSION_TOKEN)
516
525
MONGODB_URI="mongodb://$USER:$PASS@localhost"
517
526
EOF
@@ -521,7 +530,7 @@ functions:
521
530
working_dir : " src"
522
531
script : |
523
532
${PREPARE_SHELL}
524
- .evergreen/run-mongodb-aws-test.sh
533
+ PYTHON_BINARY=${PYTHON_BINARY} .evergreen/run-mongodb-aws-test.sh
525
534
526
535
" run aws auth test with aws EC2 credentials " :
527
536
- command : shell.exec
@@ -530,6 +539,16 @@ functions:
530
539
working_dir : " src"
531
540
script : |
532
541
${PREPARE_SHELL}
542
+ if [ "${skip_EC2_auth_test}" == "true" ]; then
543
+ echo "This platform does not support the EC2 auth test, skipping..."
544
+ exit 0
545
+ fi
546
+ # The mongovenv was created earlier in "run aws auth test with assume role credentials".
547
+ if [ "Windows_NT" = "$OS" ]; then
548
+ . mongovenv/Scripts/activate
549
+ else
550
+ . mongovenv/bin/activate
551
+ fi
533
552
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
534
553
mongo aws_e2e_ec2.js
535
554
- command : shell.exec
@@ -538,7 +557,7 @@ functions:
538
557
working_dir : " src"
539
558
script : |
540
559
${PREPARE_SHELL}
541
- .evergreen/run-mongodb-aws-test.sh
560
+ PYTHON_BINARY=${PYTHON_BINARY} .evergreen/run-mongodb-aws-test.sh
542
561
543
562
" run aws auth test with aws credentials as environment variables " :
544
563
- command : shell.exec
@@ -558,7 +577,7 @@ functions:
558
577
working_dir : " src"
559
578
script : |
560
579
${PREPARE_SHELL}
561
- PROJECT_DIRECTORY=${PROJECT_DIRECTORY} .evergreen/run-mongodb-aws-test.sh
580
+ PYTHON_BINARY=${PYTHON_BINARY} PROJECT_DIRECTORY=${PROJECT_DIRECTORY} .evergreen/run-mongodb-aws-test.sh
562
581
563
582
" run aws auth test with aws credentials and session token as environment variables " :
564
583
- command : shell.exec
@@ -569,17 +588,18 @@ functions:
569
588
script : |
570
589
# DO NOT ECHO WITH XTRACE (which PREPARE_SHELL does)
571
590
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
572
- export AWS_ACCESS_KEY_ID=$(jq -r '.AccessKeyId' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
573
- export AWS_SECRET_ACCESS_KEY=$(jq -r '.SecretAccessKey' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
574
- export AWS_SESSION_TOKEN=$(jq -r '.SessionToken' ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json)
591
+ alias jsonkey='python -c "import json,sys;sys.stdout.write(json.load(sys.stdin)[sys.argv[1]])" < ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json'
592
+ export AWS_ACCESS_KEY_ID=$(jsonkey AccessKeyId)
593
+ export AWS_SECRET_ACCESS_KEY=$(jsonkey SecretAccessKey)
594
+ export AWS_SESSION_TOKEN=$(jsonkey SessionToken)
575
595
EOF
576
596
- command : shell.exec
577
597
type : test
578
598
params :
579
599
working_dir : " src"
580
600
script : |
581
601
${PREPARE_SHELL}
582
- .evergreen/run-mongodb-aws-test.sh
602
+ PYTHON_BINARY=${PYTHON_BINARY} .evergreen/run-mongodb-aws-test.sh
583
603
584
604
" run aws ECS auth test " :
585
605
- command : shell.exec
@@ -588,8 +608,11 @@ functions:
588
608
working_dir : " src"
589
609
script : |
590
610
${PREPARE_SHELL}
611
+ if [ "${skip_ECS_auth_test}" == "true" ]; then
612
+ echo "This platform does not support the ECS auth test, skipping..."
613
+ exit 0
614
+ fi
591
615
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
592
-
593
616
cat <<EOF > setup.js
594
617
const mongo_binaries = "$MONGODB_BINARIES";
595
618
const project_dir = "$PROJECT_DIRECTORY";
@@ -1211,6 +1234,9 @@ axes:
1211
1234
display_name : " macOS 10.14"
1212
1235
run_on : macos-1014
1213
1236
variables :
1237
+ skip_EC2_auth_test : true
1238
+ skip_ECS_auth_test : true
1239
+ python3_binary : python3
1214
1240
libmongocrypt_url : https://s3.amazonaws.com/mciuploads/libmongocrypt/macos/master/latest/libmongocrypt.tar.gz
1215
1241
- id : rhel62
1216
1242
display_name : " RHEL 6.2 (x86_64)"
@@ -1254,6 +1280,8 @@ axes:
1254
1280
display_name : " Ubuntu 18.04"
1255
1281
run_on : ubuntu1804-test
1256
1282
batchtime : 10080 # 7 days
1283
+ variables :
1284
+ python3_binary : python3
1257
1285
- id : ubuntu1604-arm64-small
1258
1286
display_name : " Ubuntu 16.04 (ARM64)"
1259
1287
run_on : ubuntu1604-arm64-small
@@ -1293,6 +1321,8 @@ axes:
1293
1321
run_on : windows-64-vsMulti-small
1294
1322
batchtime : 10080 # 7 days
1295
1323
variables :
1324
+ skip_ECS_auth_test : true
1325
+ python3_binary : " C:/python/Python38/python.exe"
1296
1326
libmongocrypt_url : https://s3.amazonaws.com/mciuploads/libmongocrypt/windows-test/master/latest/libmongocrypt.tar.gz
1297
1327
1298
1328
# Test with authentication?
@@ -1426,6 +1456,15 @@ axes:
1426
1456
display_name : " Python 3.8"
1427
1457
variables :
1428
1458
PYTHON_BINARY : " C:/python/Python38/python.exe"
1459
+ # System python
1460
+ - id : " system-python"
1461
+ display_name : " Python"
1462
+ variables :
1463
+ PYTHON_BINARY : " python"
1464
+ - id : " system-python3"
1465
+ display_name : " Python3"
1466
+ variables :
1467
+ PYTHON_BINARY : " python3"
1429
1468
1430
1469
# Choice of mod_wsgi version
1431
1470
- id : mod-wsgi-version
@@ -2141,9 +2180,17 @@ buildvariants:
2141
2180
2142
2181
- matrix_name : " aws-auth-test"
2143
2182
matrix_spec :
2144
- platform : ubuntu-18.04
2145
- display_name : " MONGODB-AWS Auth test"
2146
- run_on : ubuntu1804-test
2183
+ platform : [ubuntu-18.04, macos-1014]
2184
+ python-version : ["system-python", "system-python3"]
2185
+ display_name : " MONGODB-AWS Auth ${platform} ${python-version}"
2186
+ tasks :
2187
+ - name : " aws-auth-test"
2188
+
2189
+ - matrix_name : " aws-auth-test-windows"
2190
+ matrix_spec :
2191
+ platform : [windows-64-vsMulti-small]
2192
+ python-version : ["win-vs2015-2.7", "win-vs2010-3.4", "win-vs2015-3.5", "win-vs2015-3.6", "win-vs2015-3.7", "win-vs2015-3.8"]
2193
+ display_name : " MONGODB-AWS Auth ${platform} ${python-version}"
2147
2194
tasks :
2148
2195
- name : " aws-auth-test"
2149
2196
0 commit comments