Corrected error message for unsupported datastore flavors

1. Passing correct variables on raise exception
2. Updated the error message

Change-Id: Ia1a302b30b1d7a269d96c41680964404128cfdc3
Closes-Bug: #1496846
This commit is contained in:
Saurabh Surana 2015-09-21 14:32:09 -07:00
parent 87753afeb2
commit 3be5ff599e
4 changed files with 33 additions and 17 deletions

View File

@ -121,14 +121,14 @@ class DatastoresNotFound(NotFound):
class DatastoreFlavorAssociationNotFound(NotFound): class DatastoreFlavorAssociationNotFound(NotFound):
message = _("Datastore '%(datastore)s' version id %(version_id)s " message = _("Flavor %(flavor_id)s is not supported for datastore "
"and flavor %(flavor_id)s mapping not found.") "%(datastore)s version %(datastore_version)s")
class DatastoreFlavorAssociationAlreadyExists(TroveError): class DatastoreFlavorAssociationAlreadyExists(TroveError):
message = _("Datastore '%(datastore)s' version %(datastore_version)s " message = _("Flavor %(flavor_id)s is already associated with "
"and flavor %(flavor_id)s mapping already exists.") "datastore %(datastore)s version %(datastore_version)s")
class DatastoreNoVersion(TroveError): class DatastoreNoVersion(TroveError):

View File

@ -549,7 +549,9 @@ def update_datastore_version(datastore, name, manager, image_id, packages,
class DatastoreVersionMetadata(object): class DatastoreVersionMetadata(object):
@classmethod @classmethod
def _datastore_version_metadata_add(cls, datastore_version_id, def _datastore_version_metadata_add(cls, datastore_name,
datastore_version_name,
datastore_version_id,
key, value, exception_class): key, value, exception_class):
"""Create an entry in the Datastore Version Metadata table.""" """Create an entry in the Datastore Version Metadata table."""
# Do we have a mapping in the db? # Do we have a mapping in the db?
@ -567,7 +569,8 @@ class DatastoreVersionMetadata(object):
return return
else: else:
raise exception_class( raise exception_class(
datastore_version_id=datastore_version_id, datastore=datastore_name,
datastore_version=datastore_version_name,
flavor_id=value) flavor_id=value)
except exception.NotFound: except exception.NotFound:
pass pass
@ -576,7 +579,9 @@ class DatastoreVersionMetadata(object):
key=key, value=value) key=key, value=value)
@classmethod @classmethod
def _datastore_version_metadata_delete(cls, datastore_version_id, def _datastore_version_metadata_delete(cls, datastore_name,
datastore_version_name,
datastore_version_id,
key, value, exception_class): key, value, exception_class):
try: try:
db_record = DBDatastoreVersionMetadata.find_by( db_record = DBDatastoreVersionMetadata.find_by(
@ -587,10 +592,12 @@ class DatastoreVersionMetadata(object):
return return
else: else:
raise exception_class( raise exception_class(
datastore_version_id=datastore_version_id, datastore=datastore_name,
datastore_version=datastore_version_name,
flavor_id=value) flavor_id=value)
except exception.ModelNotFoundError: except exception.ModelNotFoundError:
raise exception_class(datastore_version_id=datastore_version_id, raise exception_class(datastore=datastore_name,
datastore_version=datastore_version_name,
flavor_id=value) flavor_id=value)
@classmethod @classmethod
@ -609,6 +616,7 @@ class DatastoreVersionMetadata(object):
datastore_version_id = db_dsv_record.id datastore_version_id = db_dsv_record.id
for flavor_id in flavor_ids: for flavor_id in flavor_ids:
cls._datastore_version_metadata_add( cls._datastore_version_metadata_add(
datastore_name, datastore_version_name,
datastore_version_id, 'flavor', flavor_id, datastore_version_id, 'flavor', flavor_id,
exception.DatastoreFlavorAssociationAlreadyExists) exception.DatastoreFlavorAssociationAlreadyExists)
@ -627,6 +635,7 @@ class DatastoreVersionMetadata(object):
) )
datastore_version_id = db_dsv_record.id datastore_version_id = db_dsv_record.id
cls._datastore_version_metadata_delete( cls._datastore_version_metadata_delete(
datastore_name, datastore_version_name,
datastore_version_id, 'flavor', flavor_id, datastore_version_id, 'flavor', flavor_id,
exception.DatastoreFlavorAssociationNotFound) exception.DatastoreFlavorAssociationNotFound)

View File

@ -682,7 +682,9 @@ class Instance(BuiltInstance):
valid_flavors = tuple(f.value for f in bound_flavors) valid_flavors = tuple(f.value for f in bound_flavors)
if flavor_id not in valid_flavors: if flavor_id not in valid_flavors:
raise exception.DatastoreFlavorAssociationNotFound( raise exception.DatastoreFlavorAssociationNotFound(
version_id=datastore_version.id, flavor_id=flavor_id) datastore=datastore.name,
datastore_version=datastore_version.name,
flavor_id=flavor_id)
datastore_cfg = CONF.get(datastore_version.manager) datastore_cfg = CONF.get(datastore_version.manager)
client = create_nova_client(context) client = create_nova_client(context)

View File

@ -37,16 +37,21 @@ class TestDatastoreVersionMetadata(TestDatastoreBase):
def test_add_existing_associations(self): def test_add_existing_associations(self):
dsmetadata = datastore_models.DatastoreVersionMetadata dsmetadata = datastore_models.DatastoreVersionMetadata
self.assertRaises(exception.DatastoreFlavorAssociationAlreadyExists, self.assertRaisesRegexp(
dsmetadata.add_datastore_version_flavor_association, exception.DatastoreFlavorAssociationAlreadyExists,
self.ds_name, self.ds_version, [self.flavor_id]) "Flavor %s is already associated with datastore %s version %s"
% (self.flavor_id, self.ds_name, self.ds_version),
dsmetadata.add_datastore_version_flavor_association,
self.ds_name, self.ds_version, [self.flavor_id])
def test_delete_nonexistent_mapping(self): def test_delete_nonexistent_mapping(self):
dsmeta = datastore_models.DatastoreVersionMetadata dsmeta = datastore_models.DatastoreVersionMetadata
self.assertRaises(exception.DatastoreFlavorAssociationNotFound, self.assertRaisesRegexp(
dsmeta.delete_datastore_version_flavor_association, exception.DatastoreFlavorAssociationNotFound,
self.ds_name, self.ds_version, "Flavor 2 is not supported for datastore %s version %s"
flavor_id=2) % (self.ds_name, self.ds_version),
dsmeta.delete_datastore_version_flavor_association,
self.ds_name, self.ds_version, flavor_id=2)
def test_delete_mapping(self): def test_delete_mapping(self):
flavor_id = 2 flavor_id = 2