diff options
-rw-r--r-- | oslo_vmware/image_transfer.py | 4 | ||||
-rw-r--r-- | oslo_vmware/service.py | 9 | ||||
-rw-r--r-- | oslo_vmware/tests/test_image_transfer.py | 16 | ||||
-rw-r--r-- | oslo_vmware/tests/test_service.py | 8 | ||||
-rw-r--r-- | tox.ini | 2 |
5 files changed, 22 insertions, 17 deletions
diff --git a/oslo_vmware/image_transfer.py b/oslo_vmware/image_transfer.py index 8af12ee..6f41b06 100644 --- a/oslo_vmware/image_transfer.py +++ b/oslo_vmware/image_transfer.py @@ -338,10 +338,12 @@ def upload_image(context, timeout_secs, image_service, image_id, owner_id, updater = loopingcall.FixedIntervalLoopingCall(read_handle.update_progress) store_id = kwargs.get('store_id') + base_image_ref = kwargs.get('base_image_ref') try: updater.start(interval=NFC_LEASE_UPDATE_PERIOD) image_service.update(context, image_id, image_metadata, - data=read_handle, store_id=store_id) + data=read_handle, store_id=store_id, + base_image_ref=base_image_ref) finally: updater.stop() read_handle.close() diff --git a/oslo_vmware/service.py b/oslo_vmware/service.py index a1551e5..7fba28b 100644 --- a/oslo_vmware/service.py +++ b/oslo_vmware/service.py @@ -1,4 +1,4 @@ -# Copyright (c) 2014 VMware, Inc. +# Copyright (c) 2014-2020 VMware, Inc. # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -20,7 +20,6 @@ Common classes that provide access to vSphere services. import http.client as httplib import io import logging -import os import netaddr from oslo_utils import timeutils @@ -144,9 +143,9 @@ class LocalFileAdapter(requests.adapters.HTTPAdapter): def _build_response_from_file(self, request): file_path = request.url[7:] - with open(file_path, 'r') as f: - buff = bytearray(os.path.getsize(file_path)) - f.readinto(buff) + with open(file_path, 'rb') as f: + file_content = f.read() + buff = bytearray(file_content.decode(), "utf-8") resp = Response(buff) return self.build_response(request, resp) diff --git a/oslo_vmware/tests/test_image_transfer.py b/oslo_vmware/tests/test_image_transfer.py index 8289a68..f1ad58b 100644 --- a/oslo_vmware/tests/test_image_transfer.py +++ b/oslo_vmware/tests/test_image_transfer.py @@ -374,6 +374,7 @@ class ImageTransferUtilityTest(base.TestCase): image_name = 'fake_image' image_version = 1 store_id = 'fake_store' + base_image_ref = 'e79161cd-5f9d-4007-8823-81a807a64332' fake_VmdkReadHandle = mock.Mock() fake_rw_handles_VmdkReadHandle.return_value = fake_VmdkReadHandle @@ -392,7 +393,8 @@ class ImageTransferUtilityTest(base.TestCase): is_public=is_public, image_name=image_name, image_version=image_version, - store_id=store_id) + store_id=store_id, + base_image_ref=base_image_ref) fake_rw_handles_VmdkReadHandle.assert_called_once_with(session, host, @@ -408,8 +410,10 @@ class ImageTransferUtilityTest(base.TestCase): 'vmware_disktype': 'streamOptimized', 'owner_id': owner_id}} - image_service.update.assert_called_once_with(context, - image_id, - image_metadata, - data=fake_VmdkReadHandle, - store_id=store_id) + image_service.update.assert_called_once_with( + context, + image_id, + image_metadata, + data=fake_VmdkReadHandle, + store_id=store_id, + base_image_ref=base_image_ref) diff --git a/oslo_vmware/tests/test_service.py b/oslo_vmware/tests/test_service.py index 9bc24f4..2065454 100644 --- a/oslo_vmware/tests/test_service.py +++ b/oslo_vmware/tests/test_service.py @@ -1,4 +1,4 @@ -# Copyright (c) 2014 VMware, Inc. +# Copyright (c) 2014-2020 VMware, Inc. # All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); you may @@ -499,8 +499,8 @@ class RequestsTransportTest(base.TestCase): data = b"Hello World" get_size_mock.return_value = len(data) - def readinto_mock(buf): - buf[0:] = data + def read_mock(): + return data builtin_open = 'builtins.open' open_mock = mock.MagicMock(name='file_handle', @@ -511,7 +511,7 @@ class RequestsTransportTest(base.TestCase): file_handle = mock.MagicMock(spec=file_spec) file_handle.write.return_value = None file_handle.__enter__.return_value = file_handle - file_handle.readinto.side_effect = readinto_mock + file_handle.read.side_effect = read_mock open_mock.return_value = file_handle with mock.patch(builtin_open, open_mock, create=True): @@ -1,5 +1,5 @@ [tox] -minversion = 3.1.1 +minversion = 3.2.0 envlist = py37,pep8 ignore_basepython_conflict = true |