18657: Almost working again, stupid Ruby
[arvados.git] / tools / arvbox / lib / arvbox / docker / api-setup.sh
1 #!/bin/bash
2 # Copyright (C) The Arvados Authors. All rights reserved.
3 #
4 # SPDX-License-Identifier: AGPL-3.0
5
6 exec 2>&1
7 set -ex -o pipefail
8
9 . /usr/local/lib/arvbox/common.sh
10 . /usr/local/lib/arvbox/go-setup.sh
11
12 cd /usr/src/arvados/services/api
13
14 if test -s $ARVADOS_CONTAINER_PATH/api_rails_env ; then
15   export RAILS_ENV=$(cat $ARVADOS_CONTAINER_PATH/api_rails_env)
16 else
17   export RAILS_ENV=development
18 fi
19
20 set -u
21
22 flock $ARVADOS_CONTAINER_PATH/cluster_config.yml.lock /usr/local/lib/arvbox/cluster-config.sh
23
24 if test -a /usr/src/arvados/services/api/config/arvados_config.rb ; then
25     rm -f config/application.yml config/database.yml
26 else
27     uuid_prefix=$(cat $ARVADOS_CONTAINER_PATH/api_uuid_prefix)
28     secret_token=$(cat $ARVADOS_CONTAINER_PATH/api_secret_token)
29     blob_signing_key=$(cat $ARVADOS_CONTAINER_PATH/blob_signing_key)
30     management_token=$(cat $ARVADOS_CONTAINER_PATH/management_token)
31     database_pw=$(cat $ARVADOS_CONTAINER_PATH/api_database_pw)
32     vm_uuid=$(cat $ARVADOS_CONTAINER_PATH/vm-uuid)
33
34     cat >config/application.yml <<EOF
35 $RAILS_ENV:
36   uuid_prefix: $uuid_prefix
37   secret_token: $secret_token
38   blob_signing_key: $blob_signing_key
39   workbench_address: "https://$localip/"
40   websocket_address: "wss://$localip:${services[websockets-ssl]}/websocket"
41   git_repo_ssh_base: "git@$localip:"
42   git_repo_https_base: "http://$localip:${services[arv-git-httpd]}/"
43   new_users_are_active: true
44   auto_admin_first_user: true
45   auto_setup_new_users: true
46   auto_setup_new_users_with_vm_uuid: $vm_uuid
47   auto_setup_new_users_with_repository: true
48   default_collection_replication: 1
49   docker_image_formats: ["v2"]
50   keep_web_service_url: https://$localip:${services[keep-web-ssl]}/
51   ManagementToken: $management_token
52 EOF
53
54     (cd config && /usr/local/lib/arvbox/yml_override.py application.yml)
55     sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
56 fi
57
58 if ! test -f $ARVADOS_CONTAINER_PATH/api_database_setup ; then
59    flock $GEM_HOME/gems.lock bin/rake db:setup
60    touch $ARVADOS_CONTAINER_PATH/api_database_setup
61 fi
62
63 if ! test -s $ARVADOS_CONTAINER_PATH/superuser_token ; then
64     superuser_tok=$(flock $GEM_HOME/gems.lock bin/bundle exec ./script/create_superuser_token.rb)
65     echo "$superuser_tok" > $ARVADOS_CONTAINER_PATH/superuser_token
66 fi
67
68 rm -rf tmp
69 mkdir -p tmp/cache
70
71 flock $GEM_HOME/gems.lock bin/rake db:migrate