[api_versions]Merge version info of api_versions context into credential

Unify specifying api info process, save api info in credential.

Change-Id: Id673da173bd9005aaee5deb9b7949a6662ff6c50
This commit is contained in:
chenhb 2018-08-30 15:42:28 +08:00
parent eec1982afd
commit 5bdb5b83fc
5 changed files with 19 additions and 24 deletions

View File

@ -260,9 +260,15 @@ class OpenStackAPIVersions(context.Context):
self.context["config"]["api_versions@openstack"][client_name][ self.context["config"]["api_versions@openstack"][client_name][
"service_type"] = services_from_admin[conf["service_name"]] "service_type"] = services_from_admin[conf["service_name"]]
# NOTE(boris-42): Required to be backward compatible admin_cred = self.context.get("admin", {}).get("credential")
self.context["config"]["api_versions"] = ( if admin_cred:
self.context["config"]["api_versions@openstack"]) admin_cred["api_info"].update(
self.context["config"]["api_versions@openstack"]
)
for user in self.context["users"]:
user["credential"]["api_info"].update(
self.context["config"]["api_versions@openstack"]
)
def cleanup(self): def cleanup(self):
# nothing to do here # nothing to do here

View File

@ -38,25 +38,16 @@ 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@openstack" in context.get("config", {}):
api_versions = context["config"]["api_versions@openstack"]
for service in api_versions:
api_info[service] = {
"version": api_versions[service].get("version"),
"service_type": api_versions[service].get(
"service_type")}
if admin_clients is None and "admin" in context: if admin_clients is None and "admin" in context:
self._admin_clients = osclients.Clients( self._admin_clients = osclients.Clients(
context["admin"]["credential"], api_info) context["admin"]["credential"])
if clients is None: if clients is None:
if "users" in context and "user" not in context: if "users" in context and "user" not in context:
self._choose_user(context) self._choose_user(context)
if "user" in context: if "user" in context:
self._clients = osclients.Clients( self._clients = osclients.Clients(
context["user"]["credential"], api_info) context["user"]["credential"])
if admin_clients: if admin_clients:
self._admin_clients = admin_clients self._admin_clients = admin_clients

View File

@ -291,7 +291,7 @@ class ShareNetworksTestCase(test.TestCase):
] ]
mock_manila_scenario__create_share_network.assert_has_calls( mock_manila_scenario__create_share_network.assert_has_calls(
expected_calls * (self.TENANTS_AMOUNT * networks_per_tenant)) expected_calls * (self.TENANTS_AMOUNT * networks_per_tenant))
mock_clients.assert_has_calls([mock.call(MOCK_USER_CREDENTIAL, {}) mock_clients.assert_has_calls([mock.call(MOCK_USER_CREDENTIAL)
for i in range(self.TENANTS_AMOUNT)]) for i in range(self.TENANTS_AMOUNT)])
@ddt.data(True, False) @ddt.data(True, False)
@ -329,7 +329,7 @@ class ShareNetworksTestCase(test.TestCase):
expected_calls = [mock.call(**sn_args), mock.call().to_dict()] expected_calls = [mock.call(**sn_args), mock.call().to_dict()]
mock_manila_scenario__create_share_network.assert_has_calls( mock_manila_scenario__create_share_network.assert_has_calls(
expected_calls * (self.TENANTS_AMOUNT * networks_per_tenant)) expected_calls * (self.TENANTS_AMOUNT * networks_per_tenant))
mock_clients.assert_has_calls([mock.call(MOCK_USER_CREDENTIAL, {}) mock_clients.assert_has_calls([mock.call(MOCK_USER_CREDENTIAL)
for i in range(self.TENANTS_AMOUNT)]) for i in range(self.TENANTS_AMOUNT)])
@mock.patch("rally_openstack.osclients.Clients") @mock.patch("rally_openstack.osclients.Clients")
@ -354,7 +354,7 @@ class ShareNetworksTestCase(test.TestCase):
expected_calls = [mock.call(), mock.call().to_dict()] expected_calls = [mock.call(), mock.call().to_dict()]
mock_manila_scenario__create_share_network.assert_has_calls( mock_manila_scenario__create_share_network.assert_has_calls(
expected_calls * self.TENANTS_AMOUNT) expected_calls * self.TENANTS_AMOUNT)
mock_clients.assert_has_calls([mock.call(MOCK_USER_CREDENTIAL, {}) mock_clients.assert_has_calls([mock.call(MOCK_USER_CREDENTIAL)
for i in range(self.TENANTS_AMOUNT)]) for i in range(self.TENANTS_AMOUNT)])
@mock.patch("rally_openstack.osclients.Clients") @mock.patch("rally_openstack.osclients.Clients")
@ -378,7 +378,7 @@ class ShareNetworksTestCase(test.TestCase):
self.assertFalse(mock_manila_scenario__delete_share_network.called) self.assertFalse(mock_manila_scenario__delete_share_network.called)
self.assertEqual(2, mock_clients.call_count) self.assertEqual(2, mock_clients.call_count)
for user in self.ctxt_use_existing["users"]: for user in self.ctxt_use_existing["users"]:
self.assertIn(mock.call(user["credential"], {}), self.assertIn(mock.call(user["credential"]),
mock_clients.mock_calls) mock_clients.mock_calls)
@mock.patch("rally_openstack.contexts.manila.manila_share_networks." @mock.patch("rally_openstack.contexts.manila.manila_share_networks."

View File

@ -95,6 +95,7 @@ class OpenStackServicesTestCase(test.TestCase):
self.service_catalog.get_endpoints.assert_called_once_with() self.service_catalog.get_endpoints.assert_called_once_with()
self.mock_kc.services.list.assert_called_once_with() self.mock_kc.services.list.assert_called_once_with()
versions = ctx.context["config"]["api_versions@openstack"]
self.assertEqual( self.assertEqual(
"computev21", "computev21",
ctx.context["config"]["api_versions"]["nova"]["service_type"]) versions["nova"]["service_type"])

View File

@ -52,10 +52,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"]["credential"], {}) self.context["admin"]["credential"])
scenario = base_scenario.OpenStackScenario(
self.context, admin_clients="foobar")
def test_init_admin_clients(self): def test_init_admin_clients(self):
scenario = base_scenario.OpenStackScenario( scenario = base_scenario.OpenStackScenario(
@ -76,7 +73,7 @@ class OpenStackScenarioTestCase(test.TestCase):
self.assertEqual(self.context["tenants"]["foo"], self.assertEqual(self.context["tenants"]["foo"],
scenario.context["tenant"]) scenario.context["tenant"])
self.osclients.mock.assert_called_once_with(user["credential"], {}) self.osclients.mock.assert_called_once_with(user["credential"])
def test_init_clients(self): def test_init_clients(self):
scenario = base_scenario.OpenStackScenario(self.context, scenario = base_scenario.OpenStackScenario(self.context,