Label temporary files created by image_utils

These files can be rather large at times, prefix
them with identifiers so that when troubleshooting
Cinder, it is possible to identify what is
consuming disk space.

Closes-Bug: #1911766
Change-Id: I660ed16a36ad9415a5de757b32a6770e27b1294c
(cherry picked from commit 3ce9d773aa)
(cherry picked from commit d94f8032b3)
(cherry picked from commit dc8a1beabf)
This commit is contained in:
Eric Harney 2021-01-14 15:22:55 +00:00
parent a75f8633b4
commit c35c9f8141
2 changed files with 28 additions and 15 deletions

View File

@ -576,7 +576,7 @@ def fetch_to_volume_format(context, image_service,
# large and cause disk full errors which would confuse users.
# Unfortunately it seems that you can't pipe to 'qemu-img convert' because
# it seeks. Maybe we can think of something for a future version.
with temporary_file() as tmp:
with temporary_file(prefix='image_download_%s_' % image_id) as tmp:
has_meta = False if not image_meta else True
try:
format_raw = True if image_meta['disk_format'] == 'raw' else False
@ -687,7 +687,7 @@ def upload_volume(context, image_service, image_meta, volume_path,
tpool.Proxy(image_file))
return
with temporary_file() as tmp:
with temporary_file(prefix='vol_upload_') as tmp:
LOG.debug("%s was %s, converting to %s",
image_id, volume_format, image_meta['disk_format'])
@ -919,7 +919,8 @@ class TemporaryImages(object):
@contextlib.contextmanager
def fetch(cls, image_service, context, image_id, suffix=''):
tmp_images = cls.for_image_service(image_service).temporary_images
with temporary_file(suffix=suffix) as tmp:
with temporary_file(prefix='image_fetch_%s_' % image_id,
suffix=suffix) as tmp:
fetch_verify_image(context, image_service, image_id, tmp)
user = context.user_id
if not tmp_images.get(user):

View File

@ -1111,7 +1111,8 @@ class TestFetchToVolumeFormat(test.TestCase):
volume_format, blocksize)
self.assertIsNone(output)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=True),
mock.call(tmp, run_as_root=True)])
@ -1163,7 +1164,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
self.assertIsNone(output)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=run_as_root),
mock.call(tmp, run_as_root=run_as_root)])
@ -1219,7 +1221,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
self.assertIsNone(output)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=run_as_root),
mock.call(tmp, run_as_root=run_as_root)])
@ -1271,7 +1274,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
self.assertIsNone(output)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=run_as_root),
mock.call(tmp, run_as_root=run_as_root)])
@ -1375,7 +1379,8 @@ class TestFetchToVolumeFormat(test.TestCase):
self.assertIsNone(output)
image_service.show.assert_called_once_with(ctxt, image_id)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_called_once_with(tmp,
force_share=False,
run_as_root=run_as_root)
@ -1422,7 +1427,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
image_service.show.assert_called_once_with(ctxt, image_id)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_called_once_with(tmp,
force_share=False,
run_as_root=run_as_root)
@ -1467,7 +1473,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
image_service.show.assert_called_once_with(ctxt, image_id)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_called_once_with(tmp,
force_share=False,
run_as_root=run_as_root)
@ -1518,7 +1525,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
image_service.show.assert_called_once_with(ctxt, image_id)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=run_as_root),
mock.call(tmp, run_as_root=run_as_root)])
@ -1566,7 +1574,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
image_service.show.assert_called_once_with(ctxt, image_id)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=run_as_root),
mock.call(tmp, run_as_root=run_as_root)])
@ -1614,7 +1623,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
image_service.show.assert_called_once_with(ctxt, image_id)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=run_as_root),
mock.call(tmp, run_as_root=run_as_root)])
@ -1663,7 +1673,8 @@ class TestFetchToVolumeFormat(test.TestCase):
run_as_root=run_as_root)
self.assertIsNone(output)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=run_as_root),
mock.call(tmp, run_as_root=run_as_root)])
@ -1821,7 +1832,8 @@ class TestFetchToVolumeFormat(test.TestCase):
volume_format, blocksize)
self.assertIsNone(output)
mock_temp.assert_called_once_with()
mock_temp.assert_called_once_with(prefix='image_download_%s_' %
image_id)
mock_info.assert_has_calls([
mock.call(tmp, force_share=False, run_as_root=True),
mock.call(tmp, run_as_root=True)])