[ARVADOS] updated: 2918ed81152a1fe8607f433e36dceddc1cb78f74

Git user git at public.curoverse.com
Wed Jul 26 16:07:16 EDT 2017


Summary of changes:
 .../app/controllers/collections_controller.rb      |  27 +-
 .../app/controllers/healthcheck_controller.rb      |  35 ++
 apps/workbench/app/helpers/collections_helper.rb   |   6 +-
 apps/workbench/config/application.default.yml      |   6 +-
 apps/workbench/config/routes.rb                    |   2 +
 .../controllers/healthcheck_controller_test.rb     |  30 +
 .../test/helpers/collections_helper_test.rb        |   3 +
 .../test/integration/anonymous_access_test.rb      |  23 +
 .../workbench/test/integration/collections_test.rb |  42 ++
 .../test/integration/container_requests_test.rb    |   5 +
 build/build.list                                   |  60 +-
 build/package-build-dockerfiles/Makefile           |   6 +-
 build/package-build-dockerfiles/centos7/Dockerfile |  15 +-
 build/package-build-dockerfiles/debian8/Dockerfile |   7 +-
 .../package-build-dockerfiles/debian9/D39DC0E3.asc | 692 +++++++++++++++++++++
 .../{debian8 => debian9}/Dockerfile                |  20 +-
 .../ubuntu1204/Dockerfile                          |   7 +-
 .../ubuntu1404/Dockerfile                          |   9 +-
 .../ubuntu1604/Dockerfile                          |   7 +-
 build/package-test-dockerfiles/centos7/Dockerfile  |   2 +-
 build/package-test-dockerfiles/debian8/Dockerfile  |   6 +-
 .../package-test-dockerfiles/debian9/D39DC0E3.asc  | 692 +++++++++++++++++++++
 .../{debian8 => debian9}/Dockerfile                |  13 +-
 .../package-test-dockerfiles/ubuntu1204/Dockerfile |   6 +-
 .../package-test-dockerfiles/ubuntu1404/Dockerfile |   6 +-
 .../package-test-dockerfiles/ubuntu1604/Dockerfile |   4 +-
 ...n-test-packages.sh => test-packages-debian9.sh} |   0
 build/run-build-packages-sso.sh                    |   3 +
 build/run-build-packages.sh                        |   7 +-
 build/run-tests.sh                                 |   2 +
 sdk/cwl/setup.py                                   |   4 +-
 sdk/go/health/handler.go                           | 109 ++++
 sdk/go/health/handler_test.go                      | 137 ++++
 sdk/python/arvados/commands/put.py                 |  16 +-
 sdk/python/tests/test_arv_get.py                   |  43 +-
 sdk/python/tests/test_arv_put.py                   |  26 +
 .../arvados/v1/healthcheck_controller.rb           |  35 ++
 services/api/app/models/container_request.rb       |   5 +
 services/api/config/application.default.yml        |   4 +
 services/api/config/routes.rb                      |   2 +
 services/api/test/fixtures/container_requests.yml  |  19 +
 services/api/test/fixtures/containers.yml          |  17 +
 .../arvados/v1/healthcheck_controller_test.rb      |  30 +
 services/api/test/integration/errors_test.rb       |   2 +-
 services/api/test/unit/container_request_test.rb   |  24 +
 services/fuse/README.rst                           |   2 +-
 services/fuse/arvados_fuse/__init__.py             |   6 +-
 services/fuse/setup.py                             |   2 +-
 services/fuse/tests/integration_test.py            |   5 +
 services/fuse/tests/mount_test_base.py             |   4 +
 services/keepstore/config.go                       |   2 +
 services/keepstore/handler_test.go                 |  31 +
 services/keepstore/handlers.go                     |   6 +
 services/ws/permission.go                          |   3 +-
 services/ws/router.go                              |  46 +-
 services/ws/session_v0.go                          |  43 +-
 services/ws/session_v0_test.go                     | 176 ++++--
 tools/crunchstat-summary/MANIFEST.in               |   1 +
 .../crunchstat_summary/chartjs.js                  |  31 -
 .../crunchstat_summary/chartjs.py                  |  88 ---
 .../crunchstat_summary/dygraphs.js                 |  63 ++
 .../crunchstat_summary/dygraphs.py                 |  33 +
 .../crunchstat_summary/summarizer.py               |  10 +-
 .../crunchstat_summary/webchart.py                 |  61 ++
 64 files changed, 2526 insertions(+), 303 deletions(-)
 create mode 100644 apps/workbench/app/controllers/healthcheck_controller.rb
 create mode 100644 apps/workbench/test/controllers/healthcheck_controller_test.rb
 create mode 100644 build/package-build-dockerfiles/debian9/D39DC0E3.asc
 copy build/package-build-dockerfiles/{debian8 => debian9}/Dockerfile (59%)
 create mode 100644 build/package-test-dockerfiles/debian9/D39DC0E3.asc
 copy build/package-test-dockerfiles/{debian8 => debian9}/Dockerfile (55%)
 copy build/package-testing/{deb-common-test-packages.sh => test-packages-debian9.sh} (100%)
 create mode 100644 sdk/go/health/handler.go
 create mode 100644 sdk/go/health/handler_test.go
 create mode 100644 services/api/app/controllers/arvados/v1/healthcheck_controller.rb
 create mode 100644 services/api/test/functional/arvados/v1/healthcheck_controller_test.rb
 delete mode 100644 tools/crunchstat-summary/crunchstat_summary/chartjs.js
 delete mode 100644 tools/crunchstat-summary/crunchstat_summary/chartjs.py
 create mode 100644 tools/crunchstat-summary/crunchstat_summary/dygraphs.js
 create mode 100644 tools/crunchstat-summary/crunchstat_summary/dygraphs.py
 create mode 100644 tools/crunchstat-summary/crunchstat_summary/webchart.py

       via  2918ed81152a1fe8607f433e36dceddc1cb78f74 (commit)
       via  12319740a7d95c099a5521fd85a3200528307de1 (commit)
       via  1dd3f0e144b5102128f18974f48f620aaf7b78b3 (commit)
       via  9997ada67ce36d2fbe831bce473aa61250727aff (commit)
       via  3574793a2104d523f924d3ce3f6d1eab049835a1 (commit)
       via  da037c1372879cb0ebc221c42ebdb86af669295b (commit)
       via  fc2705f7015381705bd06e7f9578e4ba3fac682a (commit)
       via  c834c3463440d07ad528241d7910682cb374103d (commit)
       via  0e0dc3c8ebf442a35c41816fed42fdddb53aed53 (commit)
       via  a2fc189f7a50964340bc60704c5cd3bef9114c7d (commit)
       via  2835665e43a3b85c85fefcd348015b5dee829cba (commit)
       via  34c4b3001b3aafc91213f02689d6e61977ad29b3 (commit)
       via  4feae2077b224dfd7e690da72bbe62aefebec431 (commit)
       via  49b9c5f4917468f2b23267fe045cbc94323210ce (commit)
       via  0b51ce6bfc3c50155de18eb4440021688462fb6a (commit)
       via  236a667953bc828576faa50af9d4d4225038f9e7 (commit)
       via  6cc4c2ed2e9503c07b33b8fb8469516af80b8a26 (commit)
       via  5e5bc2b2153a0af624d75a3c348b996ddf458ef2 (commit)
       via  07cd679b6526fcc9f2d3295f10751906e91872c9 (commit)
       via  ec20efc4ff681e8af7ce61d9e48296cd52be41b8 (commit)
       via  7e7ada63bca240416584871398076c1bafc90f76 (commit)
       via  ff56222d3f589a0c33ec7b06e092e7481bbdf1e5 (commit)
       via  3f7bde601546dc898975fbe7d56957794985fe43 (commit)
       via  ed27ef88210f7fd23f0eafc55a44babd5f6c55fe (commit)
       via  b210f531c6db76f5f9bc5dac948a32eb52ad7e03 (commit)
       via  a143375dc725aa517c091c6826bf37b4caa69161 (commit)
       via  85d5f916501c05e1bb980690f2d2712a3413e975 (commit)
       via  10138c15c015c3c0c3546e5083642cf2145dfe82 (commit)
       via  818daa27b9911bb360d80662b3beb86d1ca2188d (commit)
       via  da94fc33ede86bf19fec91e6d5c2abeb8bbfd165 (commit)
       via  2397c4a4ab0dd9cad3eaeb77a4ef0cc37bd80a23 (commit)
       via  4442b72c3b18e2ada857dd66f18754ccc95854ca (commit)
       via  e65fffb60a5697ce1991ceb01a15001eb7adb101 (commit)
       via  b9411e85079a76573f722febfdd5ab5e4c85c9f7 (commit)
       via  943b3e807126ba5dc936ceeeddbee9801dab7308 (commit)
       via  5b7be380a48b83c2c87427892db209483ab193af (commit)
       via  10e2711b4202cc2a6d2a4844b9a096a989eaf4f3 (commit)
       via  fd50115d7e01a595f65e47dd95b129362d18e975 (commit)
       via  3bbe6cfeb45325554c97c674770ca64f2d367b83 (commit)
       via  247d202b57d7c65e4192e0667446d533e552bed7 (commit)
       via  67a56c0f797826ae5a8ac2410f9e5abe607a868b (commit)
       via  529d3d900b308a72fc34c57e6b9deea18add9238 (commit)
       via  18f6483ffe8d6191bce55c464070f9f5c08b9b01 (commit)
       via  85bd5f3272cfc8ba8e54f4f47ea9865d7de62779 (commit)
       via  3a5b003b5cf784e96799d8ddadc939834620fd34 (commit)
       via  63e12fa3f15d417526db4f743108fe4eedcfcad0 (commit)
       via  bf87f4aba81caff15b174393faf074cf9d8ba554 (commit)
       via  41f48ea20b33e59ced47a6e96f8198a76d43b619 (commit)
       via  6ff6c7a392a7064cba408b566a8ce5b86dadbc78 (commit)
       via  96ae27be78eeee85d9462123367b1221d5b96350 (commit)
       via  eb66b34d22cef6c98ad9ebdc228cf784b3136b72 (commit)
       via  d3700e50bcaa9db177346199298913b54e37a2d5 (commit)
       via  938a0cc22ad9d520c653b8b41d5b1bb2163a1020 (commit)
       via  03eee1573c7301b038306d6b6a1272c710317ef4 (commit)
       via  5d081c423f314060cefafc7149850ea1dcbe098a (commit)
       via  d1562916e4792c0a9b4b2a4aea842e7c2848d38a (commit)
       via  1be8ac0f887cb1c639ac502c47438a8260735069 (commit)
       via  1e7fda3fcfb9b3030c65f56e06764d20496a0610 (commit)
       via  446e64dc143148e52a126fa502bf63299c94197e (commit)
       via  7777370ae3c0815c266148f097355f70bdd1a0e3 (commit)
       via  187382bb88eee65d887c004d73eddf46cbd86bc2 (commit)
       via  0041af13b61716fb9044c050b2ef34a3315566d6 (commit)
       via  a3bfffe950102b82b6655b91038bba9e6b085f03 (commit)
      from  8f3070e16d4eaa581555f63e74ebe578927bfcce (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 2918ed81152a1fe8607f433e36dceddc1cb78f74
Author: Lucas Di Pentima <lucas at curoverse.com>
Date:   Mon Jul 24 19:09:14 2017 -0300

    11167: Re-added another removed integration test, adjusted to work
    with keep-web.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at curoverse.com>

diff --git a/apps/workbench/test/integration/anonymous_access_test.rb b/apps/workbench/test/integration/anonymous_access_test.rb
index d69de2c..fef83ba 100644
--- a/apps/workbench/test/integration/anonymous_access_test.rb
+++ b/apps/workbench/test/integration/anonymous_access_test.rb
@@ -123,11 +123,11 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest
 
     magic = rand(2**512).to_s 36
     token = api_fixture('api_client_authorizations')['admin']['api_token']
-    logblock = `echo -n #{magic.shellescape} | ARVADOS_API_TOKEN=#{token.shellescape} arv-put --no-progress --raw -`.strip
+    datablock = `echo -n #{magic.shellescape} | ARVADOS_API_TOKEN=#{token.shellescape} arv-put --no-progress --raw -`.strip
     assert $?.success?, $?
     col = nil
     use_token 'admin' do
-      mtxt = ". #{logblock} 0:#{magic.length}:Hello\\040world.txt\n"
+      mtxt = ". #{datablock} 0:#{magic.length}:Hello\\040world.txt\n"
       col = Collection.create(
         manifest_text: mtxt,
         owner_uuid: api_fixture('groups')['anonymously_accessible_project']['uuid'])
diff --git a/apps/workbench/test/integration/collections_test.rb b/apps/workbench/test/integration/collections_test.rb
index abe34ac..71cfe38 100644
--- a/apps/workbench/test/integration/collections_test.rb
+++ b/apps/workbench/test/integration/collections_test.rb
@@ -6,6 +6,8 @@ require 'integration_helper'
 require_relative 'integration_test_utils'
 
 class CollectionsTest < ActionDispatch::IntegrationTest
+  include KeepWebConfig
+
   setup do
     need_javascript
   end
@@ -52,6 +54,46 @@ class CollectionsTest < ActionDispatch::IntegrationTest
     end
   end
 
+  test "can download an entire collection with a reader token" do
+    use_keep_web_config
+
+    token = api_fixture('api_client_authorizations')['active']['api_token']
+    data = "foo\nfile\n"
+    datablock = `echo -n #{data.shellescape} | ARVADOS_API_TOKEN=#{token.shellescape} arv-put --no-progress --raw -`.strip
+    assert $?.success?, $?
+
+    col = nil
+    use_token 'active' do
+      mtxt = ". #{datablock} 0:#{data.length}:foo\n"
+      col = Collection.create(manifest_text: mtxt)
+    end
+
+    uuid = col.uuid
+    token = api_fixture('api_client_authorizations')['active_all_collections']['api_token']
+    url_head = "/collections/download/#{uuid}/#{token}/"
+    visit url_head
+    # It seems that Capybara can't inspect tags outside the body, so this is
+    # a very blunt approach.
+    assert_no_match(/<\s*meta[^>]+\bnofollow\b/i, page.html,
+                    "wget prohibited from recursing the collection page")
+    # Look at all the links that wget would recurse through using our
+    # recommended options, and check that it's exactly the file list.
+    hrefs = page.all('a').map do |anchor|
+      link = anchor[:href] || ''
+      if link.start_with? url_head
+        link[url_head.size .. -1]
+      elsif link.start_with? '/'
+        nil
+      else
+        link
+      end
+    end
+    assert_equal(['foo'], hrefs.compact.sort,
+                 "download page did provide strictly file links")
+    click_link "foo"
+    assert_text "foo\nfile\n"
+  end
+
   test "combine selected collections into new collection" do
     foo_collection = api_fixture('collections')['foo_file']
     bar_collection = api_fixture('collections')['bar_file']

commit 12319740a7d95c099a5521fd85a3200528307de1
Author: Lucas Di Pentima <lucas at curoverse.com>
Date:   Mon Jul 24 17:53:58 2017 -0300

    11167: Reverted deletion of integration test. Modified it so it
    can work with keep-web instead of arv-get.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at curoverse.com>

diff --git a/apps/workbench/test/integration/anonymous_access_test.rb b/apps/workbench/test/integration/anonymous_access_test.rb
index 92e3cf5..d69de2c 100644
--- a/apps/workbench/test/integration/anonymous_access_test.rb
+++ b/apps/workbench/test/integration/anonymous_access_test.rb
@@ -5,6 +5,8 @@
 require 'integration_helper'
 
 class AnonymousAccessTest < ActionDispatch::IntegrationTest
+  include KeepWebConfig
+
   # These tests don't do state-changing API calls. Save some time by
   # skipping the database reset.
   reset_api_fixtures :after_each_test, false
@@ -116,6 +118,27 @@ class AnonymousAccessTest < ActionDispatch::IntegrationTest
     end
   end
 
+  test 'view file' do
+    use_keep_web_config
+
+    magic = rand(2**512).to_s 36
+    token = api_fixture('api_client_authorizations')['admin']['api_token']
+    logblock = `echo -n #{magic.shellescape} | ARVADOS_API_TOKEN=#{token.shellescape} arv-put --no-progress --raw -`.strip
+    assert $?.success?, $?
+    col = nil
+    use_token 'admin' do
+      mtxt = ". #{logblock} 0:#{magic.length}:Hello\\040world.txt\n"
+      col = Collection.create(
+        manifest_text: mtxt,
+        owner_uuid: api_fixture('groups')['anonymously_accessible_project']['uuid'])
+    end
+
+    visit '/collections/' + col.uuid
+    find('tr,li', text: 'Hello world.txt').
+      find('a[title~=View]').click
+    assert_text magic
+  end
+
   [
     'running anonymously accessible cr',
     'pipelineInstance'

commit 1dd3f0e144b5102128f18974f48f620aaf7b78b3
Author: Lucas Di Pentima <lucas at curoverse.com>
Date:   Mon Jul 24 17:52:39 2017 -0300

    11167: Removed conditional that check is keep_web is configured
    because workbench already do this at start.
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at curoverse.com>

diff --git a/apps/workbench/app/controllers/collections_controller.rb b/apps/workbench/app/controllers/collections_controller.rb
index 6dd190e..151b3a5 100644
--- a/apps/workbench/app/controllers/collections_controller.rb
+++ b/apps/workbench/app/controllers/collections_controller.rb
@@ -141,23 +141,18 @@ class CollectionsController < ApplicationController
       return
     end
 
-    # If we are configured to use a keep-web server, just redirect to
-    # the appropriate URL.
-    if Rails.configuration.keep_web_url or
-        Rails.configuration.keep_web_download_url
-      opts = {}
-      if usable_token == params[:reader_token]
-        opts[:path_token] = usable_token
-      elsif usable_token == Rails.configuration.anonymous_user_token
-        # Don't pass a token at all
-      else
-        # We pass the current user's real token only if it's necessary
-        # to read the collection.
-        opts[:query_token] = usable_token
-      end
-      opts[:disposition] = params[:disposition] if params[:disposition]
-      return redirect_to keep_web_url(params[:uuid], params[:file], opts)
+    opts = {}
+    if usable_token == params[:reader_token]
+      opts[:path_token] = usable_token
+    elsif usable_token == Rails.configuration.anonymous_user_token
+      # Don't pass a token at all
+    else
+      # We pass the current user's real token only if it's necessary
+      # to read the collection.
+      opts[:query_token] = usable_token
     end
+    opts[:disposition] = params[:disposition] if params[:disposition]
+    return redirect_to keep_web_url(params[:uuid], params[:file], opts)
   end
 
   def sharing_scopes

commit 9997ada67ce36d2fbe831bce473aa61250727aff
Merge: 8f3070e 3574793
Author: Lucas Di Pentima <lucas at curoverse.com>
Date:   Mon Jul 24 10:15:23 2017 -0300

    11167: Merge branch 'master' into 11167-wb-remove-arvget
    
    Arvados-DCO-1.1-Signed-off-by: Lucas Di Pentima <lucas at curoverse.com>


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


hooks/post-receive
-- 




More information about the arvados-commits mailing list