Add new context plugin to support different API versions

Services context plugin allows to path API version to clients
and service name to validate if service is available.

Co-Authored-By: Andrey Kurilin <andr.kurilin@gmail.com>

Related blueprint: different-api-versions
Change-Id: Iebc9bef0797c4afcdc8758e7819eeff43b92bf0f
This commit is contained in:
Ivan Kolodyazhny 2015-10-08 16:59:35 +03:00 committed by Andrey Kurilin
parent f53de140fa
commit f252b1adfa
2 changed files with 14 additions and 4 deletions

View File

@ -31,11 +31,21 @@ class OpenStackScenario(scenario.Scenario):
def __init__(self, context=None, admin_clients=None, clients=None): def __init__(self, context=None, admin_clients=None, clients=None):
super(OpenStackScenario, self).__init__(context) super(OpenStackScenario, self).__init__(context)
if context: if context:
api_info = {}
if "api_versions" in context.get("config", {}):
api_versions = context["config"]["api_versions"]
for service in api_versions:
api_info[service] = {
"version": api_versions[service].get("version"),
"service_type": api_versions[service].get(
"service_type")}
if "admin" in context: if "admin" in context:
self._admin_clients = osclients.Clients( self._admin_clients = osclients.Clients(
context["admin"]["endpoint"]) context["admin"]["endpoint"], api_info)
if "user" in context: if "user" in context:
self._clients = osclients.Clients(context["user"]["endpoint"]) self._clients = osclients.Clients(context["user"]["endpoint"],
api_info)
if admin_clients: if admin_clients:
if hasattr(self, "_admin_clients"): if hasattr(self, "_admin_clients"):
raise ValueError( raise ValueError(

View File

@ -37,7 +37,7 @@ class OpenStackScenarioTestCase(test.TestCase):
scenario = base_scenario.OpenStackScenario(self.context) scenario = base_scenario.OpenStackScenario(self.context)
self.assertEqual(self.context, scenario.context) self.assertEqual(self.context, scenario.context)
self.osclients.mock.assert_called_once_with( self.osclients.mock.assert_called_once_with(
self.context["admin"]["endpoint"]) self.context["admin"]["endpoint"], {})
self.assertRaises( self.assertRaises(
ValueError, base_scenario.OpenStackScenario, ValueError, base_scenario.OpenStackScenario,
@ -55,7 +55,7 @@ class OpenStackScenarioTestCase(test.TestCase):
scenario = base_scenario.OpenStackScenario(self.context) scenario = base_scenario.OpenStackScenario(self.context)
self.assertEqual(self.context, scenario.context) self.assertEqual(self.context, scenario.context)
self.osclients.mock.assert_called_once_with( self.osclients.mock.assert_called_once_with(
self.context["user"]["endpoint"]) self.context["user"]["endpoint"], {})
self.assertRaises( self.assertRaises(
ValueError, base_scenario.OpenStackScenario, ValueError, base_scenario.OpenStackScenario,