Skip to content

Commit 50cd97d

Browse files
blink1073qingyang-hu
authored andcommitted
GODRIVER-2607 [master] Remove legacy shell from test scripts (#1435)
1 parent be33203 commit 50cd97d

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
@@ -131,6 +131,7 @@ functions:
131131
PROJECT_DIRECTORY: "$PROJECT_DIRECTORY"
132132
PREPARE_SHELL: |
133133
set -o errexit
134+
export SKIP_LEGACY_SHELL=1
134135
export GOROOT="$GOROOT"
135136
export GOPATH="$GOPATH"
136137
export GOCACHE="$GOCACHE"
@@ -709,69 +710,29 @@ functions:
709710
fi
710711
711712
add-aws-auth-variables-to-file:
712-
- command: shell.exec
713-
type: test
713+
- command: ec2.assume_role
714714
params:
715-
shell: "bash"
716-
working_dir: "src"
717-
silent: true
718-
script: |
719-
cat <<EOF > ${DRIVERS_TOOLS}/.evergreen/auth_aws/aws_e2e_setup.json
720-
{
721-
"iam_auth_ecs_account" : "${iam_auth_ecs_account}",
722-
"iam_auth_ecs_secret_access_key" : "${iam_auth_ecs_secret_access_key}",
723-
"iam_auth_ecs_account_arn": "arn:aws:iam::557821124784:user/authtest_fargate_user",
724-
"iam_auth_ecs_cluster": "${iam_auth_ecs_cluster}",
725-
"iam_auth_ecs_task_definition": "${iam_auth_ecs_task_definition_ubuntu2004}",
726-
"iam_auth_ecs_subnet_a": "${iam_auth_ecs_subnet_a}",
727-
"iam_auth_ecs_subnet_b": "${iam_auth_ecs_subnet_b}",
728-
"iam_auth_ecs_security_group": "${iam_auth_ecs_security_group}",
729-
"iam_auth_assume_aws_account" : "${iam_auth_assume_aws_account}",
730-
"iam_auth_assume_aws_secret_access_key" : "${iam_auth_assume_aws_secret_access_key}",
731-
"iam_auth_assume_role_name" : "${iam_auth_assume_role_name}",
732-
"iam_auth_ec2_instance_account" : "${iam_auth_ec2_instance_account}",
733-
"iam_auth_ec2_instance_secret_access_key" : "${iam_auth_ec2_instance_secret_access_key}",
734-
"iam_auth_ec2_instance_profile" : "${iam_auth_ec2_instance_profile}",
735-
"iam_auth_assume_web_role_name": "${iam_auth_assume_web_role_name}",
736-
"iam_web_identity_issuer": "${iam_web_identity_issuer}",
737-
"iam_web_identity_rsa_key": "${iam_web_identity_rsa_key}",
738-
"iam_web_identity_jwks_uri": "${iam_web_identity_jwks_uri}",
739-
"iam_web_identity_token_file": "${iam_web_identity_token_file}"
740-
}
741-
EOF
742-
743-
run-aws-auth-test-with-regular-aws-credentials:
715+
role_arn: ${aws_test_secrets_role}
744716
- command: shell.exec
745717
type: test
746718
params:
719+
include_expansions_in_env: ["AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "AWS_SESSION_TOKEN"]
747720
shell: "bash"
748721
working_dir: "src"
749722
script: |
750723
${PREPARE_SHELL}
751-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
752-
. ./activate-authawsvenv.sh
753-
mongo aws_e2e_regular_aws.js
754-
- command: shell.exec
755-
type: test
756-
params:
757-
shell: "bash"
758-
working_dir: "src"
759-
silent: true
760-
script: |
761-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
762-
alias urlencode='python3 -c "import sys, urllib.parse as ulp; sys.stdout.write(ulp.quote_plus(sys.argv[1]))"'
763-
USER=$(urlencode ${iam_auth_ecs_account})
764-
PASS=$(urlencode ${iam_auth_ecs_secret_access_key})
765-
MONGODB_URI="mongodb://$USER:$PASS@localhost"
766-
EOF
724+
cd $DRIVERS_TOOLS/.evergreen/auth_aws
725+
./setup_secrets.sh drivers/aws_auth
726+
727+
run-aws-auth-test-with-regular-aws-credentials:
767728
- command: shell.exec
768729
type: test
769730
params:
770731
shell: "bash"
771732
working_dir: "src"
772733
script: |
773734
${PREPARE_SHELL}
774-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
735+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh regular
775736
776737
run-aws-auth-test-with-assume-role-credentials:
777738
- command: shell.exec
@@ -781,36 +742,7 @@ functions:
781742
working_dir: "src"
782743
script: |
783744
${PREPARE_SHELL}
784-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
785-
. ./activate-authawsvenv.sh
786-
mongo aws_e2e_assume_role.js
787-
- command: shell.exec
788-
type: test
789-
params:
790-
shell: "bash"
791-
working_dir: "src"
792-
silent: true
793-
script: |
794-
# DO NOT ECHO WITH XTRACE
795-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
796-
alias urlencode='python3 -c "import sys, urllib.parse as ulp; sys.stdout.write(ulp.quote_plus(sys.argv[1]))"'
797-
alias jsonkey='python3 -c "import json,sys;sys.stdout.write(json.load(sys.stdin)[sys.argv[1]])" < ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json'
798-
USER=$(jsonkey AccessKeyId)
799-
USER=$(urlencode $USER)
800-
PASS=$(jsonkey SecretAccessKey)
801-
PASS=$(urlencode $PASS)
802-
SESSION_TOKEN=$(jsonkey SessionToken)
803-
SESSION_TOKEN=$(urlencode $SESSION_TOKEN)
804-
MONGODB_URI="mongodb://$USER:$PASS@localhost"
805-
EOF
806-
- command: shell.exec
807-
type: test
808-
params:
809-
shell: "bash"
810-
working_dir: "src"
811-
script: |
812-
${PREPARE_SHELL}
813-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
745+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh assume-role
814746
815747
run-aws-auth-test-with-aws-EC2-credentials:
816748
- command: shell.exec
@@ -824,70 +756,27 @@ functions:
824756
echo "This platform does not support the EC2 auth test, skipping..."
825757
exit 0
826758
fi
827-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
828-
. ./activate-authawsvenv.sh
829-
mongo aws_e2e_ec2.js
830-
- command: shell.exec
831-
type: test
832-
params:
833-
shell: "bash"
834-
working_dir: "src"
835-
script: |
836-
${PREPARE_SHELL}
837-
if [ "${SKIP_EC2_AUTH_TEST}" = "true" ]; then
838-
exit 0
839-
fi
840-
841-
# Truncate "prepare_mongodb_aws.sh" to zero length. If file not present, creates zero-length file.
842-
: > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
843-
844-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
759+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh ec2
845760
846761
run-aws-auth-test-with-aws-credentials-as-environment-variables:
847-
- command: shell.exec
848-
type: test
849-
params:
850-
shell: "bash"
851-
working_dir: "src"
852-
silent: true
853-
script: |
854-
# DO NOT ECHO WITH XTRACE
855-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
856-
export AWS_ACCESS_KEY_ID=${iam_auth_ecs_account}
857-
export AWS_SECRET_ACCESS_KEY=${iam_auth_ecs_secret_access_key}
858-
EOF
859762
- command: shell.exec
860763
type: test
861764
params:
862765
shell: "bash"
863766
working_dir: "src"
864767
script: |
865768
${PREPARE_SHELL}
866-
PROJECT_DIRECTORY=${PROJECT_DIRECTORY} ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
769+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh env-creds
867770
868771
run-aws-auth-test-with-aws-credentials-and-session-token-as-environment-variables:
869-
- command: shell.exec
870-
type: test
871-
params:
872-
shell: "bash"
873-
working_dir: "src"
874-
silent: true
875-
script: |
876-
# DO NOT ECHO WITH XTRACE
877-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
878-
alias jsonkey='python -c "import json,sys;sys.stdout.write(json.load(sys.stdin)[sys.argv[1]])" < ${DRIVERS_TOOLS}/.evergreen/auth_aws/creds.json'
879-
export AWS_ACCESS_KEY_ID=$(jsonkey AccessKeyId)
880-
export AWS_SECRET_ACCESS_KEY=$(jsonkey SecretAccessKey)
881-
export AWS_SESSION_TOKEN=$(jsonkey SessionToken)
882-
EOF
883772
- command: shell.exec
884773
type: test
885774
params:
886775
shell: "bash"
887776
working_dir: "src"
888777
script: |
889778
${PREPARE_SHELL}
890-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
779+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh session-creds
891780
892781
run-aws-ECS-auth-test:
893782
- command: shell.exec
@@ -919,14 +808,9 @@ functions:
919808
cp ${PROJECT_DIRECTORY}/main $ECS_SRC_DIR
920809
cp ${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-ecs-test.sh $ECS_SRC_DIR/.evergreen
921810
tar -czf $ECS_SRC_DIR/src.tgz -C $PROJECT_DIRECTORY .
922-
cd $AUTH_AWS_DIR
923-
. ./activate-authawsvenv.sh
924-
cat <<EOF > setup.js
925-
const mongo_binaries = "$MONGODB_BINARIES";
926-
const project_dir = "$ECS_SRC_DIR";
927-
EOF
928-
cat setup.js
929-
mongo --nodb setup.js aws_e2e_ecs.js
811+
812+
export PROJECT_DIRECTORY="$ECS_SRC_DIR"
813+
$AUTH_AWS_DIR/aws_setup.sh ecs
930814
931815
run-aws-auth-test-with-aws-web-identity-credentials:
932816
- command: shell.exec
@@ -940,56 +824,7 @@ functions:
940824
echo "This platform does not support the web identity auth test, skipping..."
941825
exit 0
942826
fi
943-
cd ${DRIVERS_TOOLS}/.evergreen/auth_aws
944-
. ./activate_venv.sh
945-
mongo aws_e2e_web_identity.js
946-
- command: shell.exec
947-
type: test
948-
params:
949-
shell: "bash"
950-
working_dir: "src"
951-
silent: true
952-
script: |
953-
if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
954-
echo "This platform does not support the web identity auth test, skipping..."
955-
exit 0
956-
fi
957-
# DO NOT ECHO WITH XTRACE
958-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
959-
export AWS_ROLE_ARN="${iam_auth_assume_web_role_name}"
960-
export AWS_WEB_IDENTITY_TOKEN_FILE="${iam_web_identity_token_file}"
961-
export MONGODB_URI="mongodb://localhost"
962-
EOF
963-
- command: shell.exec
964-
type: test
965-
params:
966-
shell: "bash"
967-
working_dir: "src"
968-
script: |
969-
${PREPARE_SHELL}
970-
if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
971-
echo "This platform does not support the web identity auth test, skipping..."
972-
exit 0
973-
fi
974-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
975-
- command: shell.exec
976-
type: test
977-
params:
978-
shell: "bash"
979-
working_dir: "src"
980-
silent: true
981-
script: |
982-
if [ "${SKIP_WEB_IDENTITY_AUTH_TEST}" = "true" ]; then
983-
echo "This platform does not support the web identity auth test, skipping..."
984-
exit 0
985-
fi
986-
# DO NOT ECHO WITH XTRACE
987-
cat <<'EOF' > "${PROJECT_DIRECTORY}/prepare_mongodb_aws.sh"
988-
export AWS_ROLE_ARN="${iam_auth_assume_web_role_name}"
989-
export AWS_WEB_IDENTITY_TOKEN_FILE="${iam_web_identity_token_file}"
990-
export AWS_ROLE_SESSION_NAME="test"
991-
export MONGODB_URI="mongodb://localhost"
992-
EOF
827+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh web-identity
993828
- command: shell.exec
994829
type: test
995830
params:
@@ -1001,7 +836,8 @@ functions:
1001836
echo "This platform does not support the web identity auth test, skipping..."
1002837
exit 0
1003838
fi
1004-
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh
839+
export AWS_ROLE_SESSION_NAME="test"
840+
${PROJECT_DIRECTORY}/.evergreen/run-mongodb-aws-test.sh web-identity
1005841
1006842
start-kms-mock-server:
1007843
- 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)