Raises Exception on improper Auth Configuration

Addresses bug 1061848.

Basically, this bug comes about from not properly
setting up the auth_system for novaclient. In this
case, an exception of EndPointNotFound is flung.

Change-Id: I12533aefd9d0425dd83e2e4c63f4dd5ff6faae71
This commit is contained in:
Stef T 2012-10-04 16:20:23 -04:00
parent aa171ca12b
commit a9a66ae7a7
2 changed files with 26 additions and 0 deletions

View File

@ -95,6 +95,8 @@ class HTTPClient(httplib2.Http):
self.projectid = projectid
if not auth_url and auth_system and auth_system != 'keystone':
auth_url = get_auth_system_url(auth_system)
if not auth_url:
raise exceptions.EndpointNotFound()
self.auth_url = auth_url.rstrip('/')
self.version = 'v1.1'
self.region_name = region_name

View File

@ -157,3 +157,27 @@ class AuthPluginTest(utils.TestCase):
self.assertEquals(cs.client.auth_url, "http://faked/v2.0")
test_auth_call()
def test_auth_system_raises_exception_when_missing_auth_url(self):
class MockAuthUrlEntrypoint(pkg_resources.EntryPoint):
def load(self):
return self.auth_url
def auth_url(self):
return None
def mock_iter_entry_points(_type):
return [MockAuthUrlEntrypoint("fakewithauthurl",
"fakewithauthurl.plugin",
["auth_url"])]
@mock.patch.object(pkg_resources, "iter_entry_points",
mock_iter_entry_points)
def test_auth_call():
with self.assertRaises(exceptions.EndpointNotFound):
cs = client.Client("username", "password", "project_id",
auth_system="fakewithauthurl",
no_cache=True)
test_auth_call()