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:
parent
f53de140fa
commit
f252b1adfa
@ -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(
|
||||||
|
@ -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,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user