9773: Use script_parameters_digest in reusable job query.
authorTom Clegg <tom@curoverse.com>
Fri, 19 Aug 2016 21:03:24 +0000 (17:03 -0400)
committerTom Clegg <tom@curoverse.com>
Mon, 22 Aug 2016 20:27:34 +0000 (16:27 -0400)
services/api/app/controllers/arvados/v1/jobs_controller.rb
services/api/test/functional/arvados/v1/job_reuse_controller_test.rb

index 0478f69f9e0d220c0e3583de43fb916374d5f6b0..cadc824a1e12a1da6b1d7d337e9d29fcc6cc6e81 100644 (file)
@@ -77,7 +77,7 @@ class Arvados::V1::JobsController < ApplicationController
       readable_by(current_user).
       where('state = ? or (owner_uuid = ? and state in (?))',
             Job::Complete, current_user.uuid, [Job::Queued, Job::Running]).
-      where('script_parameters = ?', resource_attrs[:script_parameters].to_yaml).
+      where('script_parameters_digest = ?', Job.sorted_hash_digest(resource_attrs[:script_parameters])).
       where('nondeterministic is distinct from ?', true).
       order('state desc, created_at') # prefer Running jobs over Queued
     apply_filters
index 64d559107c19257ca7a954d323f42cba60c7a9c2..ab79d7bf80d2ac47bf6f94ef39d875a043ee7356 100644 (file)
@@ -19,8 +19,8 @@ class Arvados::V1::JobReuseControllerTest < ActionController::TestCase
       script_version: "4fe459abe02d9b365932b8f5dc419439ab4e2577",
       repository: "active/foo",
       script_parameters: {
-        input: 'fa7aeb5140e2848d39b416daeef4ffc5+45',
-        an_integer: '1'
+        an_integer: '1',
+        input: 'fa7aeb5140e2848d39b416daeef4ffc5+45'
       }
     }
     assert_response :success