[ARVADOS] updated: 67a057010e3381ae66fc8fe78f1d5a368325fb9a

git at public.curoverse.com git at public.curoverse.com
Mon Feb 8 13:49:51 EST 2016


Summary of changes:
 apps/workbench/app/models/arvados_api_client.rb    |   5 +-
 backports/python-llfuse/fpm-info.sh                |   3 +
 doc/_includes/_install_git.liquid                  |   8 +-
 doc/_includes/_install_redhat_postgres_auth.liquid |  11 +
 doc/_includes/_install_ruby_and_bundler.liquid     |   2 +-
 doc/_includes/_install_runit.liquid                |  13 +
 doc/install/install-api-server.html.textile.liquid |  27 +-
 .../install-arv-git-httpd.html.textile.liquid      |  17 +-
 .../install-compute-node.html.textile.liquid       |  21 +-
 .../install-crunch-dispatch.html.textile.liquid    |  22 +-
 doc/install/install-keep-web.html.textile.liquid   |   4 +-
 doc/install/install-keepproxy.html.textile.liquid  |   6 +-
 doc/install/install-keepstore.html.textile.liquid  |   4 +-
 .../install-shell-server.html.textile.liquid       |  16 +-
 doc/install/install-sso.html.textile.liquid        |  15 +-
 .../install-workbench-app.html.textile.liquid      |  15 +-
 sdk/cli/bin/crunch-job                             |   2 +-
 sdk/python/arvados/events.py                       |  63 ++--
 services/api/Gemfile                               |   2 +-
 services/api/Gemfile.lock                          |   4 +-
 .../app/controllers/arvados/v1/nodes_controller.rb |   2 +-
 services/api/fpm-info.sh                           |   2 +-
 services/api/lib/load_param.rb                     |  23 +-
 services/api/test/fixtures/nodes.yml               |  11 +
 .../functional/arvados/v1/nodes_controller_test.rb |  38 +++
 .../api/test/functional/arvados/v1/query_test.rb   |  27 ++
 services/crunchstat/crunchstat.go                  |   4 +-
 services/fuse/arvados_fuse/command.py              | 106 ++++---
 services/fuse/arvados_fuse/fusedir.py              |  24 ++
 services/fuse/fpm-info.sh                          |   1 +
 services/fuse/setup.py                             |   2 +-
 services/fuse/tests/integration_test.py            |   4 +-
 services/fuse/tests/mount_test_base.py             |  31 +-
 services/fuse/tests/test_command_args.py           |  28 +-
 services/fuse/tests/test_exec.py                   |  60 ++++
 services/keepstore/azure_blob_volume.go            |  19 +-
 services/keepstore/handler_test.go                 | 103 +++++++
 services/keepstore/handlers.go                     |  53 +++-
 services/keepstore/keepstore.go                    |  10 +
 services/keepstore/s3_volume.go                    |  13 +-
 services/keepstore/trash_worker.go                 |   2 +-
 services/keepstore/volume.go                       |  18 +-
 services/keepstore/volume_generic_test.go          |   8 +-
 services/keepstore/volume_test.go                  |   7 +-
 services/keepstore/volume_unix.go                  |  14 +-
 services/keepstore/volume_unix_test.go             |   2 +-
 services/login-sync/bin/arvados-login-sync         |   3 +-
 .../nodemanager/arvnodeman/computenode/__init__.py |  61 ++++
 .../arvnodeman/computenode/dispatch/__init__.py    |  65 +---
 .../arvnodeman/computenode/dispatch/slurm.py       |   7 +-
 .../arvnodeman/computenode/driver/__init__.py      |  50 ++-
 .../arvnodeman/computenode/driver/ec2.py           |   3 +
 .../arvnodeman/computenode/driver/gce.py           |   1 +
 services/nodemanager/arvnodeman/launcher.py        |   2 +-
 .../tests/test_computenode_driver_azure.py         |  10 +
 .../tests/test_computenode_driver_gce.py           |  10 +
 services/nodemanager/tests/testutil.py             |   8 +
 tools/crunchstat-summary/MANIFEST.in               |   1 +
 tools/crunchstat-summary/bin/crunchstat-summary    |   9 +-
 .../crunchstat_summary/__init__.py                 |   4 +
 .../crunchstat_summary/chartjs.js                  |  27 ++
 .../crunchstat_summary/chartjs.py                  |  70 +++++
 .../crunchstat_summary/command.py                  |  47 +++
 .../crunchstat_summary/summarizer.py               | 336 ++++++++++++++++++---
 tools/crunchstat-summary/setup.py                  |   2 +
 .../tests/crunchstat_error_messages.txt            |   9 +
 .../tests/logfile_20151204190335.txt.gz.report     |   3 +
 .../tests/logfile_20151210063411.txt.gz.report     |   2 +
 .../tests/logfile_20151210063439.txt.gz.report     |   2 +
 tools/crunchstat-summary/tests/test_examples.py    | 158 +++++++++-
 70 files changed, 1441 insertions(+), 321 deletions(-)
 create mode 100644 doc/_includes/_install_redhat_postgres_auth.liquid
 create mode 100644 doc/_includes/_install_runit.liquid
 create mode 100644 services/fuse/fpm-info.sh
 create mode 100644 services/fuse/tests/test_exec.py
 create mode 100644 tools/crunchstat-summary/crunchstat_summary/chartjs.js
 create mode 100644 tools/crunchstat-summary/crunchstat_summary/chartjs.py
 create mode 100644 tools/crunchstat-summary/tests/crunchstat_error_messages.txt

  discards  1502c938630394eb34a4f80add0e9dc36995659a (commit)
       via  67a057010e3381ae66fc8fe78f1d5a368325fb9a (commit)
       via  ebdc87e97b7faecbe44e4e2e16523b9c4a28bcf5 (commit)
       via  b63c1041dd34fe496920fd035249e50edc88b095 (commit)
       via  45f37fe38bd3cb7ca1ff9a7c47791ec73888f383 (commit)
       via  8417bf754051966915b93c362624ebdcd492d660 (commit)
       via  64e0a60330d73309c02e75d012249a28a32e1b9d (commit)
       via  ea5a4de11a0f379c6fa78be288bc403da53995a1 (commit)
       via  fd5a11b21af83870c4122afdf94844dd4cf63cc6 (commit)
       via  cda9a7d3e3601a7a8bb721261c5b26210e9f629f (commit)
       via  ca4e92183dfca9f226898790a09239935e17eba9 (commit)
       via  be2197781a206ba7cbf5bbfbf61a70375fb10d68 (commit)
       via  73812c5a32581a7f72922dcd2e448e4d4ba4d918 (commit)
       via  e0e0c312ddf1f60736cc1ca7488bb36f8618440c (commit)
       via  c7e3518e66369b931821b802160bd014cf82b218 (commit)
       via  ce8f8ab963a12ca7f89c79cb7d6f5d19fe15b03c (commit)
       via  a3dfad4606eb8cff8bb66533a38c47d0d8c158fa (commit)
       via  1dbf2e031ecbe21aefebe8b297fb5d5e222234a7 (commit)
       via  48f61a5af0d0e6617ea545d716c5e0b132790198 (commit)
       via  b26951c6f488f28cf1ea5aac65c65311d0b573a4 (commit)
       via  95773bc4ac9e01126a80a96fdbe0bf37d1478767 (commit)
       via  4ede474fb3be39474fdd2a075d81dd351e6afefc (commit)
       via  e9dcedd8dda3de8360e34bfca536dd606d558d34 (commit)
       via  b983edff6a9053b686275af980ce336283fd3c27 (commit)
       via  dd6bbea1497114eed99285753bc163972717dfbb (commit)
       via  aea45ff7ad85ec23a903faf16386d43e0d614f83 (commit)
       via  6570eec0115d7973cce4df10857631cfe6bd11c5 (commit)
       via  24d4409c087eeebe67ba54af7a6c19745a60365b (commit)
       via  6d349aac4810e7b0039e519860d0eda8345c9dfe (commit)
       via  40103b455d0df2bc47eaba422a72bf6ec4fd6808 (commit)
       via  7b4f98f54598aefc54f88a491dba64793cf749ae (commit)
       via  0171406e1dda9662e47c19ffabdd4eb66dd2fc61 (commit)
       via  b445db93ece1069c949f0c02d0564e578e453d12 (commit)
       via  179b6580522095c6e190bd000c71002fc6564a2e (commit)
       via  630eac929f942fa997a4efcb9e7cd2d88414d0c2 (commit)
       via  a9335a762f70e30affdb259e2ff487f27963f1c8 (commit)
       via  9416b3013a959ef51f12829023d12986a234e029 (commit)
       via  9024a5b5eb247e3a552dbb92a61f7c916c0d4349 (commit)
       via  9eb25cddc8bf1d9768d0bb9dae71ac91754e3480 (commit)
       via  bbd84f0a5594fdbf21a967572d4c2b33d7987f2b (commit)
       via  678e366229d4082d5977c7dadf94224d5d834fb7 (commit)
       via  4abdedc4baddd6ed80b180b8820fba19068c1c3a (commit)
       via  df0f52924d6e843bcdbecd96a9b398b825b61a85 (commit)
       via  efe49059b1cdfc9f91504bcbdc96656b4b844839 (commit)
       via  c174caa6acbfb4927631160da728ec4d1f8ad410 (commit)
       via  0c3ec9229478a836d6e8fe86369cf4dffdb58183 (commit)
       via  00a94def60fcf314e4a8cf525f82ca4f9952ed78 (commit)
       via  cc79feaa11ec7436bf5f94ac9e3db4ed76bdc4c9 (commit)
       via  bb7d7bd789d2fb71bc383fd33c74d084f6a82120 (commit)
       via  2174d59b367e5b2000472cf8b521a155b952b543 (commit)
       via  daa3cc42efa55ad17df2a151aebaac515d10cc52 (commit)
       via  ce669fb969b7669dc1f672214f96404fcd141455 (commit)
       via  0d4bee15a0e69b08799bff869eb3f1ca122f107f (commit)
       via  b32e371420fff5763c13c79cd4327692e2a2e1bd (commit)
       via  7faa4aa742a7562c75e2fc2cabc7bf2ea8e856a8 (commit)
       via  85c71a36173550f14fb1d5f4092f2050ec8dc033 (commit)
       via  fc3b155fb7ad82cf97cdb81a02a9cfaebe4389ff (commit)
       via  a4b58ddc7b8ec80010dfa30dc6c4ac1ce69858da (commit)
       via  9aa6066eef7a67809f33871447d4312af6f22749 (commit)
       via  fdd28d6f009c605c61f4444dc2d9d142c3a1d395 (commit)
       via  d9ab654450fd23c043beab5c19c99806a301e51c (commit)
       via  56922b056a746e79c53b43186dbeff7e8a856546 (commit)
       via  e001d5f3e5cece6429c9b1305f98fdad89f451d0 (commit)
       via  b59cedb067aa5cf27045d1ad15fe9cea49502520 (commit)
       via  aa720c29abcf039a965231decb6a40d00e479437 (commit)
       via  72e1f8eebd7eb9ad5f6b4d0923f06cfc2b57b9d4 (commit)
       via  12b1501e8ee2edc932ceb908ab69189712a761b4 (commit)
       via  3b31f110db82c93c3aade294f50bbb0218c74697 (commit)
       via  6ac861fd4a44cb39371a66d96b77ad7a41c85d3b (commit)
       via  33e39bb6053e1cf5bf849a29e41fb74b31a22ef7 (commit)
       via  f50626706f9177137472fcd37472d3437b7c7a57 (commit)
       via  2b6837ef2b57204b7bf4fd5c4373283892999268 (commit)
       via  a4d0d55ac333e8060d13a600d8aa8f5443760b29 (commit)
       via  2a6e0785f8fb675038f867aebc65033dc8a85211 (commit)
       via  0d3411abc645a8cd6fef4b960070ecf054ac16f2 (commit)
       via  20fe67d073424f5c277fbd13557ffe5ae2b15fd9 (commit)
       via  0343fe988fdc50bdfb1ac34204c1a4998fc7c446 (commit)
       via  4b78fb11974d8bcb0b9e4ecd0162d6a938026c73 (commit)
       via  b8fbd409f84d647726a25ee7fd2d73660a2bfa82 (commit)
       via  d9b556e32bd91635a57d5f7ab0844eb3ad12de2b (commit)
       via  87a3cc47267fad4cc769d9d866754c072a83c35e (commit)
       via  a82be0d9ab0438fa778e80c0aea3a07e8ba6a929 (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (1502c938630394eb34a4f80add0e9dc36995659a)
            \
             N -- N -- N (67a057010e3381ae66fc8fe78f1d5a368325fb9a)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.

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 67a057010e3381ae66fc8fe78f1d5a368325fb9a
Author: Tom Clegg <tom at curoverse.com>
Date:   Mon Feb 8 13:47:43 2016 -0500

    8289: Strip redundant orders, even when provided explicitly by client.

diff --git a/services/api/lib/load_param.rb b/services/api/lib/load_param.rb
index c6c8ddf..929d739 100644
--- a/services/api/lib/load_param.rb
+++ b/services/api/lib/load_param.rb
@@ -111,11 +111,26 @@ module LoadParam
     # (e.g., [] or ['owner_uuid desc']), fall back on the default
     # orders to ensure repeating the same request (possibly with
     # different limit/offset) will return records in the same order.
-    unless @orders.any? do |order|
-        otable, ocol = order.split(' ')[0].split('.')
-        otable == table_name and model_class.unique_columns.include?(ocol)
+    # Here we also truncate the given list of orders after the first
+    # unique column, and make sure we don't list the same column
+    # twice.
+    orders_given_and_default = @orders + model_class.default_orders
+    order_cols_used = {}
+    @orders = []
+    orders_given_and_default.each do |order|
+      otablecol = order.split(' ')[0]
+
+      next if order_cols_used[otablecol]
+      order_cols_used[otablecol] = true
+
+      @orders << order
+
+      otable, ocol = otablecol.split('.')
+      if otable == table_name and model_class.unique_columns.include?(ocol)
+        # we already have a full ordering; subsequent entries would be
+        # superfluous
+        break
       end
-      @orders += model_class.default_orders
     end
 
     case params[:select]
diff --git a/services/api/test/functional/arvados/v1/query_test.rb b/services/api/test/functional/arvados/v1/query_test.rb
index 56db54c..5cb073a 100644
--- a/services/api/test/functional/arvados/v1/query_test.rb
+++ b/services/api/test/functional/arvados/v1/query_test.rb
@@ -23,4 +23,31 @@ class Arvados::V1::QueryTest < ActionController::TestCase
     assert_equal('logs.event_type asc, logs.modified_at desc, logs.uuid',
                  assigns(:objects).order_values.join(', '))
   end
+
+  test 'skip fallback orders already given by client' do
+    @controller = Arvados::V1::LogsController.new
+    authorize_with :active
+    get :index, {
+      order: ['modified_at asc'],
+      controller: 'logs',
+    }
+    assert_response :success
+    assert_equal('logs.modified_at asc, logs.uuid',
+                 assigns(:objects).order_values.join(', '))
+  end
+
+  test 'eliminate superfluous orders' do
+    @controller = Arvados::V1::LogsController.new
+    authorize_with :active
+    get :index, {
+      order: ['logs.modified_at asc',
+              'modified_at desc',
+              'event_type desc',
+              'logs.event_type asc'],
+      controller: 'logs',
+    }
+    assert_response :success
+    assert_equal('logs.modified_at asc, logs.event_type desc, logs.uuid',
+                 assigns(:objects).order_values.join(', '))
+  end
 end

commit ebdc87e97b7faecbe44e4e2e16523b9c4a28bcf5
Author: Tom Clegg <tom at curoverse.com>
Date:   Sat Jan 23 00:23:49 2016 -0500

    8289: Do not add fallback orders if client already specified an unambiguous order.

diff --git a/services/api/app/models/arvados_model.rb b/services/api/app/models/arvados_model.rb
index 35dd1a9..6cd40a4 100644
--- a/services/api/app/models/arvados_model.rb
+++ b/services/api/app/models/arvados_model.rb
@@ -115,6 +115,10 @@ class ArvadosModel < ActiveRecord::Base
     ["#{table_name}.modified_at desc", "#{table_name}.uuid"]
   end
 
+  def self.unique_columns
+    ["id", "uuid"]
+  end
+
   # If current user can manage the object, return an array of uuids of
   # users and groups that have permission to write the object. The
   # first two elements are always [self.owner_uuid, current user's
diff --git a/services/api/lib/load_param.rb b/services/api/lib/load_param.rb
index 718aaea..c6c8ddf 100644
--- a/services/api/lib/load_param.rb
+++ b/services/api/lib/load_param.rb
@@ -111,7 +111,12 @@ module LoadParam
     # (e.g., [] or ['owner_uuid desc']), fall back on the default
     # orders to ensure repeating the same request (possibly with
     # different limit/offset) will return records in the same order.
-    @orders += model_class.default_orders
+    unless @orders.any? do |order|
+        otable, ocol = order.split(' ')[0].split('.')
+        otable == table_name and model_class.unique_columns.include?(ocol)
+      end
+      @orders += model_class.default_orders
+    end
 
     case params[:select]
     when Array
diff --git a/services/api/test/functional/arvados/v1/query_test.rb b/services/api/test/functional/arvados/v1/query_test.rb
new file mode 100644
index 0000000..56db54c
--- /dev/null
+++ b/services/api/test/functional/arvados/v1/query_test.rb
@@ -0,0 +1,26 @@
+require 'test_helper'
+
+class Arvados::V1::QueryTest < ActionController::TestCase
+  test 'no fallback orders when order is unambiguous' do
+    @controller = Arvados::V1::LogsController.new
+    authorize_with :active
+    get :index, {
+      order: ['id asc'],
+      controller: 'logs',
+    }
+    assert_response :success
+    assert_equal ['logs.id asc'], assigns(:objects).order_values
+  end
+
+  test 'fallback orders when order is ambiguous' do
+    @controller = Arvados::V1::LogsController.new
+    authorize_with :active
+    get :index, {
+      order: ['event_type asc'],
+      controller: 'logs',
+    }
+    assert_response :success
+    assert_equal('logs.event_type asc, logs.modified_at desc, logs.uuid',
+                 assigns(:objects).order_values.join(', '))
+  end
+end

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


hooks/post-receive
-- 




More information about the arvados-commits mailing list