From d99d9fc6ed116c47461669107708319d5c45b8a5 Mon Sep 17 00:00:00 2001 From: Corey O'Brien Date: Fri, 22 Jan 2016 13:25:59 -0500 Subject: [PATCH] Enable Tempest without devstack To be able to use the functional tests outside of devstack, this adds a configurtion option to bypass the service catalog and disables checking SSL certificates during testing. Change-Id: I56d7403e268074ddb167f6ae8dac8b86b77eb1aa Partially-Implements: blueprint magnum-tempest --- magnum/tests/functional/common/client.py | 3 ++- magnum/tests/functional/common/config.py | 5 +++++ magnum/tests/functional/common/manager.py | 8 ++++++++ magnum/tests/functional/tempest_tests/config.py | 4 ++++ 4 files changed, 19 insertions(+), 1 deletion(-) diff --git a/magnum/tests/functional/common/client.py b/magnum/tests/functional/common/client.py index 0e640a4bfe..01ce07412a 100644 --- a/magnum/tests/functional/common/client.py +++ b/magnum/tests/functional/common/client.py @@ -27,7 +27,8 @@ class MagnumClient(rest_client.RestClient): super(MagnumClient, self).__init__( auth_provider=auth_provider, service='container', - region=config.Config.region + region=config.Config.region, + disable_ssl_certificate_validation=True ) @classmethod diff --git a/magnum/tests/functional/common/config.py b/magnum/tests/functional/common/config.py index 75199f4c9d..6d92d9d2ff 100644 --- a/magnum/tests/functional/common/config.py +++ b/magnum/tests/functional/common/config.py @@ -87,6 +87,10 @@ class Config(object): raise Exception('config missing flavor_id key') cls.flavor_id = CONF.magnum.flavor_id + @classmethod + def set_magnum_url(cls, config): + cls.magnum_url = CONF.magnum.get('magnum_url', None) + @classmethod def setUp(cls): cls.set_admin_creds(config) @@ -100,3 +104,4 @@ class Config(object): cls.set_nic_id(config) cls.set_keypair_id(config) cls.set_flavor_id(config) + cls.set_magnum_url(config) diff --git a/magnum/tests/functional/common/manager.py b/magnum/tests/functional/common/manager.py index cf38168163..71a44cadb8 100644 --- a/magnum/tests/functional/common/manager.py +++ b/magnum/tests/functional/common/manager.py @@ -17,6 +17,7 @@ from magnum.tests.functional.api.v1.clients import bay_client from magnum.tests.functional.api.v1.clients import baymodel_client from magnum.tests.functional.api.v1.clients import magnum_service_client from magnum.tests.functional.common import client +from magnum.tests.functional.common import config class Manager(clients.Manager): @@ -26,6 +27,8 @@ class Manager(clients.Manager): 'identity_admin'), request_type=None): super(Manager, self).__init__(credentials, 'container') + self.auth_provider.orig_base_url = self.auth_provider.base_url + self.auth_provider.base_url = self.bypassed_base_url if request_type == 'baymodel': self.client = baymodel_client.BayModelClient(self.auth_provider) elif request_type == 'bay': @@ -36,6 +39,11 @@ class Manager(clients.Manager): else: self.client = client.MagnumClient(self.auth_provider) + def bypassed_base_url(self, filters, auth_data=None): + if config.Config.magnum_url and filters['service'] == 'container': + return config.Config.magnum_url + return self.auth_provider.orig_base_url(filters, auth_data=auth_data) + class DefaultManager(Manager): def __init__(self, credentials, request_type=None): diff --git a/magnum/tests/functional/tempest_tests/config.py b/magnum/tests/functional/tempest_tests/config.py index ac8d268ac2..aec537215b 100644 --- a/magnum/tests/functional/tempest_tests/config.py +++ b/magnum/tests/functional/tempest_tests/config.py @@ -43,4 +43,8 @@ MagnumGroup = [ cfg.StrOpt("flavor_id", default="m1.magnum", help="Flavor id to use for baymodels."), + + cfg.StrOpt("magnum_url", + default=None, + help="Bypass URL for Magnum to skip service catalog lookup"), ]