diff --git a/glance/async/flows/base_import.py b/glance/async/flows/base_import.py index 487247cf6d..7656bdec43 100644 --- a/glance/async/flows/base_import.py +++ b/glance/async/flows/base_import.py @@ -283,6 +283,10 @@ class _ImportToStore(task.Task): image_import.set_image_data(image, file_path or self.uri, None) + # NOTE(flaper87): We need to save the image again after the locations + # have been set in the image. + self.image_repo.save(image) + class _SaveImage(task.Task): diff --git a/glance/tests/unit/async/flows/test_import.py b/glance/tests/unit/async/flows/test_import.py index 0f355bcb70..7acd599d4d 100644 --- a/glance/tests/unit/async/flows/test_import.py +++ b/glance/tests/unit/async/flows/test_import.py @@ -112,6 +112,10 @@ class TestImportTask(test_utils.BaseTestCase): "%s.tasks_import" % image_path) self.assertFalse(os.path.exists(tmp_image_path)) self.assertTrue(os.path.exists(image_path)) + self.assertEqual(1, len(list(self.image.locations))) + self.assertEqual("file://%s/%s" % (self.test_dir, + self.image.image_id), + self.image.locations[0]['url']) def test_import_flow_missing_work_dir(self): self.config(engine_mode='serial', group='taskflow_executor')