[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