[ARVADOS] updated: f2e0e32c7ab0f1de29e6e90a6af87c1969dfd640

Git user git at public.curoverse.com
Wed Apr 20 16:19:23 EDT 2016


Summary of changes:
 tools/arvbox/bin/arvbox                            |  3 +-
 tools/arvbox/lib/arvbox/docker/Dockerfile.base     |  2 +-
 .../{service/api/run-service => api-setup.sh}      | 18 +----
 tools/arvbox/lib/arvbox/docker/common.sh           |  1 +
 .../lib/arvbox/docker/service/api/run-service      | 78 +---------------------
 .../{workbench => websockets}/log/main/.gitstub    |  0
 .../service/{workbench => websockets}/log/run      |  0
 .../arvbox/docker/service/{sso => websockets}/run  |  0
 .../arvbox/docker/service/websockets/run-service   | 30 +++++++++
 9 files changed, 37 insertions(+), 95 deletions(-)
 copy tools/arvbox/lib/arvbox/docker/{service/api/run-service => api-setup.sh} (83%)
 copy tools/arvbox/lib/arvbox/docker/service/{workbench => websockets}/log/main/.gitstub (100%)
 copy tools/arvbox/lib/arvbox/docker/service/{workbench => websockets}/log/run (100%)
 copy tools/arvbox/lib/arvbox/docker/service/{sso => websockets}/run (100%)
 create mode 100755 tools/arvbox/lib/arvbox/docker/service/websockets/run-service

       via  f2e0e32c7ab0f1de29e6e90a6af87c1969dfd640 (commit)
      from  b2cfb1a8873ee8c4128bd3bdd9fb32b9d9e8ee6e (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


commit f2e0e32c7ab0f1de29e6e90a6af87c1969dfd640
Author: Peter Amstutz <peter.amstutz at curoverse.com>
Date:   Wed Apr 20 16:19:20 2016 -0400

    Arvbox run websockets in separate puma server instead of in API server process.
    no issue #

diff --git a/tools/arvbox/bin/arvbox b/tools/arvbox/bin/arvbox
index 2e46886..991ccec 100755
--- a/tools/arvbox/bin/arvbox
+++ b/tools/arvbox/bin/arvbox
@@ -130,7 +130,8 @@ run() {
               --publish=25100:25100
               --publish=25107:25107
               --publish=25108:25108
-              --publish=8001:8001"
+              --publish=8001:8001
+              --publish=8002:8002"
     else
         PUBLIC=""
     fi
diff --git a/tools/arvbox/lib/arvbox/docker/Dockerfile.base b/tools/arvbox/lib/arvbox/docker/Dockerfile.base
index 280ac68..4c9a4ef 100644
--- a/tools/arvbox/lib/arvbox/docker/Dockerfile.base
+++ b/tools/arvbox/lib/arvbox/docker/Dockerfile.base
@@ -35,7 +35,7 @@ ADD fuse.conf /etc/
 ADD crunch-setup.sh gitolite.rc \
     keep-setup.sh common.sh createusers.sh \
     logger runsu.sh waitforpostgres.sh \
-    application_yml_override.py \
+    application_yml_override.py api-setup.sh \
     /usr/local/lib/arvbox/
 
 # Start the supervisor.
diff --git a/tools/arvbox/lib/arvbox/docker/service/api/run-service b/tools/arvbox/lib/arvbox/docker/api-setup.sh
similarity index 83%
copy from tools/arvbox/lib/arvbox/docker/service/api/run-service
copy to tools/arvbox/lib/arvbox/docker/api-setup.sh
index 058939c..67c43b4 100755
--- a/tools/arvbox/lib/arvbox/docker/service/api/run-service
+++ b/tools/arvbox/lib/arvbox/docker/api-setup.sh
@@ -8,13 +8,6 @@ set -ex -o pipefail
 cd /usr/src/arvados/services/api
 export RAILS_ENV=development
 
-run_bundler --without=development
-bundle exec passenger start --runtime-check-only --runtime-dir=/var/lib/passenger
-
-if test "$1" = "--only-deps" ; then
-    exit
-fi
-
 set -u
 
 if ! test -s /var/lib/arvados/api_uuid_prefix ; then
@@ -54,6 +47,7 @@ development:
   sso_provider_url: "https://$localip:${services[sso]}"
   sso_insecure: true
   workbench_address: "http://$localip/"
+  websocket_address: "ws://$localip:${services[websockets]}/websocket"
   git_repo_ssh_base: "git@$localip:"
   git_repo_https_base: "http://$localip:${services[arv-git-httpd]}/"
   new_users_are_active: true
@@ -90,13 +84,3 @@ fi
 rm -rf tmp
 
 bundle exec rake db:migrate
-
-set +u
-if test "$1" = "--only-setup" ; then
-    exit
-fi
-
-ARVADOS_WEBSOCKETS=1 exec bundle exec passenger start --port=${services[api]} \
-                  --runtime-dir=/var/lib/passenger \
-                  --ssl --ssl-certificate=/var/lib/arvados/self-signed.pem \
-                  --ssl-certificate-key=/var/lib/arvados/self-signed.key
diff --git a/tools/arvbox/lib/arvbox/docker/common.sh b/tools/arvbox/lib/arvbox/docker/common.sh
index 0e50a06..3733fa2 100644
--- a/tools/arvbox/lib/arvbox/docker/common.sh
+++ b/tools/arvbox/lib/arvbox/docker/common.sh
@@ -21,6 +21,7 @@ services=(
   [keepstore1]=25108
   [ssh]=22
   [doc]=8001
+  [websockets]=8002
 )
 
 if test "$(id arvbox -u 2>/dev/null)" = 0 ; then
diff --git a/tools/arvbox/lib/arvbox/docker/service/api/run-service b/tools/arvbox/lib/arvbox/docker/service/api/run-service
index 058939c..a36205c 100755
--- a/tools/arvbox/lib/arvbox/docker/service/api/run-service
+++ b/tools/arvbox/lib/arvbox/docker/service/api/run-service
@@ -15,88 +15,14 @@ if test "$1" = "--only-deps" ; then
     exit
 fi
 
-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 <<EOF
-development:
-  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: true
-  workbench_address: "http://$localip/"
-  git_repo_ssh_base: "git@$localip:"
-  git_repo_https_base: "http://$localip:${services[arv-git-httpd]}/"
-  new_users_are_active: true
-  auto_admin_first_user: true
-  auto_setup_new_users: true
-  auto_setup_new_users_with_vm_uuid: $vm_uuid
-  auto_setup_new_users_with_repository: true
-  default_collection_replication: 1
-EOF
-
-(cd config && /usr/local/lib/arvbox/application_yml_override.py)
-
-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'"
-    psql postgres -c "ALTER USER arvados CREATEDB;"
-fi
-
-sed "s/password:.*/password: $database_pw/" <config/database.yml.example >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
-    bundle exec ./script/create_superuser_token.rb > /var/lib/arvados/superuser_token
-fi
-
-rm -rf tmp
-
-bundle exec rake db:migrate
+flock /var/lib/arvados/api.lock /usr/local/lib/arvbox/api-setup.sh
 
 set +u
 if test "$1" = "--only-setup" ; then
     exit
 fi
 
-ARVADOS_WEBSOCKETS=1 exec bundle exec passenger start --port=${services[api]} \
+exec bundle exec passenger start --port=${services[api]} \
                   --runtime-dir=/var/lib/passenger \
                   --ssl --ssl-certificate=/var/lib/arvados/self-signed.pem \
                   --ssl-certificate-key=/var/lib/arvados/self-signed.key
diff --git a/tools/arvbox/lib/arvbox/docker/service/websockets/log/main/.gitstub b/tools/arvbox/lib/arvbox/docker/service/websockets/log/main/.gitstub
new file mode 100644
index 0000000..e69de29
diff --git a/tools/arvbox/lib/arvbox/docker/service/websockets/log/run b/tools/arvbox/lib/arvbox/docker/service/websockets/log/run
new file mode 120000
index 0000000..d6aef4a
--- /dev/null
+++ b/tools/arvbox/lib/arvbox/docker/service/websockets/log/run
@@ -0,0 +1 @@
+/usr/local/lib/arvbox/logger
\ No newline at end of file
diff --git a/tools/arvbox/lib/arvbox/docker/service/websockets/run b/tools/arvbox/lib/arvbox/docker/service/websockets/run
new file mode 120000
index 0000000..a388c8b
--- /dev/null
+++ b/tools/arvbox/lib/arvbox/docker/service/websockets/run
@@ -0,0 +1 @@
+/usr/local/lib/arvbox/runsu.sh
\ No newline at end of file
diff --git a/tools/arvbox/lib/arvbox/docker/service/websockets/run-service b/tools/arvbox/lib/arvbox/docker/service/websockets/run-service
new file mode 100755
index 0000000..d0c0b5d
--- /dev/null
+++ b/tools/arvbox/lib/arvbox/docker/service/websockets/run-service
@@ -0,0 +1,30 @@
+#!/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
+
+run_bundler --without=development
+
+if test "$1" = "--only-deps" ; then
+    exit
+fi
+
+flock /var/lib/arvados/api.lock /usr/local/lib/arvbox/api-setup.sh
+
+set +u
+if test "$1" = "--only-setup" ; then
+    exit
+fi
+
+export ARVADOS_WEBSOCKETS=ws-only
+
+# serving ssl directly doesn't work, gets
+# Rack app error: #<TypeError: no implicit conversion of Puma::MiniSSL::Socket into Integer>
+#exec bundle exec puma -b "ssl://0.0.0.0:${services[websockets]}?cert=/var/lib/arvados/self-signed.pem&key=/var/lib/arvados/self-signed.key"
+
+exec bundle exec puma -p${services[websockets]}

-----------------------------------------------------------------------


hooks/post-receive
-- 




More information about the arvados-commits mailing list