diff --git a/api-ref/source/v2/images-images-v2.inc b/api-ref/source/v2/images-images-v2.inc index 14db8657a0..f6a012e1b1 100644 --- a/api-ref/source/v2/images-images-v2.inc +++ b/api-ref/source/v2/images-images-v2.inc @@ -82,6 +82,14 @@ The possible status values for images are presented in the following table. recoverable. * - deactivated - The image data is not available for use. + * - uploading + - Data has been staged as part of the interoperable image import process. + It is not yet available for use. + *(Since Image API 2.6)* + * - importing + - The image data is being processed as part of the interoperable image + import process, but is not yet available for use. + *(Since Image API 2.6)* **Image visibility** diff --git a/api-ref/source/v2/samples/schemas-image-show-response.json b/api-ref/source/v2/samples/schemas-image-show-response.json index e06f367810..329ccb9a80 100644 --- a/api-ref/source/v2/samples/schemas-image-show-response.json +++ b/api-ref/source/v2/samples/schemas-image-show-response.json @@ -198,7 +198,9 @@ "killed", "deleted", "pending_delete", - "deactivated" + "deactivated", + "uploading", + "importing" ], "readOnly": true, "type": "string" diff --git a/api-ref/source/v2/samples/schemas-images-list-response.json b/api-ref/source/v2/samples/schemas-images-list-response.json index 443fb45710..47992fdbe0 100644 --- a/api-ref/source/v2/samples/schemas-images-list-response.json +++ b/api-ref/source/v2/samples/schemas-images-list-response.json @@ -219,7 +219,9 @@ "killed", "deleted", "pending_delete", - "deactivated" + "deactivated", + "uploading", + "importing" ], "readOnly": true, "type": "string" diff --git a/glance/api/v2/images.py b/glance/api/v2/images.py index 8f8dea8131..59eb317cee 100644 --- a/glance/api/v2/images.py +++ b/glance/api/v2/images.py @@ -968,7 +968,8 @@ def get_base_properties(): 'readOnly': True, 'description': _('Status of the image'), 'enum': ['queued', 'saving', 'active', 'killed', - 'deleted', 'pending_delete', 'deactivated'], + 'deleted', 'uploading', 'importing', + 'pending_delete', 'deactivated'], }, 'visibility': { 'type': 'string', diff --git a/glance/tests/unit/v2/test_schemas_resource.py b/glance/tests/unit/v2/test_schemas_resource.py index 36046f9960..55cf66fc3b 100644 --- a/glance/tests/unit/v2/test_schemas_resource.py +++ b/glance/tests/unit/v2/test_schemas_resource.py @@ -14,6 +14,7 @@ # under the License. import glance.api.v2.schemas +import glance.db.sqlalchemy.api as db_api import glance.tests.unit.utils as unit_test_utils import glance.tests.utils as test_utils @@ -35,6 +36,14 @@ class TestSchemasController(test_utils.BaseTestCase): 'locations', 'owner', 'virtual_size']) self.assertEqual(expected, set(output['properties'].keys())) + def test_image_has_correct_statuses(self): + req = unit_test_utils.get_fake_request() + output = self.controller.image(req) + self.assertEqual('image', output['name']) + expected_statuses = set(db_api.STATUSES) + actual_statuses = set(output['properties']['status']['enum']) + self.assertEqual(expected_statuses, actual_statuses) + def test_images(self): req = unit_test_utils.get_fake_request() output = self.controller.images(req)