[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