[ARVADOS] updated: 00949dacde511d4a3e077281b32e40e5b525c2b4

git at public.curoverse.com git at public.curoverse.com
Thu Jun 19 10:48:56 EDT 2014


Summary of changes:
 apps/workbench/app/assets/javascripts/sizing.js    |  15 ++-
 .../app/assets/stylesheets/application.css.scss    |   1 +
 .../controllers/pipeline_instances_controller.rb   | 111 +++++++++++----------
 .../app/views/application/_content.html.erb        |   4 +-
 .../app/views/application/_job_progress.html.erb   |  37 +++++--
 .../app/views/application/_svg_div.html.erb        |   3 +-
 sdk/cli/bin/arv                                    |   3 +
 sdk/cli/bin/arv-ws                                 |   1 +
 sdk/cli/bin/crunch-job                             |   2 +-
 sdk/cli/test/test_arv-ws.rb                        |  21 ++++
 sdk/python/arvados/events.py                       |  23 ++++-
 sdk/python/bin/arv-ws                              |  30 ++++++
 sdk/python/setup.py                                |   1 +
 .../app/controllers/arvados/v1/jobs_controller.rb  |  10 +-
 services/api/app/models/collection.rb              |  13 +--
 services/api/config/application.default.yml        |  13 +++
 services/api/test/fixtures/links.yml               |  10 +-
 .../arvados/v1/job_reuse_controller_test.rb        |  22 ++++
 .../keep/src/arvados.org/keepproxy/keepproxy.go    |   6 +-
 19 files changed, 231 insertions(+), 95 deletions(-)
 create mode 120000 sdk/cli/bin/arv-ws
 create mode 100644 sdk/cli/test/test_arv-ws.rb
 create mode 100755 sdk/python/bin/arv-ws

       via  00949dacde511d4a3e077281b32e40e5b525c2b4 (commit)
       via  71c66323a0ac9ce0cacf3ed3585a07562553096d (commit)
       via  321fe76fa99e66566220bc2768928d705d46fda3 (commit)
       via  af50d257cdf95ee1433a5fdcdcb9598cd666ad8c (commit)
       via  84eaf88d6836d730ef89d1433233a5f21d36ebb4 (commit)
       via  586c0409bf9496bae169c2d51b04806b82c342a9 (commit)
       via  c23ee1444f21e6a5f2af9f058b610cfa301059cf (commit)
       via  c6ecb94b3d88dc6c5c28c45e9d602a2abd7f07db (commit)
       via  7e88a950d4fdbc2790e6164aa7d947b491419f21 (commit)
       via  ee69f7031612132f0b27fb9b05d24bc1201ead69 (commit)
       via  5185d344b45f34ced54cb15310acdb5a92103a74 (commit)
       via  4f8f78732e08abb8b83166fd7ffbf207e9466264 (commit)
       via  3b72eb3537eaaf360fdc85d6029c38935bbba5fc (commit)
       via  ae8829d306b3fc459e2d5f2cae4cef2e69c60eb7 (commit)
       via  7c098f97052780882fe4c08f48f83b47a1973d36 (commit)
       via  8b7cac2607bda6ace3444ff20917c6262395bd7a (commit)
       via  c164cb15f8435817784a71c45fbd7e6c6690d3cd (commit)
       via  4b8a53c9cfc81a942f985f1799dbc6e27deb3bc2 (commit)
       via  9878a4d9e0b535a13a323dfb8776866b542ece1a (commit)
       via  91cea2d82e477833d322b7267988c490ed284b62 (commit)
       via  5030cca0ec767bf6e1ba630f91938130731ed6cc (commit)
       via  1a3ec903e591304b72bd0d394219729ac76bfed0 (commit)
      from  c103381f05eac510ee3bc51ee001cda7ecb7687a (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 00949dacde511d4a3e077281b32e40e5b525c2b4
Author: Brett Smith <brett at curoverse.com>
Date:   Thu Jun 19 10:49:56 2014 -0400

    2879: Docker filters on Jobs accept an array of search terms.

diff --git a/services/api/app/controllers/arvados/v1/jobs_controller.rb b/services/api/app/controllers/arvados/v1/jobs_controller.rb
index 7ce5a62..d38f257 100644
--- a/services/api/app/controllers/arvados/v1/jobs_controller.rb
+++ b/services/api/app/controllers/arvados/v1/jobs_controller.rb
@@ -190,9 +190,11 @@ class Arvados::V1::JobsController < ApplicationController
         false
       when ["docker_image_locator", "in docker"], ["docker_image_locator", "not in docker"]
         filter[1].sub!(/ docker$/, '')
-        image_search, image_tag = filter[2].split(':', 2)
-        filter[2] = Collection.
-          uuids_for_docker_image(image_search, image_tag, @read_users)
+        search_list = filter[2].is_a?(Enumerable) ? filter[2] : [filter[2]]
+        filter[2] = search_list.flat_map do |search_term|
+          image_search, image_tag = search_term.split(':', 2)
+          Collection.uuids_for_docker_image(image_search, image_tag, @read_users)
+        end
         true
       else
         true
diff --git a/services/api/test/functional/arvados/v1/job_reuse_controller_test.rb b/services/api/test/functional/arvados/v1/job_reuse_controller_test.rb
index 6a3fbe4..b00fbf1 100644
--- a/services/api/test/functional/arvados/v1/job_reuse_controller_test.rb
+++ b/services/api/test/functional/arvados/v1/job_reuse_controller_test.rb
@@ -529,4 +529,26 @@ class Arvados::V1::JobReuseControllerTest < ActionController::TestCase
     refute_includes(assigns(:objects).map { |job| job.uuid },
                     jobs(:previous_job_run).uuid)
   end
+
+  test "'in docker' filter accepts arrays" do
+    get :index, filters: [["docker_image_locator", "in docker",
+                           ["_nonesuchname_", "arvados/apitestfixture"]]]
+    assert_response :success
+    assert_not_nil assigns(:objects)
+    assert_includes(assigns(:objects).map { |job| job.uuid },
+                    jobs(:previous_docker_job_run).uuid)
+    refute_includes(assigns(:objects).map { |job| job.uuid },
+                    jobs(:previous_job_run).uuid)
+  end
+
+  test "'not in docker' filter accepts arrays" do
+    get :index, filters: [["docker_image_locator", "not in docker",
+                           ["_nonesuchname_", "arvados/apitestfixture"]]]
+    assert_response :success
+    assert_not_nil assigns(:objects)
+    assert_includes(assigns(:objects).map { |job| job.uuid },
+                    jobs(:previous_job_run).uuid)
+    refute_includes(assigns(:objects).map { |job| job.uuid },
+                    jobs(:previous_docker_job_run).uuid)
+  end
 end

commit 71c66323a0ac9ce0cacf3ed3585a07562553096d
Author: Brett Smith <brett at curoverse.com>
Date:   Thu Jun 19 10:29:01 2014 -0400

    2879: Improve sorting in Collection.uuids_for_docker_image.
    
    This code is simpler, handles more error cases correctly, and returns
    the most recent image at the head of the list as expected.

diff --git a/services/api/app/controllers/arvados/v1/jobs_controller.rb b/services/api/app/controllers/arvados/v1/jobs_controller.rb
index 5b1fc9a..7ce5a62 100644
--- a/services/api/app/controllers/arvados/v1/jobs_controller.rb
+++ b/services/api/app/controllers/arvados/v1/jobs_controller.rb
@@ -41,7 +41,7 @@ class Arvados::V1::JobsController < ApplicationController
         if image_search = resource_attrs[:runtime_constraints].andand["docker_image"]
           image_tag = resource_attrs[:runtime_constraints]["docker_image_tag"]
           image_locator = Collection.
-            uuids_for_docker_image(image_search, image_tag, @read_users).last
+            uuids_for_docker_image(image_search, image_tag, @read_users).first
           return super if image_locator.nil?  # We won't find anything to reuse.
           @filters.append(["docker_image_locator", "=", image_locator])
         else
diff --git a/services/api/app/models/collection.rb b/services/api/app/models/collection.rb
index 2d573e5..24e4ccc 100644
--- a/services/api/app/models/collection.rb
+++ b/services/api/app/models/collection.rb
@@ -179,16 +179,13 @@ class Collection < ArvadosModel
     # Generate an order key for each result.  We want to order the results
     # so that anything with an image timestamp is considered more recent than
     # anything without; then we use the link's created_at as a tiebreaker.
-    results = {}
+    uuid_timestamps = {}
     matches.find_each do |link|
-      sort_key = []
-      if timestamp = link.properties["image_timestamp"]
-        sort_key.push("Z", timestamp.to_s)
-      end
-      sort_key.push("Y", link.created_at.to_s(:db))
-      results[link] = sort_key.join("")
+      uuid_timestamps[link.head_uuid] =
+        [(-link.properties["image_timestamp"].to_datetime.to_i rescue 0),
+         -link.created_at.to_i]
     end
-    results.keys.sort_by { |link| results[link] }.map { |link| link.head_uuid }
+    uuid_timestamps.keys.sort_by { |uuid| uuid_timestamps[uuid] }
   end
 
   def self.for_latest_docker_image(search_term, search_tag=nil, readers=nil)

commit 321fe76fa99e66566220bc2768928d705d46fda3
Author: Brett Smith <brett at curoverse.com>
Date:   Thu Jun 19 10:14:47 2014 -0400

    2879: API Docker link fixtures use string image_timestamps.
    
    This is closer to what we'll have in the real world.

diff --git a/services/api/test/fixtures/links.yml b/services/api/test/fixtures/links.yml
index ae2511b..b35e7d4 100644
--- a/services/api/test/fixtures/links.yml
+++ b/services/api/test/fixtures/links.yml
@@ -468,7 +468,7 @@ docker_image_collection_hash:
   tail_uuid: ~
   head_uuid: fa3c1a9cb6783f85f2ecda037e07b8c3+167
   properties:
-    image_timestamp: 2014-06-10T14:30:00.184019565Z
+    image_timestamp: "2014-06-10T14:30:00.184019565Z"
 
 docker_image_collection_repository:
   uuid: zzzzz-o0j2j-dockercollrepos
@@ -483,7 +483,7 @@ docker_image_collection_repository:
   tail_uuid: ~
   head_uuid: fa3c1a9cb6783f85f2ecda037e07b8c3+167
   properties:
-    image_timestamp: 2014-06-10T14:30:00.184019565Z
+    image_timestamp: "2014-06-10T14:30:00.184019565Z"
 
 docker_image_collection_tag:
   uuid: zzzzz-o0j2j-dockercolltagbb
@@ -498,7 +498,7 @@ docker_image_collection_tag:
   tail_uuid: ~
   head_uuid: fa3c1a9cb6783f85f2ecda037e07b8c3+167
   properties:
-    image_timestamp: 2014-06-10T14:30:00.184019565Z
+    image_timestamp: "2014-06-10T14:30:00.184019565Z"
 
 docker_image_collection_tag2:
   uuid: zzzzz-o0j2j-dockercolltagbc
@@ -513,7 +513,7 @@ docker_image_collection_tag2:
   tail_uuid: ~
   head_uuid: fa3c1a9cb6783f85f2ecda037e07b8c3+167
   properties:
-    image_timestamp: 2014-06-10T14:30:00.184019565Z
+    image_timestamp: "2014-06-10T14:30:00.184019565Z"
 
 ancient_docker_image_collection_hash:
   # This image helps test that searches for Docker images find
@@ -532,4 +532,4 @@ ancient_docker_image_collection_hash:
   tail_uuid: ~
   head_uuid: b519d9cb706a29fc7ea24dbea2f05851+249025
   properties:
-    image_timestamp: 2010-06-10T14:30:00.184019565Z
+    image_timestamp: "2010-06-10T14:30:00.184019565Z"

commit af50d257cdf95ee1433a5fdcdcb9598cd666ad8c
Merge: c103381 84eaf88
Author: Brett Smith <brett at curoverse.com>
Date:   Thu Jun 19 10:09:51 2014 -0400

    Merge branch 'master' into 2879-docker-image-job-reuse-wip


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


hooks/post-receive
-- 




More information about the arvados-commits mailing list