Merge "Fix the download error when the image locations are blank"
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
# under the License.
|
||||
|
||||
import errno
|
||||
|
||||
import mock
|
||||
import testtools
|
||||
|
||||
from glanceclient import exc
|
||||
@@ -866,6 +866,12 @@ class TestController(testtools.TestCase):
|
||||
body = ''.join([b for b in body])
|
||||
self.assertEqual('CCC', body)
|
||||
|
||||
def test_download_no_data(self):
|
||||
resp = utils.FakeResponse(headers={}, status_code=204)
|
||||
self.controller.http_client.get = mock.Mock(return_value=(resp, None))
|
||||
body = self.controller.data('image_id')
|
||||
self.assertEqual(None, body)
|
||||
|
||||
def test_update_replace_prop(self):
|
||||
image_id = '3a4560a1-e585-443e-9b39-553b46ec92d1'
|
||||
params = {'name': 'pong'}
|
||||
|
@@ -14,8 +14,8 @@
|
||||
# under the License.
|
||||
|
||||
import json
|
||||
|
||||
from oslo_utils import encodeutils
|
||||
from requests import codes
|
||||
import six
|
||||
from six.moves.urllib import parse
|
||||
import warlock
|
||||
@@ -189,9 +189,13 @@ class Controller(object):
|
||||
|
||||
:param image_id: ID of the image to download.
|
||||
:param do_checksum: Enable/disable checksum validation.
|
||||
:returns: An interable body or None
|
||||
"""
|
||||
url = '/v2/images/%s/file' % image_id
|
||||
resp, body = self.http_client.get(url)
|
||||
if resp.status_code == codes.no_content:
|
||||
return None
|
||||
|
||||
checksum = resp.headers.get('content-md5', None)
|
||||
content_length = int(resp.headers.get('content-length', 0))
|
||||
|
||||
|
@@ -276,6 +276,10 @@ def do_explain(gc, args):
|
||||
def do_image_download(gc, args):
|
||||
"""Download a specific image."""
|
||||
body = gc.images.data(args.id)
|
||||
if body is None:
|
||||
msg = ('Image %s has no data.' % args.id)
|
||||
utils.exit(msg)
|
||||
|
||||
if args.progress:
|
||||
body = progressbar.VerboseIteratorWrapper(body, len(body))
|
||||
if not (sys.stdout.isatty() and args.file is None):
|
||||
|
Reference in New Issue
Block a user