#!/bin/bash -ex

source /etc/profile

set -u

export ARVADOS_API_TOKEN=$(cd /var/www/arvados-api/current; sudo -u www-data --set-home RAILS_ENV=production bundle exec script/create_superuser_token.rb)

export CRUNCH_DISPATCH_TOKEN=$ARVADOS_API_TOKEN

cat /etc/arvados/crunch-dispatch-slurm/crunch-dispatch-slurm.yml | envsubst | sponge /etc/arvados/crunch-dispatch-slurm/crunch-dispatch-slurm.yml

export ARVADOS_NODE_MANAGER_TOKEN=$(arv api_client_authorization create_system_auth --scopes '["GET /arvados/v1/jobs/queue", "GET /arvados/v1/nodes", "PUT /arvados/v1/nodes", "PUT /arvados/v1/nodes/", "POST /arvados/v1/nodes", "POST /arvados/v1/nodes/"]' | jq --raw-output .api_token)

cat /etc/arvados/nodemanager/ec2.cfg | envsubst | sponge /etc/arvados/nodemanager/ec2.cfg

for i in $(cat /etc/keep.conf.json|jq --raw-output --compact-output .[]); do
    arv keep_service create --keep-service "$i"
done

prefix=$(arv --format=uuid user current | cut -d- -f1)
all_users_group_uuid="$prefix-j7d0g-fffffffffffffff"

set +e

repo_uuid=$(arv --format=uuid repository create --repository "{\"owner_uuid\":\"$prefix-tpzed-000000000000000\", \"name\":\"arvados\"}")

arv link create --link "{\"tail_uuid\":\"$all_users_group_uuid\",\"head_uuid\":\"$repo_uuid\",\"link_class\":\"permission\",\"name\":\"can_read\"}"

project_uuid=$(arv --format=uuid group create --group "{\"owner_uuid\":\"$prefix-tpzed-000000000000000\", \"name\":\"Arvados Standard Docker Images\"}")

arv link create --link "{\"tail_uuid\":\"$all_users_group_uuid\",\"head_uuid\":\"$project_uuid\",\"link_class\":\"permission\",\"name\":\"can_read\"}"

set -e

arv-keepdocker --pull arvados/jobs latest
