2 # Copyright (C) The Arvados Authors. All rights reserved.
4 # SPDX-License-Identifier: Apache-2.0
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
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."
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"
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"]]')
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\"}")
35 read -rd $'\000' newlink <<EOF; arv link create --link "${newlink}"
37 "tail_uuid":"${uuid_prefix}-j7d0g-fffffffffffffff",
38 "head_uuid":"${project_uuid}",
39 "link_class":"permission",
45 echo "Arvados project uuid is '${project_uuid}'"
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__"]]')
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}"
57 echo "Activating user '__INITIAL_USER__'"
58 arv user update --uuid "${user_uuid}" --user '{"is_active": true}'
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)
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)
68 echo "API TOKEN FOR user '__INITIAL_USER__': '${user_api_token}'."
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}"
74 echo "Running test CWL workflow"
75 cwl-runner --debug hasher-workflow.cwl hasher-workflow-job.yml