only return endpoints that have url

Change-Id: I97a502252c0c377fce573e92b83c0122812f6f80
Closes-Bug: #1474656
This commit is contained in:
Guojian Shao 2015-07-15 12:37:30 +08:00
parent 1af89f757c
commit 7829aca704
2 changed files with 44 additions and 2 deletions

View File

@ -30,8 +30,10 @@ def _format_endpoints(eps=None):
for index, ep in enumerate(eps):
region = eps[index].get('region', '<none>')
ret += region + '\n'
for url in ['publicURL', 'internalURL', 'adminURL']:
ret += " %s: %s\n" % (url, eps[index][url])
for endpoint_type in ['publicURL', 'internalURL', 'adminURL']:
url = eps[index].get(endpoint_type)
if url:
ret += " %s: %s\n" % (endpoint_type, url)
return ret

View File

@ -84,6 +84,46 @@ class TestCatalogList(TestCatalog):
), )
self.assertEqual(datalist, tuple(data))
def test_catalog_list_with_endpoint_url(self):
fake_service = {
'id': 'qwertyuiop',
'type': 'compute',
'name': 'supernova',
'endpoints': [
{
'region': 'one',
'publicURL': 'https://public.one.example.com',
},
{
'region': 'two',
'publicURL': 'https://public.two.example.com',
'internalURL': 'https://internal.two.example.com',
},
],
}
self.sc_mock.service_catalog.get_data.return_value = [
fake_service,
]
arglist = []
verifylist = []
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
# DisplayCommandBase.take_action() returns two tuples
columns, data = self.cmd.take_action(parsed_args)
self.sc_mock.service_catalog.get_data.assert_called_with()
collist = ('Name', 'Type', 'Endpoints')
self.assertEqual(collist, columns)
datalist = ((
'supernova',
'compute',
'one\n publicURL: https://public.one.example.com\n'
'two\n publicURL: https://public.two.example.com\n '
'internalURL: https://internal.two.example.com\n'
), )
self.assertEqual(datalist, tuple(data))
class TestCatalogShow(TestCatalog):