diff --git a/tripleo_common/actions/base.py b/tripleo_common/actions/base.py index 58364dc4e..8adce2cc4 100644 --- a/tripleo_common/actions/base.py +++ b/tripleo_common/actions/base.py @@ -113,8 +113,12 @@ class TripleOAction(actions.Action): def get_image_client(self, context): security_ctx = context.security - glance_endpoint = keystone_utils.get_endpoint_for_project( - security_ctx, 'glance') + try: + glance_endpoint = keystone_utils.get_endpoint_for_project( + security_ctx, 'glance') + except Exception: + return None + return glanceclient.Client( glance_endpoint.url, token=security_ctx.auth_token, diff --git a/tripleo_common/tests/utils/test_glance.py b/tripleo_common/tests/utils/test_glance.py index 7f89a282c..0979f7acc 100644 --- a/tripleo_common/tests/utils/test_glance.py +++ b/tripleo_common/tests/utils/test_glance.py @@ -59,7 +59,7 @@ class GlanceTest(base.TestCase): client = mock.MagicMock() expected = {'kernel': 'file:///kernel', 'ramdisk': 'file:///ramdisk'} ids = glance.create_or_find_kernel_and_ramdisk( - client, 'file:///kernel', 'file:///ramdisk') + None, 'file:///kernel', 'file:///ramdisk') client.images.assert_not_called() self.assertEqual(expected, ids) @@ -70,3 +70,9 @@ class GlanceTest(base.TestCase): client, 'http://kernel', 'http://ramdisk') client.images.assert_not_called() self.assertEqual(expected, ids) + + def test_return_https_urls_no_client(self): + expected = {'kernel': 'https://kernel', 'ramdisk': 'https://ramdisk'} + ids = glance.create_or_find_kernel_and_ramdisk( + None, 'https://kernel', 'https://ramdisk') + self.assertEqual(expected, ids)