8784: Fix test for latest firefox.
[arvados.git] / tools / arvbox / lib / arvbox / docker / api-setup.sh
1 #!/bin/bash
2
3 exec 2>&1
4 set -ex -o pipefail
5
6 . /usr/local/lib/arvbox/common.sh
7
8 cd /usr/src/arvados/services/api
9 export RAILS_ENV=development
10
11 set -u
12
13 if ! test -s /var/lib/arvados/api_uuid_prefix ; then
14     ruby -e 'puts "#{rand(2**64).to_s(36)[0,5]}"' > /var/lib/arvados/api_uuid_prefix
15 fi
16 uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix)
17
18 if ! test -s /var/lib/arvados/api_secret_token ; then
19     ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/api_secret_token
20 fi
21 secret_token=$(cat /var/lib/arvados/api_secret_token)
22
23 if ! test -s /var/lib/arvados/blob_signing_key ; then
24     ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/blob_signing_key
25 fi
26 blob_signing_key=$(cat /var/lib/arvados/blob_signing_key)
27
28 # self signed key will be created by SSO server script.
29 test -s /var/lib/arvados/self-signed.key
30
31 sso_app_secret=$(cat /var/lib/arvados/sso_app_secret)
32
33 if test -s /var/lib/arvados/vm-uuid ; then
34     vm_uuid=$(cat /var/lib/arvados/vm-uuid)
35 else
36     vm_uuid=$uuid_prefix-2x53u-$(ruby -e 'puts rand(2**400).to_s(36)[0,15]')
37     echo $vm_uuid > /var/lib/arvados/vm-uuid
38 fi
39
40 cat >config/application.yml <<EOF
41 development:
42   uuid_prefix: $uuid_prefix
43   secret_token: $secret_token
44   blob_signing_key: $blob_signing_key
45   sso_app_secret: $sso_app_secret
46   sso_app_id: arvados-server
47   sso_provider_url: "https://$localip:${services[sso]}"
48   sso_insecure: true
49   workbench_address: "http://$localip/"
50   websocket_address: "ws://$localip:${services[websockets]}/websocket"
51   git_repo_ssh_base: "git@$localip:"
52   git_repo_https_base: "http://$localip:${services[arv-git-httpd]}/"
53   new_users_are_active: true
54   auto_admin_first_user: true
55   auto_setup_new_users: true
56   auto_setup_new_users_with_vm_uuid: $vm_uuid
57   auto_setup_new_users_with_repository: true
58   default_collection_replication: 1
59   docker_image_formats: ["v1"]
60 EOF
61
62 (cd config && /usr/local/lib/arvbox/application_yml_override.py)
63
64 if ! test -f /var/lib/arvados/api_database_pw ; then
65     ruby -e 'puts rand(2**128).to_s(36)' > /var/lib/arvados/api_database_pw
66 fi
67 database_pw=$(cat /var/lib/arvados/api_database_pw)
68
69 if ! (psql postgres -c "\du" | grep "^ arvados ") >/dev/null ; then
70     psql postgres -c "create user arvados with password '$database_pw'"
71     psql postgres -c "ALTER USER arvados CREATEDB;"
72 fi
73
74 sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
75
76 if ! test -f /var/lib/arvados/api_database_setup ; then
77    bundle exec rake db:setup
78    touch /var/lib/arvados/api_database_setup
79 fi
80
81 if ! test -s /var/lib/arvados/superuser_token ; then
82     superuser_tok=$(bundle exec ./script/create_superuser_token.rb)
83     echo "$superuser_tok" > /var/lib/arvados/superuser_token
84 fi
85
86 rm -rf tmp
87 mkdir -p tmp/cache
88
89 bundle exec rake db:migrate