[ARVADOS] updated: 1.3.0-428-g6a2401801

Git user git at public.curoverse.com
Mon Mar 4 15:09:08 EST 2019


Summary of changes:
 services/api/app/models/container_request.rb     |  6 +--
 services/api/test/unit/container_request_test.rb | 56 ++++++++++++++++++++----
 2 files changed, 51 insertions(+), 11 deletions(-)

       via  6a240180171525077bc9e64e903b0122d5d5f1b4 (commit)
      from  18239026d35e377e01ad852be8e67e5328f069e5 (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 6a240180171525077bc9e64e903b0122d5d5f1b4
Author: Peter Amstutz <pamstutz at veritasgenetics.com>
Date:   Mon Mar 4 15:08:27 2019 -0500

    14870: Add tests
    
    Arvados-DCO-1.1-Signed-off-by: Peter Amstutz <pamstutz at veritasgenetics.com>

diff --git a/services/api/app/models/container_request.rb b/services/api/app/models/container_request.rb
index be4d3cc8e..921d4bee6 100644
--- a/services/api/app/models/container_request.rb
+++ b/services/api/app/models/container_request.rb
@@ -166,7 +166,7 @@ class ContainerRequest < ArvadosModel
         src = Arv::Collection.new(manifest)
         dst = Arv::Collection.new(coll.manifest_text)
         dst.cp_r("./", ".", src)
-        dst.cp_r("./", "container #{container.uuid}", src)
+        dst.cp_r("./", "log for container #{container.uuid}", src)
         manifest = dst.manifest_text
       end
 
@@ -218,7 +218,7 @@ class ContainerRequest < ArvadosModel
           old_container = Container.find_by_uuid(self.container_uuid_was)
           old_logs = Collection.where(portable_data_hash: old_container.log).first
           if old_logs
-            log_coll = coll_uuid.nil? ? nil : Collection.where(uuid: coll_uuid).first
+            log_coll = self.log_uuid.nil? ? nil : Collection.where(uuid: self.log_uuid).first
             if self.log_uuid.nil?
               log_coll = Collection.new(
                 owner_uuid: self.owner_uuid,
@@ -229,7 +229,7 @@ class ContainerRequest < ArvadosModel
             # copy logs from old container into CR's log collection
             src = Arv::Collection.new(old_logs.manifest_text)
             dst = Arv::Collection.new(log_coll.manifest_text)
-            dst.cp_r("./", "container #{container.uuid}", src)
+            dst.cp_r("./", "log for container #{old_container.uuid}", src)
             manifest = dst.manifest_text
 
             log_coll.assign_attributes(
diff --git a/services/api/test/unit/container_request_test.rb b/services/api/test/unit/container_request_test.rb
index 86f05d301..5c4a56c2c 100644
--- a/services/api/test/unit/container_request_test.rb
+++ b/services/api/test/unit/container_request_test.rb
@@ -5,6 +5,7 @@
 require 'test_helper'
 require 'helpers/container_test_helper'
 require 'helpers/docker_migration_helper'
+require 'arvados/collection'
 
 class ContainerRequestTest < ActiveSupport::TestCase
   include DockerMigrationHelper
@@ -245,19 +246,18 @@ class ContainerRequestTest < ActiveSupport::TestCase
     cr.reload
     assert_equal "Final", cr.state
     assert_equal users(:active).uuid, cr.modified_by_user_uuid
-    puts "CR #{Collection.find_by_uuid(cr.log_uuid).manifest_text}"
-    ['output', 'log'].each do |out_type|
-      pdh = Container.find_by_uuid(cr.container_uuid).send(out_type)
-      assert_equal(1, Collection.where(portable_data_hash: pdh,
-                                       owner_uuid: project.uuid).count,
-                   "Container #{out_type} should be copied to #{project.uuid}")
-    end
+
     assert_not_nil cr.output_uuid
     assert_not_nil cr.log_uuid
     output = Collection.find_by_uuid cr.output_uuid
     assert_equal output_pdh, output.portable_data_hash
+    assert_equal output.owner_uuid, project.uuid, "Container output should be copied to #{project.uuid}"
+
     log = Collection.find_by_uuid cr.log_uuid
-    assert_equal log_pdh, log.portable_data_hash
+    assert_equal log.manifest_text, ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar
+./log\\040for\\040container\\040#{cr.container_uuid} 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n"
+
+    assert_equal log.owner_uuid, project.uuid, "Container log should be copied to #{project.uuid}"
   end
 
   test "Container makes container request, then is cancelled" do
@@ -744,6 +744,46 @@ class ContainerRequestTest < ActiveSupport::TestCase
     cr.reload
     assert_equal "Final", cr.state
     assert_equal prev_container_uuid, cr.container_uuid
+  end
+
+
+  test "Retry saves logs from previous attempts" do
+    set_user_from_auth :active
+    cr = create_minimal_req!(priority: 1, state: "Committed", container_count_max: 3)
+
+    c = act_as_system_user do
+      c = Container.find_by_uuid(cr.container_uuid)
+      c.update_attributes!(state: Container::Locked)
+      c.update_attributes!(state: Container::Running)
+      c
+    end
+
+    container_uuids = []
+
+    [0, 1, 2].each do
+      cr.reload
+      assert_equal "Committed", cr.state
+      container_uuids << cr.container_uuid
+
+      c = act_as_system_user do
+        logc = Collection.new(manifest_text: ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar\n")
+        logc.save!
+        c = Container.find_by_uuid(cr.container_uuid)
+        c.update_attributes!(state: Container::Cancelled, log: logc.portable_data_hash)
+        c
+      end
+    end
+
+    container_uuids.sort!
+
+    cr.reload
+    assert_equal "Final", cr.state
+    assert_equal 3, cr.container_count
+    assert_equal ". 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar
+./log\\040for\\040container\\040#{container_uuids[0]} 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar
+./log\\040for\\040container\\040#{container_uuids[1]} 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar
+./log\\040for\\040container\\040#{container_uuids[2]} 37b51d194a7513e45b56f6524f2d51f2+3 0:3:bar
+" , Collection.find_by_uuid(cr.log_uuid).manifest_text
 
   end
 

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


hooks/post-receive
-- 




More information about the arvados-commits mailing list