#!/bin/bash exec 2>&1 set -ex -o pipefail . /usr/local/lib/arvbox/common.sh cd /usr/src/arvados/services/api export RAILS_ENV=development set -u if ! test -s /var/lib/arvados/api_uuid_prefix ; then ruby -e 'puts "#{rand(2**64).to_s(36)[0,5]}"' > /var/lib/arvados/api_uuid_prefix fi uuid_prefix=$(cat /var/lib/arvados/api_uuid_prefix) if ! test -s /var/lib/arvados/api_secret_token ; then ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/api_secret_token fi secret_token=$(cat /var/lib/arvados/api_secret_token) if ! test -s /var/lib/arvados/blob_signing_key ; then ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/blob_signing_key fi blob_signing_key=$(cat /var/lib/arvados/blob_signing_key) # self signed key will be created by SSO server script. test -s /var/lib/arvados/self-signed.key sso_app_secret=$(cat /var/lib/arvados/sso_app_secret) if test -s /var/lib/arvados/vm-uuid ; then vm_uuid=$(cat /var/lib/arvados/vm-uuid) else vm_uuid=$uuid_prefix-2x53u-$(ruby -e 'puts rand(2**400).to_s(36)[0,15]') echo $vm_uuid > /var/lib/arvados/vm-uuid fi cat >config/application.yml < /var/lib/arvados/api_database_pw fi database_pw=$(cat /var/lib/arvados/api_database_pw) if ! (psql postgres -c "\du" | grep "^ arvados ") >/dev/null ; then psql postgres -c "create user arvados with password '$database_pw'" psql postgres -c "ALTER USER arvados CREATEDB;" fi sed "s/password:.*/password: $database_pw/" config/database.yml if ! test -f /var/lib/arvados/api_database_setup ; then bundle exec rake db:setup touch /var/lib/arvados/api_database_setup fi if ! test -s /var/lib/arvados/superuser_token ; then superuser_tok=$(bundle exec ./script/create_superuser_token.rb) echo "$superuser_tok" > /var/lib/arvados/superuser_token fi rm -rf tmp mkdir -p tmp/cache bundle exec rake db:migrate