From 18ec57b109aa65921086335a06817e39508416a1 Mon Sep 17 00:00:00 2001 From: Tony Breeds Date: Thu, 11 Jan 2018 14:17:41 +1100 Subject: [PATCH] Always define properties for image even if empty This re-factor allows us to set default properties very simply. It does add empty properties on images that otherwise didn't have them but this should be safe[1] [1] famous last words Blueprint: multiarch-support Change-Id: I136ae6c59bb4a4b3e12eb6a96bfbce732554bb4c (cherry picked from commit 8d05757bcf70ded15dfa5dc073caaf0409a50383) --- .../v1/overcloud_image/test_overcloud_image.py | 12 ++++++++---- tripleoclient/v1/overcloud_image.py | 13 ++++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/tripleoclient/tests/v1/overcloud_image/test_overcloud_image.py b/tripleoclient/tests/v1/overcloud_image/test_overcloud_image.py index 12088c345..a30fa128c 100644 --- a/tripleoclient/tests/v1/overcloud_image/test_overcloud_image.py +++ b/tripleoclient/tests/v1/overcloud_image/test_overcloud_image.py @@ -282,11 +282,13 @@ class TestUploadOvercloudImage(TestPluginV1): self.app.client_manager.image.images.create.call_count ) self.assertEqual( - [mock.call(data=b'IMGDATA', + [mock.call(properties={}, + data=b'IMGDATA', name='overcloud-full-vmlinuz', disk_format='aki', is_public=True), - mock.call(data=b'IMGDATA', + mock.call(properties={}, + data=b'IMGDATA', name='overcloud-full-initrd', disk_format='ari', is_public=True), @@ -296,11 +298,13 @@ class TestUploadOvercloudImage(TestPluginV1): container_format='bare', disk_format='qcow2', is_public=True), - mock.call(data=b'IMGDATA', + mock.call(properties={}, + data=b'IMGDATA', name='bm-deploy-kernel', disk_format='aki', is_public=True), - mock.call(data=b'IMGDATA', + mock.call(properties={}, + data=b'IMGDATA', name='bm-deploy-ramdisk', disk_format='ari', is_public=True) diff --git a/tripleoclient/v1/overcloud_image.py b/tripleoclient/v1/overcloud_image.py index 55962cb68..397c4f606 100644 --- a/tripleoclient/v1/overcloud_image.py +++ b/tripleoclient/v1/overcloud_image.py @@ -307,6 +307,8 @@ class UploadOvercloudImage(command.Command): self.log.debug("uploading %s overcloud images to glance" % overcloud_image_type) + properties = {} + # vmlinuz and initrd only need to be uploaded for a partition image if not parsed_args.whole_disk: (oc_vmlinuz_name, @@ -321,6 +323,7 @@ class UploadOvercloudImage(command.Command): name=oc_vmlinuz_name, is_public=True, disk_format='aki', + properties=properties, data=self._read_image_file_pointer( parsed_args.image_path, oc_vmlinuz_file) )) @@ -337,6 +340,7 @@ class UploadOvercloudImage(command.Command): name=oc_initrd_name, is_public=True, disk_format='ari', + properties=properties, data=self._read_image_file_pointer( parsed_args.image_path, oc_initrd_file) )) @@ -353,8 +357,9 @@ class UploadOvercloudImage(command.Command): is_public=True, disk_format='qcow2', container_format='bare', - properties={'kernel_id': kernel.id, - 'ramdisk_id': ramdisk.id}, + properties=dict({'kernel_id': kernel.id, + 'ramdisk_id': ramdisk.id}, + **properties), data=self._read_image_file_pointer( parsed_args.image_path, oc_file) )) @@ -382,7 +387,7 @@ class UploadOvercloudImage(command.Command): is_public=True, disk_format='qcow2', container_format='bare', - properties={}, + properties=properties, data=self._read_image_file_pointer( parsed_args.image_path, oc_file) )) @@ -400,6 +405,7 @@ class UploadOvercloudImage(command.Command): name=deploy_kernel_name, is_public=True, disk_format='aki', + properties=properties, data=self._read_image_file_pointer( parsed_args.image_path, deploy_kernel_file)) @@ -415,6 +421,7 @@ class UploadOvercloudImage(command.Command): name=deploy_ramdisk_name, is_public=True, disk_format='ari', + properties=properties, data=self._read_image_file_pointer(parsed_args.image_path, deploy_ramdisk_file))