summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--oslo_vmware/image_transfer.py4
-rw-r--r--oslo_vmware/service.py9
-rw-r--r--oslo_vmware/tests/test_image_transfer.py16
-rw-r--r--oslo_vmware/tests/test_service.py8
-rw-r--r--tox.ini2
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):
diff --git a/tox.ini b/tox.ini
index f8acf63..b13d3f8 100644
--- a/tox.ini
+++ b/tox.ini
@@ -1,5 +1,5 @@
[tox]
-minversion = 3.1.1
+minversion = 3.2.0
envlist = py37,pep8
ignore_basepython_conflict = true