[ARVADOS] updated: 66573d95fcb2a969796448433694488401988554
git at public.curoverse.com
git at public.curoverse.com
Mon Jun 8 11:40:56 EDT 2015
Summary of changes:
.../app/controllers/collections_controller.rb | 9 -
.../app/controllers/projects_controller.rb | 11 +-
apps/workbench/app/models/arvados_api_client.rb | 14 +-
apps/workbench/app/models/arvados_base.rb | 23 +-
apps/workbench/app/views/layouts/body.html.erb | 6 +
apps/workbench/app/views/projects/public.html.erb | 29 ++
apps/workbench/config/application.default.yml | 4 +-
apps/workbench/config/routes.rb | 2 +
.../controllers/collections_controller_test.rb | 7 +
.../test/controllers/projects_controller_test.rb | 32 +++
apps/workbench/test/helpers/manifest_examples.rb | 1 +
apps/workbench/test/helpers/time_block.rb | 1 +
.../test/integration/anonymous_access_test.rb | 5 +
.../test/integration/application_layout_test.rb | 2 +
.../collection_unit_test.rb | 71 +++++
.../collections_controller_test.rb | 71 +++++
apps/workbench/test/test_helper.rb | 34 ++-
apps/workbench/test/unit/arvados_base_test.rb | 87 ++++++
doc/_config.yml | 2 +-
doc/_includes/_arv_run_redirection.liquid | 2 +
doc/_includes/_ssh_addkey.liquid | 17 +-
doc/_includes/_tutorial_cluster_name.liquid | 3 +
.../_tutorial_expectations_workstation.liquid | 3 +
doc/index.html.liquid | 7 +-
...l-manual-prerequisites-ruby.html.textile.liquid | 3 +-
.../getting_started/community.html.textile.liquid | 4 +-
.../getting_started/workbench.html.textile.liquid | 2 +-
doc/user/index.html.textile.liquid | 2 +-
doc/user/reference/api-tokens.html.textile.liquid | 4 +-
doc/user/topics/arv-docker.html.textile.liquid | 4 +-
doc/user/topics/arv-run.html.textile.liquid | 6 +
doc/user/topics/arv-web.html.textile.liquid | 3 +
doc/user/topics/run-command.html.textile.liquid | 2 +
...nning-pipeline-command-line.html.textile.liquid | 10 +-
doc/user/topics/tutorial-job1.html.textile.liquid | 8 +-
.../topics/tutorial-parallel.html.textile.liquid | 2 +-
.../running-external-program.html.textile.liquid | 8 +-
.../tutorial-firstscript.html.textile.liquid | 10 +-
.../tutorial-keep-get.html.textile.liquid | 2 +-
.../tutorials/tutorial-keep.html.textile.liquid | 11 +-
...tutorial-pipeline-workbench.html.textile.liquid | 8 +-
.../tutorial-submit-job.html.textile.liquid | 8 +-
docker/api/Dockerfile | 4 +-
docker/api/apache2_vhost.in | 2 -
docker/api/application.yml.in | 11 +-
docker/api/arvados-clients.yml.in | 2 +-
.../{keep_server_1.json => keep_server_0.json.in} | 3 +-
.../{keep_server_0.json => keep_server_1.json.in} | 2 +-
docker/api/omniauth.rb.in | 2 +-
docker/api/setup-gitolite.sh.in | 4 +-
docker/arvdock | 58 +++-
docker/base/Dockerfile | 2 +-
docker/build_tools/Makefile | 11 +-
docker/build_tools/build.rb | 52 ++--
docker/config.yml.example | 12 +-
docker/doc/Dockerfile | 5 +-
docker/doc/{apache2_vhost => apache2_vhost.in} | 5 +-
docker/sso/apache2_vhost.in | 2 -
docker/workbench/Dockerfile | 4 +-
docker/workbench/apache2_vhost.in | 13 +-
docker/workbench/application.yml.in | 6 +-
sdk/cli/bin/crunch-job | 307 ++++++++++++++-------
sdk/python/arvados/arvfile.py | 10 +-
sdk/python/tests/test_arvfile.py | 19 +-
.../api/app/controllers/application_controller.rb | 21 +-
services/api/app/models/blob.rb | 13 +-
services/api/app/models/collection.rb | 7 +-
services/api/app/models/node.rb | 86 +++---
services/api/config/application.default.yml | 53 ++--
...50526180251_leading_space_on_full_text_index.rb | 2 +
services/api/lib/eventbus.rb | 8 +-
services/api/lib/record_filters.rb | 2 +-
.../arvados/v1/collections_controller_test.rb | 38 ++-
services/api/test/helpers/manifest_examples.rb | 31 +++
services/api/test/helpers/time_block.rb | 11 +
.../integration/collections_performance_test.rb | 40 +++
.../api/test/unit/collection_performance_test.rb | 61 ++++
services/api/test/unit/node_test.rb | 49 ++++
services/api/test/unit/record_filters_test.rb | 36 +++
79 files changed, 1178 insertions(+), 356 deletions(-)
create mode 100644 apps/workbench/app/views/projects/public.html.erb
create mode 120000 apps/workbench/test/helpers/manifest_examples.rb
create mode 120000 apps/workbench/test/helpers/time_block.rb
create mode 100644 apps/workbench/test/integration_performance/collection_unit_test.rb
create mode 100644 apps/workbench/test/integration_performance/collections_controller_test.rb
create mode 100644 apps/workbench/test/unit/arvados_base_test.rb
create mode 100644 doc/_includes/_tutorial_cluster_name.liquid
create mode 100644 doc/_includes/_tutorial_expectations_workstation.liquid
rename docker/api/{keep_server_1.json => keep_server_0.json.in} (59%)
rename docker/api/{keep_server_0.json => keep_server_1.json.in} (59%)
rename docker/doc/{apache2_vhost => apache2_vhost.in} (62%)
create mode 100644 services/api/test/helpers/manifest_examples.rb
create mode 100644 services/api/test/helpers/time_block.rb
create mode 100644 services/api/test/integration/collections_performance_test.rb
create mode 100644 services/api/test/unit/collection_performance_test.rb
create mode 100644 services/api/test/unit/record_filters_test.rb
discards 64cfaed1a3bd3b25ff86dd71b4a72920146e2e83 (commit)
via 66573d95fcb2a969796448433694488401988554 (commit)
via 511daa2d275143d89600f015ee0bb19dcbe5641c (commit)
via b33597e94eec5f21fbbcfa72611a3b36397755d5 (commit)
via 869f3f0ad541c85bfb72060b1018905d3f882292 (commit)
via a12cf91db3ececed782d9718af30553f8866ad81 (commit)
via 7cd190acfc0b6ce7f65b3effa1e2ce75ed692a3d (commit)
via 0d540b1fde91b85db18fa027de65bb67c5389477 (commit)
via b193c49962deb916893e1ecb0ab04df8b00e3d7a (commit)
via ebdaedbc54c80730733c61cecb3998e26cf5ee7b (commit)
via 375e0f68744fdd73f13921e8449de8c6fb232169 (commit)
via 55f5486de7676b8906066b290ed0420b19f90eda (commit)
via 24e15ff4b9d357d59827db9ec4f1bd165086eecb (commit)
via 4e27d97b0161e56943a5828262a0fb873b826f22 (commit)
via 602706ef5510b3f07fc5fa988019952d2133320c (commit)
via 39a1340d56f7acbddb771f6bef36b68ee9076885 (commit)
via 22c8b6367a9cd79b17240b7dca1ac8f7d8e7ee77 (commit)
via de8324b3fbbf3f67f0f61c162f5895e8dcd3142d (commit)
via 69f592e029493afb8a0709811b5be1fefabafb4b (commit)
via 4004979fcf1572336a86660b783fcdbebf658db7 (commit)
via c9f0347802b2d7b4844f283072c7931504e25ade (commit)
via 95a1e7bbc1d6f931a0ea50cef9ceb1ea5074a76c (commit)
via c4c8977ef25cc6805f2cca1dedfc83faecc0bc23 (commit)
via de1e5fd5605aaf11b96ef411201e11ac767fe8ba (commit)
via d9ab8c81c11120c32864858d7caafe908c408ad5 (commit)
via 1da9a2a61d66601ab9a02bff439d610ee19c5932 (commit)
via ac4a24f999b9c87ca5ecf6fa9c72204e11a89e66 (commit)
via 214ad0d556ff3e0a7d6cef45cd8e84917994dab6 (commit)
via b5da9565dd4f27394a65ed321f15ee1c3f8ec2e3 (commit)
via 78ddad37d72c6c3a728530dc6932fb91f7d81b87 (commit)
via 7ca020894d276edf9098132f4757cdd46b6b1441 (commit)
via 4b3b3064b87a07b2ba8035dd5c8f3660dd3b2a67 (commit)
via 7a0a91fa4e59e1712611c5d52953898417b50038 (commit)
via a0ee198f06282e0e5fb6325bb4de852d08546eaf (commit)
via baac22ee9ae8f27a10df875e5f1e17b1b6cd51c8 (commit)
via c766dd2394de3480be2047f4c073e5802a001d07 (commit)
via f645742ae8131314f8d5cbd70f10504fc5fd1101 (commit)
via 52e32bbee4cb43cc42aca47c927643f7662da266 (commit)
via 469356d1a60754381e33736ac4f80e1a1e593a7f (commit)
via 121625abcf70672531b35dc4092a4597d8eca4be (commit)
via 76e42f169c6e278c1d8cefe9fb7c03cc70892bac (commit)
via c6fe632f972e4610ff7f35f83a5d7dcd2d6e7ecb (commit)
via 178d3f36265e0e9e9cc0bb6ac8c7c47a9c701687 (commit)
via 299c01cb4d4a96a94ece77db417ceb7af8e9ba69 (commit)
via 9413eb733015601af699f2027d9a7a5bad3f3dea (commit)
via b25916b93d720f80b5bdf16f018d83c13c6c3001 (commit)
via 1ec1d552c77e18e2912e400ae395ca00f4e51c3c (commit)
via 1e0d770315a7b01c316b6a4c314bff58856bfe02 (commit)
via 5e0dd2c6b8f080c81ff6077e629f5ec9f377802f (commit)
via 7a53d874994a5a9af273cee1329d9635b7e03edb (commit)
via 1b5c30eb957594e00a09df745df7630f661e3807 (commit)
via fa9fc5ab6440415542badc8bee0b144d698ec5cc (commit)
via 32038d56fbfe5b635b1c53f247aea9abcca2285c (commit)
via c51a3888a01543d0835119574960a02fd7d35994 (commit)
via 3101fea587bc08e0f4f00a583d1d9e2c953417c1 (commit)
via 6fed84983e6e973eefff66a126f4bb7811c44d29 (commit)
via e73222a8d0c18b159ae3d8b53b54474650bdda16 (commit)
via d9214af111bb44deed1246ec97624b6bd8d970c5 (commit)
via 59d68bda41fcc83c47795a19dbe1d0c180952a08 (commit)
via 15009c109bee16bc09c9bbc11f7df0a677a0cf23 (commit)
via a2eb98fa68672d6966233d7864c328feb8df3939 (commit)
via b3e2782f72e0ca381f3f8c508227ebd7a2ef0c92 (commit)
via 53b19718f974e7c9014644ce80fa36363ae0b693 (commit)
via 2578f9c122d5c4d17cabf9d7f374f14773324360 (commit)
via 7a47332fa99627c3ed0e22a02c54afcb6d128ef5 (commit)
via 6bc89efda1447c479642c7459d14a7afa440019d (commit)
via 8a2a84af560d9de68cf0d0c9e34e0d1f19b65e43 (commit)
via 1a0ba80d44b4be962f898ee1458faea9d4a59137 (commit)
via 71f1ccba7367ca9d000e53c0b86c0448600350f4 (commit)
via 80d57cdcc9fcae93da2b507942815d9de6dd3351 (commit)
via a7d558d6c2db242a6555c7f397cb4d91618aa13c (commit)
via ae3bb0033a24a38489c49ffc26e5a5e8fd93c160 (commit)
via 6b0931644aa30ad9d271ea06c8fa413696c562c0 (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 (64cfaed1a3bd3b25ff86dd71b4a72920146e2e83)
\
N -- N -- N (66573d95fcb2a969796448433694488401988554)
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 66573d95fcb2a969796448433694488401988554
Author: Tom Clegg <tom at curoverse.com>
Date: Sat Jun 6 12:29:00 2015 -0400
6098: Fix up record_filters API. Add (but skip) test that full-text index is used.
diff --git a/services/api/app/controllers/application_controller.rb b/services/api/app/controllers/application_controller.rb
index e91e3ce..931af00 100644
--- a/services/api/app/controllers/application_controller.rb
+++ b/services/api/app/controllers/application_controller.rb
@@ -207,10 +207,10 @@ class ApplicationController < ActionController::Base
def apply_filters model_class=nil
model_class ||= self.model_class
- ft = record_filters @filters, model_class
- if ft[:cond_out].any?
- @objects = @objects.where('(' + ft[:cond_out].join(') AND (') + ')',
- *ft[:param_out])
+ sql = record_filters @filters, model_class
+ if sql[:conditions].any?
+ @objects = @objects.where('(' + sql[:conditions].join(') AND (') + ')',
+ *sql[:params])
end
end
diff --git a/services/api/lib/eventbus.rb b/services/api/lib/eventbus.rb
index 35671d6..ed4eb24 100644
--- a/services/api/lib/eventbus.rb
+++ b/services/api/lib/eventbus.rb
@@ -97,12 +97,12 @@ class EventBus
# Now build filters provided by client
ws.filters.each do |filter|
- ft = record_filters filter.filters, Log
- if ft[:cond_out].any?
+ sql = record_filters filter.filters, Log
+ if sql[:conditions].any?
# Join the clauses within a single subscription filter with AND
# so it is consistent with regular queries
- cond_out << "(#{ft[:cond_out].join ') AND ('})"
- param_out += ft[:param_out]
+ cond_out << "(#{sql[:conditions].join ') AND ('})"
+ param_out += sql[:params]
end
end
diff --git a/services/api/lib/record_filters.rb b/services/api/lib/record_filters.rb
index 350c380..1be4e78 100644
--- a/services/api/lib/record_filters.rb
+++ b/services/api/lib/record_filters.rb
@@ -131,7 +131,7 @@ module RecordFilters
conds_out << cond_out.join(' OR ') if cond_out.any?
end
- {:cond_out => conds_out, :param_out => param_out}
+ {:conditions => conds_out, :params => param_out}
end
end
diff --git a/services/api/test/unit/record_filters_test.rb b/services/api/test/unit/record_filters_test.rb
new file mode 100644
index 0000000..6990564
--- /dev/null
+++ b/services/api/test/unit/record_filters_test.rb
@@ -0,0 +1,36 @@
+require 'test_helper'
+
+class RecordFiltersTest < ActiveSupport::TestCase
+ include RecordFilters
+
+ ArvadosModel.descendants.each do |model|
+ # Postgres skips indexes when querying small tables, so these
+ # tests fail inappropriately. We include it to remind ourselves
+ # how to run the appropriate tests when we get around that snag.
+ break
+
+ ft_idx = model.connection.indexes(model.table_name).select do |idx|
+ /_full_text_/ =~ idx.name
+ end.first
+ next unless ft_idx
+ test "@@ query on #{model.to_s} uses full text index" do
+ act_as_user users(:active) do
+ (1..100).each do |i|
+ m = model.new
+ if m.respond_to? :name=
+ m.name = "test number #{i}"
+ end
+ if m.respond_to? :manifest_text=
+ m.manifest_text = ". d41d8cd98f00b204e9800998ecf8427e+0 0:0:foo\n"
+ end
+ m.save!
+ end
+ end
+ query = record_filters [['any', '@@', 'foo:*']], model
+ plan = model.
+ where(query[:conditions].join(' AND '), *query[:params]).
+ explain
+ assert_match /#{ft_idx.name}/, plan
+ end
+ end
+end
-----------------------------------------------------------------------
hooks/post-receive
--
More information about the arvados-commits
mailing list