X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/0561bd0c3c07257fd58ded6c7cfa5feeae97af57..16bb0d2584757280f2a2de102f1bc53fa92179b7:/tools/arvbox/lib/arvbox/docker/api-setup.sh diff --git a/tools/arvbox/lib/arvbox/docker/api-setup.sh b/tools/arvbox/lib/arvbox/docker/api-setup.sh index 14b4ac2998..6e455b8297 100755 --- a/tools/arvbox/lib/arvbox/docker/api-setup.sh +++ b/tools/arvbox/lib/arvbox/docker/api-setup.sh @@ -7,50 +7,37 @@ exec 2>&1 set -ex -o pipefail . /usr/local/lib/arvbox/common.sh +. /usr/local/lib/arvbox/go-setup.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 +if test -s $ARVADOS_CONTAINER_PATH/api_rails_env ; then + export RAILS_ENV=$(cat $ARVADOS_CONTAINER_PATH/api_rails_env) +else + export RAILS_ENV=development 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 +set -u -sso_app_secret=$(cat /var/lib/arvados/sso_app_secret) +flock $ARVADOS_CONTAINER_PATH/cluster_config.yml.lock /usr/local/lib/arvbox/cluster-config.sh -if test -s /var/lib/arvados/vm-uuid ; then - vm_uuid=$(cat /var/lib/arvados/vm-uuid) +if test -a /usr/src/arvados/services/api/config/arvados_config.rb ; then + rm -f config/application.yml config/database.yml 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 <config/application.yml < /var/lib/arvados/api_database_pw + (cd config && /usr/local/lib/arvbox/yml_override.py application.yml) + sed "s/password:.*/password: $database_pw/" config/database.yml 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 +if ! test -f $ARVADOS_CONTAINER_PATH/api_database_setup ; then + flock $GEM_HOME/gems.lock bin/rake db:setup + touch $ARVADOS_CONTAINER_PATH/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 +if ! test -s $ARVADOS_CONTAINER_PATH/superuser_token ; then + superuser_tok=$(flock $GEM_HOME/gems.lock bin/bundle exec ./script/create_superuser_token.rb) + echo "$superuser_tok" > $ARVADOS_CONTAINER_PATH/superuser_token fi rm -rf tmp mkdir -p tmp/cache -bundle exec rake db:migrate +flock $GEM_HOME/gems.lock bin/rake db:migrate