diff --git a/rally/plugins/openstack/scenario.py b/rally/plugins/openstack/scenario.py index 2589bb5c..7daa1295 100644 --- a/rally/plugins/openstack/scenario.py +++ b/rally/plugins/openstack/scenario.py @@ -31,11 +31,21 @@ class OpenStackScenario(scenario.Scenario): def __init__(self, context=None, admin_clients=None, clients=None): super(OpenStackScenario, self).__init__(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: self._admin_clients = osclients.Clients( - context["admin"]["endpoint"]) + context["admin"]["endpoint"], api_info) if "user" in context: - self._clients = osclients.Clients(context["user"]["endpoint"]) + self._clients = osclients.Clients(context["user"]["endpoint"], + api_info) + if admin_clients: if hasattr(self, "_admin_clients"): raise ValueError( diff --git a/tests/unit/plugins/openstack/test_scenario.py b/tests/unit/plugins/openstack/test_scenario.py index 9a8b437c..3b03c20c 100644 --- a/tests/unit/plugins/openstack/test_scenario.py +++ b/tests/unit/plugins/openstack/test_scenario.py @@ -37,7 +37,7 @@ class OpenStackScenarioTestCase(test.TestCase): scenario = base_scenario.OpenStackScenario(self.context) self.assertEqual(self.context, scenario.context) self.osclients.mock.assert_called_once_with( - self.context["admin"]["endpoint"]) + self.context["admin"]["endpoint"], {}) self.assertRaises( ValueError, base_scenario.OpenStackScenario, @@ -55,7 +55,7 @@ class OpenStackScenarioTestCase(test.TestCase): scenario = base_scenario.OpenStackScenario(self.context) self.assertEqual(self.context, scenario.context) self.osclients.mock.assert_called_once_with( - self.context["user"]["endpoint"]) + self.context["user"]["endpoint"], {}) self.assertRaises( ValueError, base_scenario.OpenStackScenario,