Skip to content

Commit 1066e2a

Browse files
authored
GODRIVER-2607 Remove legacy shell from test scripts (#1429)
1 parent 1dbe6de commit 1066e2a

File tree

2 files changed

+21
-196
lines changed

2 files changed

+21
-196
lines changed

.evergreen/config.yml

Lines changed: 19 additions & 183 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ functions:
112112
PROJECT_DIRECTORY: "$PROJECT_DIRECTORY"
113113
PREPARE_SHELL: |
114114
set -o errexit
115+
export SKIP_LEGACY_SHELL=1
115116
export GOROOT="$GOROOT"
116117
export GOPATH="$GOPATH"
117118
export GOCACHE="$GOCACHE"
@@ -724,69 +725,29 @@ functions:
724725
fi
725726
726727
add-aws-auth-variables-to-file:
727-
- command: shell.exec
728-
type: test
728+
- command: ec2.assume_role
729729
params:
730-
shell: "bash"
731-
working_dir: "src"
732-
silent: true
733-
script: |
734-
cat <<EOF > ${DRIVERS_TOOLS}/.evergreen/auth_aws/aws_e2e_setup.json
735-
{
736-
"iam_auth_ecs_account" : "${iam_auth_ecs_account}",
737-
"iam_auth_ecs_secret_access_key" : "${iam_auth_ecs_secret_access_key}",
738-
"iam_auth_ecs_account_arn": "arn:aws:iam::557821124784:user/authtest_fargate_user",
739-
"iam_auth_ecs_cluster": "${iam_auth_ecs_cluster}",
740-
"iam_auth_ecs_task_definition": "${iam_auth_ecs_task_definition_ubuntu2004}",
741-
"iam_auth_ecs_subnet_a": "${iam_auth_ecs_subnet_a}",
742-
"iam_auth_ecs_subnet_b": "${iam_auth_ecs_subnet_b}",
743-
"iam_auth_ecs_security_group": "${iam_auth_ecs_security_group}",
744-
"iam_auth_assume_aws_account" : "${iam_auth_assume_aws_account}",
745-
"iam_auth_assume_aws_secret_access_key" : "${iam_auth_assume_aws_secret_access_key}",
746-
"iam_auth_assume_role_name" : "${iam_auth_assume_role_name}",
747-
"iam_auth_ec2_instance_account" : "${iam_auth_ec2_instance_account}",
748-
"iam_auth_ec2_instance_secret_access_key" : "${iam_auth_ec2_instance_secret_access_key}",
749-
"iam_auth_ec2_instance_profile" : "${iam_auth_ec2_instance_profile}",
750-
"iam_auth_assume_web_role_name": "${iam_auth_assume_web_role_name}",
751-
"iam_web_identity_issuer": "${iam_web_identity_issuer}",
752-
"iam_web_identity_rsa_key": "${iam_web_identity_rsa_key}",
753-
"iam_web_identity_jwks_uri": "${iam_web_identity_jwks_uri}",
754-
"iam_web_identity_token_file": "${iam_web_identity_token_file}"
755-
}
756-
EOF
757-
758-
run-aws-auth-test-with-regular-aws-credentials:
730+
role_arn: ${aws_test_secrets_role}
759731
- command: shell.exec
760732
type: test
761733
params:
734+
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
762735
shell: "bash"
763736
working_dir: "src"
764737
script: |
765738
${PREPARE_SHELL}
766-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
767-
. ./activate-authawsvenv.sh
768-
mongo aws_e2e_regular_aws.js
769-
- command: shell.exec
770-
type: test
771-
params:
772-
shell: "bash"
773-
working_dir: "src"
774-
silent: true
775-
script: |
776-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
777-
alias urlencode='python3 -c "import sys, urllib.parse as ulp; sys.stdout.write(ulp.quote_plus(sys.argv[1]))"'
778-
USER=$(urlencode ${iam_auth_ecs_account})
779-
PASS=$(urlencode ${iam_auth_ecs_secret_access_key})
780-
MONGODB_URI="mongodb://$USER:$PASS@localhost"
781-
EOF
739+
cd $DRIVERS_TOOLS/.evergreen/auth_aws
740+
./setup_secrets.sh drivers/aws_auth
741+
742+
run-aws-auth-test-with-regular-aws-credentials:
782743
- command: shell.exec
783744
type: test
784745
params:
785746
shell: "bash"
786747
working_dir: "src"
787748
script: |
788749
${PREPARE_SHELL}
789-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
750+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh regular
790751
791752
run-aws-auth-test-with-assume-role-credentials:
792753
- command: shell.exec
@@ -796,36 +757,7 @@ functions:
796757
working_dir: "src"
797758
script: |
798759
${PREPARE_SHELL}
799-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
800-
. ./activate-authawsvenv.sh
801-
mongo aws_e2e_assume_role.js
802-
- command: shell.exec
803-
type: test
804-
params:
805-
shell: "bash"
806-
working_dir: "src"
807-
silent: true
808-
script: |
809-
# DO NOT ECHO WITH XTRACE
810-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
811-
alias urlencode='python3 -c "import sys, urllib.parse as ulp; sys.stdout.write(ulp.quote_plus(sys.argv[1]))"'
812-
alias jsonkey='python3 -c "import json,sys;sys.stdout.write(json.load(sys.stdin)[sys.argv[1]])" < ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json'
813-
USER=$(jsonkey AccessKeyId)
814-
USER=$(urlencode $USER)
815-
PASS=$(jsonkey SecretAccessKey)
816-
PASS=$(urlencode $PASS)
817-
SESSION_TOKEN=$(jsonkey SessionToken)
818-
SESSION_TOKEN=$(urlencode $SESSION_TOKEN)
819-
MONGODB_URI="mongodb://$USER:$PASS@localhost"
820-
EOF
821-
- command: shell.exec
822-
type: test
823-
params:
824-
shell: "bash"
825-
working_dir: "src"
826-
script: |
827-
${PREPARE_SHELL}
828-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
760+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh assume-role
829761
830762
run-aws-auth-test-with-aws-EC2-credentials:
831763
- command: shell.exec
@@ -839,70 +771,27 @@ functions:
839771
echo "This platform does not support the EC2 auth test, skipping..."
840772
exit 0
841773
fi
842-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
843-
. ./activate-authawsvenv.sh
844-
mongo aws_e2e_ec2.js
845-
- command: shell.exec
846-
type: test
847-
params:
848-
shell: "bash"
849-
working_dir: "src"
850-
script: |
851-
${PREPARE_SHELL}
852-
if [ "${SKIP_EC2_AUTH_TEST}" = "true" ]; then
853-
exit 0
854-
fi
855-
856-
# Truncate "prepare_mongodb_aws.sh" to zero length. If file not present, creates zero-length file.
857-
: > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
858-
859-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
774+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh ec2
860775
861776
run-aws-auth-test-with-aws-credentials-as-environment-variables:
862-
- command: shell.exec
863-
type: test
864-
params:
865-
shell: "bash"
866-
working_dir: "src"
867-
silent: true
868-
script: |
869-
# DO NOT ECHO WITH XTRACE
870-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
871-
export AWS_ACCESS_KEY_ID=${iam_auth_ecs_account}
872-
export AWS_SECRET_ACCESS_KEY=${iam_auth_ecs_secret_access_key}
873-
EOF
874777
- command: shell.exec
875778
type: test
876779
params:
877780
shell: "bash"
878781
working_dir: "src"
879782
script: |
880783
${PREPARE_SHELL}
881-
PROJECT_DIRECTORY=${PROJECT_DIRECTORY} ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
784+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh env-creds
882785
883786
run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables:
884-
- command: shell.exec
885-
type: test
886-
params:
887-
shell: "bash"
888-
working_dir: "src"
889-
silent: true
890-
script: |
891-
# DO NOT ECHO WITH XTRACE
892-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
893-
alias jsonkey='python -c "import json,sys;sys.stdout.write(json.load(sys.stdin)[sys.argv[1]])" < ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json'
894-
export AWS_ACCESS_KEY_ID=$(jsonkey AccessKeyId)
895-
export AWS_SECRET_ACCESS_KEY=$(jsonkey SecretAccessKey)
896-
export AWS_SESSION_TOKEN=$(jsonkey SessionToken)
897-
EOF
898787
- command: shell.exec
899788
type: test
900789
params:
901790
shell: "bash"
902791
working_dir: "src"
903792
script: |
904793
${PREPARE_SHELL}
905-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
794+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh session-creds
906795
907796
run-aws-ECS-auth-test:
908797
- command: shell.exec
@@ -934,14 +823,9 @@ functions:
934823
cp ${PROJECT_DIRECTORY}/main $ECS_SRC_DIR
935824
cp ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-ecs-test.sh $ECS_SRC_DIR/.evergreen
936825
tar -czf $ECS_SRC_DIR/src.tgz -C $PROJECT_DIRECTORY .
937-
cd $AUTH_AWS_DIR
938-
. ./activate-authawsvenv.sh
939-
cat <<EOF > setup.js
940-
const mongo_binaries = "$MONGODB_BINARIES";
941-
const project_dir = "$ECS_SRC_DIR";
942-
EOF
943-
cat setup.js
944-
mongo --nodb setup.js aws_e2e_ecs.js
826+
827+
export PROJECT_DIRECTORY="$ECS_SRC_DIR"
828+
$AUTH_AWS_DIR/aws_setup.sh ecs
945829
946830
run-aws-auth-test-with-aws-web-identity-credentials:
947831
- command: shell.exec
@@ -955,56 +839,7 @@ functions:
955839
echo "This platform does not support the web identity auth test, skipping..."
956840
exit 0
957841
fi
958-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
959-
. ./activate_venv.sh
960-
mongo aws_e2e_web_identity.js
961-
- command: shell.exec
962-
type: test
963-
params:
964-
shell: "bash"
965-
working_dir: "src"
966-
silent: true
967-
script: |
968-
if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
969-
echo "This platform does not support the web identity auth test, skipping..."
970-
exit 0
971-
fi
972-
# DO NOT ECHO WITH XTRACE
973-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
974-
export AWS_ROLE_ARN="${iam_auth_assume_web_role_name}"
975-
export AWS_WEB_IDENTITY_TOKEN_FILE="${iam_web_identity_token_file}"
976-
export MONGODB_URI="mongodb://localhost"
977-
EOF
978-
- command: shell.exec
979-
type: test
980-
params:
981-
shell: "bash"
982-
working_dir: "src"
983-
script: |
984-
${PREPARE_SHELL}
985-
if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
986-
echo "This platform does not support the web identity auth test, skipping..."
987-
exit 0
988-
fi
989-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
990-
- command: shell.exec
991-
type: test
992-
params:
993-
shell: "bash"
994-
working_dir: "src"
995-
silent: true
996-
script: |
997-
if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
998-
echo "This platform does not support the web identity auth test, skipping..."
999-
exit 0
1000-
fi
1001-
# DO NOT ECHO WITH XTRACE
1002-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
1003-
export AWS_ROLE_ARN="${iam_auth_assume_web_role_name}"
1004-
export AWS_WEB_IDENTITY_TOKEN_FILE="${iam_web_identity_token_file}"
1005-
export AWS_ROLE_SESSION_NAME="test"
1006-
export MONGODB_URI="mongodb://localhost"
1007-
EOF
842+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh web-identity
1008843
- command: shell.exec
1009844
type: test
1010845
params:
@@ -1016,7 +851,8 @@ functions:
1016851
echo "This platform does not support the web identity auth test, skipping..."
1017852
exit 0
1018853
fi
1019-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
854+
export AWS_ROLE_SESSION_NAME="test"
855+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh web-identity
1020856
1021857
start-kms-mock-server:
1022858
- command: shell.exec

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

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,20 +12,9 @@ set -o errexit # Exit the script with error if any of the commands fail
1212
# mechanism.
1313

1414
echo "Running MONGODB-AWS authentication tests"
15-
# ensure no secrets are printed in log files
16-
set +x
1715

18-
# load the script
19-
shopt -s expand_aliases # needed for `urlencode` alias
20-
[ -s "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh" ] && source "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
21-
22-
MONGODB_URI=${MONGODB_URI:-"mongodb://localhost"}
23-
MONGODB_URI="${MONGODB_URI}/aws?authMechanism=MONGODB-AWS"
24-
if [[ -n ${SESSION_TOKEN} ]]; then
25-
MONGODB_URI="${MONGODB_URI}&authMechanismProperties=AWS_SESSION_TOKEN:${SESSION_TOKEN}"
26-
fi
27-
28-
export MONGODB_URI="$MONGODB_URI"
16+
# Handle credentials and environment setup.
17+
. $DRIVERS_TOOLS/.evergreen/auth_aws/aws_setup.sh $1
2918

3019
# show test output
3120
set -x

0 commit comments

Comments
 (0)