From 20dc85809dad984c07bea8155785361a7436d2df Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Vidal=20Garc=C3=ADa?= Date: Fri, 4 Sep 2020 11:13:42 +0200 Subject: [PATCH] cli: add admin email & password options to run-cli Also fixes shellcheck issues closes #394 closes #393 --- reana/reana_dev/cli.py | 3 ++- reana/reana_dev/run.py | 23 ++++++++++++++++++++--- scripts/create-admin-user.sh | 10 +++++----- 3 files changed, 27 insertions(+), 9 deletions(-) diff --git a/reana/reana_dev/cli.py b/reana/reana_dev/cli.py index e6d3e864..dd169d42 100644 --- a/reana/reana_dev/cli.py +++ b/reana/reana_dev/cli.py @@ -59,9 +59,10 @@ def reana_dev(): # noqa: D301 $ # example (a): fast, CLI mode only, fast example $ reana-dev cluster-delete $ reana-dev run-ci -m /var/reana:/var/reana -c r-d-helloworld --exclude-components=r-ui,r-a-vomsproxy + --admin-email john.doe@example.org --admin-password mysecretpassword $ # example (b): slow, CLI and Web modes, all examples $ reana-dev cluster-delete - $ reana-dev run-ci + $ reana-dev run-ci --admin-email john.doe@example.org --admin-password mysecretpassword How to create REANA cluster: diff --git a/reana/reana_dev/run.py b/reana/reana_dev/run.py index ec77edf1..d1583f0e 100644 --- a/reana/reana_dev/run.py +++ b/reana/reana_dev/run.py @@ -141,9 +141,23 @@ def run_commands(): default=["DEMO"], help="Which examples to run? [default=DEMO]", ) +@click.option( + "--admin-email", required=True, help="Admin user email address", +) +@click.option( + "--admin-password", required=True, help="Admin user password", +) @run_commands.command(name="run-ci") def run_ci( - build_arg, mode, exclude_components, mounts, job_mounts, no_cache, component, + build_arg, + mode, + exclude_components, + mounts, + job_mounts, + no_cache, + component, + admin_email, + admin_password, ): # noqa: D301 """Run CI build. @@ -162,12 +176,15 @@ def run_ci( \b Example: - $ reana-dev run-cli -m /var/reana:/var/reana + $ reana-dev run-ci -m /var/reana:/var/reana -m /usr/share/local/mydata:/mydata -j /mydata:/mydata -c r-d-helloworld --exclude-components=r-ui,r-a-vomsproxy --mode debug + --admin-email john.doe@example.org + --admin-password mysecretpassword + """ # parse arguments components = select_components(component) @@ -204,7 +221,7 @@ def run_ci( # deploy cluster cmd = ( f"reana-dev cluster-deploy --mode {mode}" - " --admin-email john.doe@example.org --admin-password 123456" + f" --admin-email {admin_email} --admin-password {admin_password}" ) for job_mount in job_mounts: cmd += " -j {}".format(job_mount) diff --git a/scripts/create-admin-user.sh b/scripts/create-admin-user.sh index 1569af2f..7e67d6e6 100755 --- a/scripts/create-admin-user.sh +++ b/scripts/create-admin-user.sh @@ -22,7 +22,7 @@ REANA_SERVER=$(kubectl get pod -l "app=$instance_name-server" | grep Running | a # Wait for DB to be ready REANA_DB=$(kubectl get pod -l "app=$instance_name-db" | grep Running | awk '{print $1}') -echo $REANA_DB +echo "$REANA_DB" while [ "0" -ne "$(kubectl exec "$REANA_DB" -- pg_isready -U reana -h 127.0.0.1 -p 5432 &> /dev/null && echo $? || echo 1)" ] do echo "Waiting for REANA-DB to be ready." @@ -34,11 +34,11 @@ echo "REANA-DB ready" kubectl exec "$REANA_SERVER" -- ./scripts/setup # Create admin user -admin_access_token=$(kubectl exec "$REANA_SERVER" -- \ - flask reana-admin create-admin-user --email $email_address --password $password) -if [ $? -ne 0 ]; then +if ! admin_access_token=$(kubectl exec "$REANA_SERVER" -- \ + flask reana-admin create-admin-user --email "$email_address" --password "$password") +then # Failure output - echo $admin_access_token + echo "$admin_access_token" exit 1 fi