diff --git a/cli/auto_login.py b/cli/auto_login.py index 31eb185c5..cd0b90b48 100644 --- a/cli/auto_login.py +++ b/cli/auto_login.py @@ -8,6 +8,7 @@ from selenium.webdriver.chrome.service import Service from webdriver_manager.chrome import ChromeDriverManager import argparse +import os def execute_browser_flow(email, password, url): @@ -57,8 +58,16 @@ def execute_browser_flow(email, password, url): if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--email") - parser.add_argument("--password") parser.add_argument("--url") args = parser.parse_args() - execute_browser_flow(args.email, args.password, args.url) + + # load password from the environment + try: + password = os.environ["MOCK_USERS_PASSWORD"] + except KeyError: + raise RuntimeError( + "The environment variable `MOCK_USERS_PASSWORD` must be set." + ) + + execute_browser_flow(args.email, password, args.url) diff --git a/cli/auto_login.sh b/cli/auto_login.sh index a6be8131f..58bdf9ce9 100644 --- a/cli/auto_login.sh +++ b/cli/auto_login.sh @@ -1,18 +1,15 @@ #! /bin/bash unset -v EMAIL -unset -v PASSWORD -while getopts e:p: flag +while getopts e: flag do case "${flag}" in e) EMAIL=${OPTARG};; - p) PASSWORD=${OPTARG};; esac done : ${EMAIL:?Missing -e} -: ${PASSWORD:?Missing -p} get_url() { @@ -31,6 +28,6 @@ PROC_STREAM=${COPROC[0]} URL=$(get_url $PROC_STREAM) LOGIN_SCRIPT="$(dirname "$0")/auto_login.py" -python $LOGIN_SCRIPT --email $EMAIL --password $PASSWORD --url $URL +python $LOGIN_SCRIPT --email $EMAIL --url $URL wait ${COPROC_PID} diff --git a/cli/cli_chestxray_tutorial_test.sh b/cli/cli_chestxray_tutorial_test.sh index f6f93df4b..eaf683b97 100755 --- a/cli/cli_chestxray_tutorial_test.sh +++ b/cli/cli_chestxray_tutorial_test.sh @@ -54,9 +54,6 @@ checkFailed(){ DATAOWNER="testdo@example.com" BENCHMARKOWNER="testbo@example.com" -DATAOWNERPASSWORD="Dataset123" -BENCHMARKOWNERPASSWORD="Benchmark123" - if ${FRESH}; then clean fi @@ -85,13 +82,13 @@ echo "==========================================" medperf profile activate testbenchmark checkFailed "testbenchmark profile activation failed" -timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $BENCHMARKOWNER -p $BENCHMARKOWNERPASSWORD +timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $BENCHMARKOWNER checkFailed "testbenchmark login failed" medperf profile activate testdata checkFailed "testdata profile activation failed" -timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $DATAOWNER -p $DATAOWNERPASSWORD +timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $DATAOWNER checkFailed "testdata login failed" echo "=====================================" diff --git a/cli/cli_tests.sh b/cli/cli_tests.sh index fec204d2e..0b5252d3d 100755 --- a/cli/cli_tests.sh +++ b/cli/cli_tests.sh @@ -96,11 +96,6 @@ DATAOWNER="testdo@example.com" BENCHMARKOWNER="testbo@example.com" ADMIN="testadmin@example.com" -MODELOWNERPASSWORD="Model123" -DATAOWNERPASSWORD="Dataset123" -BENCHMARKOWNERPASSWORD="Benchmark123" -ADMINPASSWORD="Admin123" - ########################################################## ################### Start Testing ######################## ########################################################## @@ -154,19 +149,19 @@ echo "==========================================" medperf profile activate testbenchmark checkFailed "testbenchmark profile activation failed" -timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $BENCHMARKOWNER -p $BENCHMARKOWNERPASSWORD +timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $BENCHMARKOWNER checkFailed "testbenchmark login failed" medperf profile activate testmodel checkFailed "testmodel profile activation failed" -timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $MODELOWNER -p $MODELOWNERPASSWORD +timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $MODELOWNER checkFailed "testmodel login failed" medperf profile activate testdata checkFailed "testdata profile activation failed" -timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $DATAOWNER -p $DATAOWNERPASSWORD +timeout -k ${TIMEOUT}s ${TIMEOUT}s bash $LOGIN_SCRIPT -e $DATAOWNER checkFailed "testdata login failed" ########################################################## @@ -233,7 +228,7 @@ checkFailed "Benchmark submission failed" BMK_UID=$(medperf benchmark ls | tail -n 1 | tr -s ' ' | cut -d ' ' -f 2) # Approve benchmark -ADMIN_TOKEN=$(python $ADMIN_LOGIN_SCRIPT --email $ADMIN --password $ADMINPASSWORD --env dev) +ADMIN_TOKEN=$(python $ADMIN_LOGIN_SCRIPT --email $ADMIN --env dev) checkFailed "Retrieving admin token failed" curl -sk -X PUT $SERVER_URL$VERSION_PREFIX/benchmarks/$BMK_UID/ -d '{"approval_status": "APPROVED"}' -H 'Content-Type: application/json' -H "Authorization: Bearer $ADMIN_TOKEN" checkFailed "Benchmark approval failed" diff --git a/server/seed.py b/server/seed.py index 41fce4254..d3a218d5a 100644 --- a/server/seed.py +++ b/server/seed.py @@ -17,21 +17,9 @@ def seed(args): api_server.validate(False) # get tokens - admin_token = token_from_credentials( - "testadmin@example.com", - "Admin123", - env="dev", - ) - benchmark_owner_token = token_from_credentials( - "testbo@example.com", - "Benchmark123", - env="dev", - ) - model_owner_token = token_from_credentials( - "testmo@example.com", - "Model123", - env="dev", - ) + admin_token = token_from_credentials("testadmin@example.com", env="dev") + benchmark_owner_token = token_from_credentials("testbo@example.com", env="dev") + model_owner_token = token_from_credentials("testmo@example.com", env="dev") # set admin set_user_as_admin(api_server, admin_token) diff --git a/server/token_from_credentials.py b/server/token_from_credentials.py index ab2b0fdc9..d945f2ade 100644 --- a/server/token_from_credentials.py +++ b/server/token_from_credentials.py @@ -1,9 +1,19 @@ import requests import argparse +import os -def token_from_credentials(email, password, env): +def token_from_credentials(email, env): """Retrieve access tokens using the Resource Owner Flow""" + + # load password from the environment + try: + password = os.environ["MOCK_USERS_PASSWORD"] + except KeyError: + raise RuntimeError( + "The environment variable `MOCK_USERS_PASSWORD` must be set." + ) + if env == "dev": auth_domain = "dev-5xl8y6uuc2hig2ly.us.auth0.com" audience = "https://localhost-dev/" @@ -34,9 +44,8 @@ def token_from_credentials(email, password, env): if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument("--email") - parser.add_argument("--password") parser.add_argument("--env", choices=["dev", "tutorial"]) args = parser.parse_args() - access_token = token_from_credentials(args.email, args.password, args.env) + access_token = token_from_credentials(args.email, args.env) print(access_token)