keystone: fix catalog output when region is unset
If no region is set in Keystone, null is deserialized as None and the region has None has value, which triggers a type error when building the output string. This patch fixes that. Change-Id: I7637dc2595655cf452f38308f99fe66ac782e16d
This commit is contained in:
		@@ -25,7 +25,9 @@ def _format_endpoints(eps=None):
 | 
			
		||||
        return ""
 | 
			
		||||
    ret = ''
 | 
			
		||||
    for index, ep in enumerate(eps):
 | 
			
		||||
        region = eps[index].get('region', '<none>')
 | 
			
		||||
        region = eps[index].get('region')
 | 
			
		||||
        if region is None:
 | 
			
		||||
            region = '<none>'
 | 
			
		||||
        ret += region + '\n'
 | 
			
		||||
        for endpoint_type in ['publicURL', 'internalURL', 'adminURL']:
 | 
			
		||||
            url = eps[index].get(endpoint_type)
 | 
			
		||||
 
 | 
			
		||||
@@ -25,7 +25,7 @@ def _format_endpoints(eps=None):
 | 
			
		||||
        return ""
 | 
			
		||||
    ret = ''
 | 
			
		||||
    for ep in eps:
 | 
			
		||||
        region = ep.get('region_id') or ep.get('region', '<none>')
 | 
			
		||||
        region = ep.get('region_id') or ep.get('region') or '<none>'
 | 
			
		||||
        ret += region + '\n'
 | 
			
		||||
        ret += "  %s: %s\n" % (ep['interface'], ep['url'])
 | 
			
		||||
    return ret
 | 
			
		||||
 
 | 
			
		||||
@@ -36,6 +36,12 @@ class TestCatalog(utils.TestCommand):
 | 
			
		||||
                'internalURL': 'https://internal.two.example.com',
 | 
			
		||||
                'adminURL': 'https://admin.two.example.com',
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                'region': None,
 | 
			
		||||
                'publicURL': 'https://public.none.example.com',
 | 
			
		||||
                'internalURL': 'https://internal.none.example.com',
 | 
			
		||||
                'adminURL': 'https://admin.none.example.com',
 | 
			
		||||
            },
 | 
			
		||||
        ],
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -87,7 +93,10 @@ class TestCatalogList(TestCatalog):
 | 
			
		||||
            'adminURL: https://admin.one.example.com\n'
 | 
			
		||||
            'two\n  publicURL: https://public.two.example.com\n  '
 | 
			
		||||
            'internalURL: https://internal.two.example.com\n  '
 | 
			
		||||
            'adminURL: https://admin.two.example.com\n',
 | 
			
		||||
            'adminURL: https://admin.two.example.com\n'
 | 
			
		||||
            '<none>\n  publicURL: https://public.none.example.com\n  '
 | 
			
		||||
            'internalURL: https://internal.none.example.com\n  '
 | 
			
		||||
            'adminURL: https://admin.none.example.com\n',
 | 
			
		||||
        ), )
 | 
			
		||||
        self.assertEqual(datalist, tuple(data))
 | 
			
		||||
 | 
			
		||||
@@ -164,7 +173,10 @@ class TestCatalogShow(TestCatalog):
 | 
			
		||||
            'adminURL: https://admin.one.example.com\n'
 | 
			
		||||
            'two\n  publicURL: https://public.two.example.com\n  '
 | 
			
		||||
            'internalURL: https://internal.two.example.com\n  '
 | 
			
		||||
            'adminURL: https://admin.two.example.com\n',
 | 
			
		||||
            'adminURL: https://admin.two.example.com\n'
 | 
			
		||||
            '<none>\n  publicURL: https://public.none.example.com\n  '
 | 
			
		||||
            'internalURL: https://internal.none.example.com\n  '
 | 
			
		||||
            'adminURL: https://admin.none.example.com\n',
 | 
			
		||||
            'qwertyuiop',
 | 
			
		||||
            'supernova',
 | 
			
		||||
            'compute',
 | 
			
		||||
 
 | 
			
		||||
@@ -38,6 +38,11 @@ class TestCatalog(utils.TestCommand):
 | 
			
		||||
                'url': 'https://internal.example.com',
 | 
			
		||||
                'interface': 'internal',
 | 
			
		||||
            },
 | 
			
		||||
            {
 | 
			
		||||
                'region': None,
 | 
			
		||||
                'url': 'https://none.example.com',
 | 
			
		||||
                'interface': 'none',
 | 
			
		||||
            },
 | 
			
		||||
        ],
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@@ -81,7 +86,8 @@ class TestCatalogList(TestCatalog):
 | 
			
		||||
            'compute',
 | 
			
		||||
            'onlyone\n  public: https://public.example.com\n'
 | 
			
		||||
            'onlyone\n  admin: https://admin.example.com\n'
 | 
			
		||||
            '<none>\n  internal: https://internal.example.com\n',
 | 
			
		||||
            '<none>\n  internal: https://internal.example.com\n'
 | 
			
		||||
            '<none>\n  none: https://none.example.com\n',
 | 
			
		||||
        ), )
 | 
			
		||||
        self.assertEqual(datalist, tuple(data))
 | 
			
		||||
 | 
			
		||||
@@ -114,7 +120,8 @@ class TestCatalogShow(TestCatalog):
 | 
			
		||||
        datalist = (
 | 
			
		||||
            'onlyone\n  public: https://public.example.com\nonlyone\n'
 | 
			
		||||
            '  admin: https://admin.example.com\n'
 | 
			
		||||
            '<none>\n  internal: https://internal.example.com\n',
 | 
			
		||||
            '<none>\n  internal: https://internal.example.com\n'
 | 
			
		||||
            '<none>\n  none: https://none.example.com\n',
 | 
			
		||||
            'qwertyuiop',
 | 
			
		||||
            'supernova',
 | 
			
		||||
            'compute',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user