From acfb6c884c5702a49dff56bf9e45756c06c89806 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Mon, 9 Dec 2013 12:45:00 -0800 Subject: [PATCH] Fail gracefully when fetching a raw block that does not exist --- sdk/cli/bin/arv-get | 12 ++++++++---- sdk/cli/test/test_arv-get.rb | 8 ++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/sdk/cli/bin/arv-get b/sdk/cli/bin/arv-get index 10c05cc671..e994ef9a2f 100755 --- a/sdk/cli/bin/arv-get +++ b/sdk/cli/bin/arv-get @@ -95,10 +95,14 @@ if args.r and not get_prefix: todo = [] todo_bytes = 0 if not get_prefix: - if not args.n: - with open(args.destination, 'wb') as f: - f.write(arvados.Keep.get(collection)) - sys.exit(0) + try: + if not args.n: + with open(args.destination, 'wb') as f: + f.write(arvados.Keep.get(collection)) + sys.exit(0) + except arvados.errors.NotFoundError as e: + logger.error(e) + sys.exit(1) reader = arvados.CollectionReader(collection) diff --git a/sdk/cli/test/test_arv-get.rb b/sdk/cli/test/test_arv-get.rb index 52a9cd1552..c5519a9064 100644 --- a/sdk/cli/test/test_arv-get.rb +++ b/sdk/cli/test/test_arv-get.rb @@ -75,6 +75,14 @@ class TestArvGet < Minitest::Test assert_match /^usage:/, err end + def test_nonexistent_block + out, err = capture_subprocess_io do + assert_arv_get false, 'f1554a91e925d6213ce7c3103c5110c6' + end + assert_equal '', out + assert_match /^ERROR:/, err + end + def test_nonexistent_manifest out, err = capture_subprocess_io do assert_arv_get false, 'f1554a91e925d6213ce7c3103c5110c6/', 'tmp/' -- 2.39.5