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 # 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"]]')
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\"}")
28 read -rd $'\000' newlink <<EOF; arv link create --link "${newlink}"
30 "tail_uuid":"${uuid_prefix}-j7d0g-fffffffffffffff",
31 "head_uuid":"${project_uuid}",
32 "link_class":"permission",
38 echo "Arvados project uuid is '${project_uuid}'"
40 echo "Uploading arvados/jobs' docker image to the project"
42 arv-keepdocker --pull arvados/jobs "${VERSION}" --project-uuid "${project_uuid}"
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__"]]')
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}"
54 echo "Activating user '__INITIAL_USER__'"
55 arv user update --uuid "${user_uuid}" --user '{"is_active": true}'
57 echo "Getting the user API TOKEN"
58 user_api_token=$(arv api_client_authorization list | jq -r ".items[] | select( .owner_uuid == \"${user_uuid}\" ).api_token" | head -1)
60 if [ "x${user_api_token}" = "x" ]; then
61 echo "No existing token found for user '__INITIAL_USER__' (user_uuid: '${user_uuid}'). Creating token"
62 user_api_token=$(arv api_client_authorization create --api-client-authorization "{\"owner_uuid\": \"${user_uuid}\"}" | jq -r .api_token)
65 echo "API TOKEN FOR user '__INITIAL_USER__': '${user_api_token}'."
67 # Change to the user's token and run the workflow
68 echo "Switching to user '__INITIAL_USER__'"
69 export ARVADOS_API_TOKEN="${user_api_token}"
71 echo "Running test CWL workflow"
72 cwl-runner --debug hasher-workflow.cwl hasher-workflow-job.yml