fix(provision): force user to properly set cluster & domain parameters
[arvados.git] / tools / salt-install / tests / run-test.sh
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: Apache-2.0
5
6 export ARVADOS_API_TOKEN=__SYSTEM_ROOT_TOKEN__
7 export ARVADOS_API_HOST=__CLUSTER__.__DOMAIN__:__CONTROLLER_EXT_SSL_PORT__
8 export ARVADOS_API_HOST_INSECURE=true
9
10 set -o pipefail
11
12 # First, validate that the CA is installed and that we can query it with no errors.
13 if ! curl -s -o /dev/null https://${ARVADOS_API_HOST}/users/welcome?return_to=%2F; then
14   echo "The Arvados CA was not correctly installed. Although some components will work,"
15   echo "others won't. Please verify that the CA cert file was installed correctly and"
16   echo "retry running these tests."
17   exit 1
18 fi
19
20 # https://doc.arvados.org/v2.0/install/install-jobs-image.html
21 echo "Creating Arvados Standard Docker Images project"
22 uuid_prefix=$(arv --format=uuid user current | cut -d- -f1)
23 project_uuid=$(arv --format=uuid group list --filters '[["name", "=", "Arvados Standard Docker Images"]]')
24
25 if [ "x${project_uuid}" = "x" ]; then
26   project_uuid=$(arv --format=uuid group create --group "{\"owner_uuid\": \"${uuid_prefix}-tpzed-000000000000000\", \"group_class\":\"project\", \"name\":\"Arvados Standard Docker Images\"}")
27
28   read -rd $'\000' newlink <<EOF; arv link create --link "${newlink}"
29 {
30   "tail_uuid":"${uuid_prefix}-j7d0g-fffffffffffffff",
31   "head_uuid":"${project_uuid}",
32   "link_class":"permission",
33   "name":"can_read"
34 }
35 EOF
36 fi
37
38 echo "Arvados project uuid is '${project_uuid}'"
39
40 echo "Uploading arvados/jobs' docker image to the project"
41 VERSION="2.1.1"
42 arv-keepdocker --pull arvados/jobs "${VERSION}" --project-uuid "${project_uuid}"
43
44 # Create the initial user
45 echo "Creating initial user '__INITIAL_USER__'"
46 user_uuid=$(arv --format=uuid user list --filters '[["email", "=", "__INITIAL_USER_EMAIL__"], ["username", "=", "__INITIAL_USER__"]]')
47
48 if [ "x${user_uuid}" = "x" ]; then
49   user_uuid=$(arv --format=uuid user create --user '{"email": "__INITIAL_USER_EMAIL__", "username": "__INITIAL_USER__"}')
50   echo "Setting up user '__INITIAL_USER__'"
51   arv user setup --uuid "${user_uuid}"
52 fi
53
54 echo "Activating user '__INITIAL_USER__'"
55 arv user update --uuid "${user_uuid}" --user '{"is_active": true}'
56
57 echo "Getting the user API TOKEN"
58 user_api_token=$(arv api_client_authorization list --filters "[[\"owner_uuid\", \"=\", \"${user_uuid}\"],[\"kind\", \"==\", \"arvados#apiClientAuthorization\"]]" --limit=1 |jq -r .items[].api_token)
59
60 if [ "x${user_api_token}" = "x" ]; then
61   user_api_token=$(arv api_client_authorization create --api-client-authorization "{\"owner_uuid\": \"${user_uuid}\"}" | jq -r .api_token)
62 fi
63
64 # Change to the user's token and run the workflow
65 export ARVADOS_API_TOKEN="${user_api_token}"
66
67 echo "Running test CWL workflow"
68 cwl-runner hasher-workflow.cwl hasher-workflow-job.yml