12298: Allow non-null log when cancelling an unrunnable container.
authorTom Clegg <tclegg@veritasgenetics.com>
Wed, 20 Sep 2017 21:44:22 +0000 (17:44 -0400)
committerWard Vandewege <wvandewege@veritasgenetics.com>
Tue, 26 Sep 2017 02:11:18 +0000 (22:11 -0400)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

services/api/app/models/container.rb
services/api/test/unit/container_test.rb

index 36c87af2ec154269e0d8f52492684d71b64f8dab..e95c1e8289e858aefca325c7dd0c273e00e0f628 100644 (file)
@@ -389,7 +389,7 @@ class Container < ArvadosModel
       when Running
         permitted.push :finished_at, :output, :log
       when Queued, Locked
-        permitted.push :finished_at
+        permitted.push :finished_at, :log
       end
 
     else
index 0f3dab59aeb1e0ec99c0260f5d740d224f0d0d2f..0b75974a6225fb1cab90f8a8ae77ea86fe9b3fbe 100644 (file)
@@ -451,6 +451,17 @@ class ContainerTest < ActiveSupport::TestCase
     check_no_change_from_cancelled c
   end
 
+  test "Container locked cancel with log" do
+    c, _ = minimal_new
+    set_user_from_auth :dispatch1
+    assert c.lock, show_errors(c)
+    assert c.update_attributes(
+             state: Container::Cancelled,
+             log: collections(:real_log_collection).portable_data_hash,
+           ), show_errors(c)
+    check_no_change_from_cancelled c
+  end
+
   test "Container running cancel" do
     c, _ = minimal_new
     set_user_from_auth :dispatch1