Merge "Update datastore version name"
This commit is contained in:
commit
15d9236a43
|
@ -997,6 +997,7 @@ mgmt_datastore_version = {
|
|||
"image_tags": image_tags,
|
||||
"active": {"enum": [True, False]},
|
||||
"default": {"enum": [True, False]},
|
||||
"name": non_empty_string
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -588,7 +588,7 @@ def update_datastore(name, default_version):
|
|||
|
||||
|
||||
def update_datastore_version(datastore, name, manager, image_id, image_tags,
|
||||
packages, active, version=None):
|
||||
packages, active, version=None, new_name=None):
|
||||
"""Create or update datastore version."""
|
||||
version = version or name
|
||||
db_api.configure_db(CONF)
|
||||
|
@ -601,9 +601,9 @@ def update_datastore_version(datastore, name, manager, image_id, image_tags,
|
|||
# Create a new one
|
||||
ds_version = DBDatastoreVersion()
|
||||
ds_version.id = utils.generate_uuid()
|
||||
ds_version.name = name
|
||||
ds_version.version = version
|
||||
ds_version.datastore_id = datastore.id
|
||||
ds_version.name = new_name or name
|
||||
ds_version.manager = manager
|
||||
ds_version.image_id = image_id
|
||||
ds_version.image_tags = (",".join(image_tags)
|
||||
|
|
|
@ -115,10 +115,11 @@ class DatastoreVersionController(wsgi.Controller):
|
|||
datastore_version = models.DatastoreVersion.load_by_uuid(id)
|
||||
|
||||
LOG.info("Tenant: '%(tenant)s' is updating the datastore "
|
||||
"version: '%(version)s' for datastore: '%(datastore)s'",
|
||||
{'tenant': tenant_id, 'version': datastore_version.name,
|
||||
"version: '%(id)s' for datastore: '%(datastore)s'",
|
||||
{'tenant': tenant_id, 'id': id,
|
||||
'datastore': datastore_version.datastore_name})
|
||||
|
||||
name = body.get('name', datastore_version.name)
|
||||
manager = body.get('datastore_manager', datastore_version.manager)
|
||||
image_id = body.get('image')
|
||||
image_tags = body.get('image_tags')
|
||||
|
@ -149,7 +150,9 @@ class DatastoreVersionController(wsgi.Controller):
|
|||
models.update_datastore_version(datastore_version.datastore_name,
|
||||
datastore_version.name,
|
||||
manager, image_id, image_tags,
|
||||
packages, active)
|
||||
packages, active,
|
||||
version=datastore_version.version,
|
||||
new_name=name)
|
||||
|
||||
if default:
|
||||
models.update_datastore(datastore_version.datastore_name,
|
||||
|
|
|
@ -254,6 +254,26 @@ class TestDatastoreVersionController(trove_testtools.TestCase):
|
|||
exception.ImageNotFound,
|
||||
self.version_controller.create, MagicMock(), body, mock.ANY)
|
||||
|
||||
def test_update_name(self):
|
||||
new_name = self.random_name('ds-version-name')
|
||||
body = {
|
||||
"name": new_name
|
||||
}
|
||||
|
||||
orig_ver = models.DatastoreVersion.load(self.ds, self.ds_version1.id)
|
||||
|
||||
output = self.version_controller.edit(MagicMock(), body, mock.ANY,
|
||||
self.ds_version1.id)
|
||||
self.assertEqual(202, output.status)
|
||||
|
||||
updated_ver = models.DatastoreVersion.load(self.ds,
|
||||
self.ds_version1.id)
|
||||
|
||||
self.assertEqual(new_name, updated_ver.name)
|
||||
self.assertEqual(orig_ver.image_id, updated_ver.image_id)
|
||||
self.assertEqual(orig_ver.image_tags, updated_ver.image_tags)
|
||||
self.assertEqual(orig_ver.version, updated_ver.version)
|
||||
|
||||
@patch.object(clients, 'create_glance_client')
|
||||
def test_update_image(self, mock_create_client):
|
||||
new_image = self.random_uuid()
|
||||
|
|
Loading…
Reference in New Issue