Merge "Use correct message for missing default datastore"

This commit is contained in:
Jenkins 2016-06-22 21:12:57 +00:00 committed by Gerrit Code Review
commit f753f9b31c
4 changed files with 34 additions and 8 deletions

View File

@ -144,7 +144,13 @@ class DatastoreVersionInactive(TroveError):
class DatastoreDefaultDatastoreNotFound(TroveError):
message = _("Please specify datastore. Default datastore "
"cannot be found.")
"'%(datastore)s' cannot be found.")
class DatastoreDefaultDatastoreNotDefined(TroveError):
message = _("Please specify datastore. No default datastore "
"is defined.")
class DatastoreDefaultVersionNotFound(TroveError):

View File

@ -489,8 +489,15 @@ class DatastoreVersions(object):
def get_datastore_version(type=None, version=None, return_inactive=False):
datastore = type or CONF.default_datastore
if not datastore:
raise exception.DatastoreDefaultDatastoreNotFound()
datastore = Datastore.load(datastore)
raise exception.DatastoreDefaultDatastoreNotDefined()
try:
datastore = Datastore.load(datastore)
except exception.DatastoreNotFound:
if not type:
raise exception.DatastoreDefaultDatastoreNotFound(
datastore=datastore)
raise
version = version or datastore.default_version_id
if not version:
raise exception.DatastoreDefaultVersionNotFound(

View File

@ -491,7 +491,7 @@ class CreateInstanceFail(object):
check.guest_status()
@test
def test_create_failure_with_datastore_default_notfound(self):
def test_create_failure_with_datastore_default_not_defined(self):
if not FAKE:
raise SkipTest("This test only for fake mode.")
if VOLUME_SUPPORT:
@ -511,8 +511,8 @@ class CreateInstanceFail(object):
volume, databases, users)
except exceptions.BadRequest as e:
assert_equal(e.message,
"Please specify datastore. Default datastore "
"cannot be found.")
"Please specify datastore. No default datastore "
"is defined.")
datastore_models.CONF.default_datastore = \
origin_default_datastore

View File

@ -13,6 +13,8 @@
# License for the specific language governing permissions and limitations
# under the License.
from mock import patch
from trove.common import exception
from trove.datastore import models as datastore_models
from trove.datastore.models import Datastore
@ -21,11 +23,22 @@ from trove.tests.unittests.datastore.base import TestDatastoreBase
class TestDatastore(TestDatastoreBase):
def test_create_failure_with_datastore_default_notfound(self):
def test_create_failure_with_datastore_default_not_defined(self):
self.assertRaises(
exception.DatastoreDefaultDatastoreNotFound,
exception.DatastoreDefaultDatastoreNotDefined,
datastore_models.get_datastore_version)
def test_load_datastore(self):
datastore = Datastore.load(self.ds_name)
self.assertEqual(self.ds_name, datastore.name)
@patch.object(datastore_models, 'CONF')
def test_create_failure_with_datastore_default(self, mock_conf):
mock_conf.default_datastore = 'bad_ds'
self.assertRaisesRegexp(exception.DatastoreDefaultDatastoreNotFound,
"Default datastore 'bad_ds' cannot be found",
datastore_models.get_datastore_version)
self.assertRaisesRegexp(exception.DatastoreNotFound,
"Datastore 'my_ds' cannot be found",
datastore_models.get_datastore_version,
'my_ds')