Merge branch '21705-go-deps'
[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 # Then, run a basic diagnostics test.
21 echo "Running arvados-client diagnostics..."
22 if ! arvados-client diagnostics -internal-client; then
23   echo "Diagnostics run FAILED, exiting"
24   exit 1
25 fi
26
27 # https://doc.arvados.org/v2.0/install/install-jobs-image.html
28 echo "Creating Arvados Standard Docker Images project"
29 uuid_prefix=$(arv --format=uuid user current | cut -d- -f1)
30 project_uuid=$(arv --format=uuid group list --filters '[["name", "=", "Arvados Standard Docker Images"]]')
31
32 if [ "x${project_uuid}" = "x" ]; then
33   project_uuid=$(arv --format=uuid group create --group "{\"owner_uuid\": \"${uuid_prefix}-tpzed-000000000000000\", \"group_class\":\"project\", \"name\":\"Arvados Standard Docker Images\"}")
34
35   read -rd $'\000' newlink <<EOF; arv link create --link "${newlink}"
36 {
37   "tail_uuid":"${uuid_prefix}-j7d0g-fffffffffffffff",
38   "head_uuid":"${project_uuid}",
39   "link_class":"permission",
40   "name":"can_read"
41 }
42 EOF
43 fi
44
45 echo "Arvados project uuid is '${project_uuid}'"
46
47 # Create the initial user
48 echo "Creating initial user '__INITIAL_USER__'"
49 user_uuid=$(arv --format=uuid user list --filters '[["email", "=", "__INITIAL_USER_EMAIL__"], ["username", "=", "__INITIAL_USER__"]]')
50
51 if [ "x${user_uuid}" = "x" ]; then
52   user_uuid=$(arv --format=uuid user create --user '{"email": "__INITIAL_USER_EMAIL__", "username": "__INITIAL_USER__"}')
53   echo "Setting up user '__INITIAL_USER__'"
54   arv user setup --uuid "${user_uuid}"
55 fi
56
57 echo "Activating user '__INITIAL_USER__'"
58 arv user update --uuid "${user_uuid}" --user '{"is_active": true}'
59
60 echo "Getting the user API TOKEN"
61 user_api_token=$(arv api_client_authorization list | jq -r ".items[] | select( .owner_uuid == \"${user_uuid}\" ).api_token" | head -1)
62
63 if [ "x${user_api_token}" = "x" ]; then
64   echo "No existing token found for user '__INITIAL_USER__' (user_uuid: '${user_uuid}'). Creating token"
65   user_api_token=$(arv api_client_authorization create --api-client-authorization "{\"owner_uuid\": \"${user_uuid}\"}" | jq -r .api_token)
66 fi
67
68 echo "API TOKEN FOR user '__INITIAL_USER__': '${user_api_token}'."
69
70 # Change to the user's token and run the workflow
71 echo "Switching to user '__INITIAL_USER__'"
72 export ARVADOS_API_TOKEN="${user_api_token}"
73
74 echo "Running test CWL workflow"
75 cwl-runner --debug hasher-workflow.cwl hasher-workflow-job.yml