cd /usr/src/arvados/services/api
-if test -s /var/lib/arvados/api_rails_env ; then
- export RAILS_ENV=$(cat /var/lib/arvados/api_rails_env)
+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
set -u
-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)
-
-if ! test -s /var/lib/arvados/management_token ; then
- ruby -e 'puts rand(2**400).to_s(36)' > /var/lib/arvados/management_token
-fi
-management_token=$(cat /var/lib/arvados/management_token)
-
-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
-
-if ! test -f /var/lib/arvados/api_database_pw ; then
- ruby -e 'puts rand(2**128).to_s(36)' > /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'"
-fi
-psql postgres -c "ALTER USER arvados WITH SUPERUSER;"
+flock $ARVADOS_CONTAINER_PATH/cluster_config.yml.lock /usr/local/lib/arvbox/cluster-config.sh
if test -a /usr/src/arvados/services/api/config/arvados_config.rb ; then
rm -f config/application.yml config/database.yml
- flock /var/lib/arvados/cluster_config.yml.lock /usr/local/lib/arvbox/cluster-config.sh
else
-cat >config/application.yml <<EOF
+ uuid_prefix=$(cat $ARVADOS_CONTAINER_PATH/api_uuid_prefix)
+ secret_token=$(cat $ARVADOS_CONTAINER_PATH/api_secret_token)
+ blob_signing_key=$(cat $ARVADOS_CONTAINER_PATH/blob_signing_key)
+ management_token=$(cat $ARVADOS_CONTAINER_PATH/management_token)
+ database_pw=$(cat $ARVADOS_CONTAINER_PATH/api_database_pw)
+ vm_uuid=$(cat $ARVADOS_CONTAINER_PATH/vm-uuid)
+
+ cat >config/application.yml <<EOF
$RAILS_ENV:
uuid_prefix: $uuid_prefix
secret_token: $secret_token
blob_signing_key: $blob_signing_key
- sso_app_secret: $sso_app_secret
- sso_app_id: arvados-server
- sso_provider_url: "https://$localip:${services[sso]}"
- sso_insecure: false
workbench_address: "https://$localip/"
websocket_address: "wss://$localip:${services[websockets-ssl]}/websocket"
git_repo_ssh_base: "git@$localip:"
ManagementToken: $management_token
EOF
-(cd config && /usr/local/lib/arvbox/yml_override.py application.yml)
-sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
+ (cd config && /usr/local/lib/arvbox/yml_override.py application.yml)
+ sed "s/password:.*/password: $database_pw/" <config/database.yml.example >config/database.yml
fi
-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 $GEMLOCK bin/bundle exec 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 $GEMLOCK 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 $GEMLOCK bin/bundle exec rake db:migrate