From 3e7e3271b4d7c362718103064f92c0f29730db85 Mon Sep 17 00:00:00 2001 From: Srinivas Sakhamuri Date: Mon, 22 Feb 2016 16:39:17 -0700 Subject: [PATCH] Make sure VolumeGenerator uses the api version info while cleanup Change-Id: I8d0b15a033e8ccf09800e758ee240c8ccb052c38 --- .../openstack/context/cinder/volumes.py | 6 ++- .../openstack/context/cinder/test_volumes.py | 54 ++++++++++++++++++- 2 files changed, 57 insertions(+), 3 deletions(-) diff --git a/rally/plugins/openstack/context/cinder/volumes.py b/rally/plugins/openstack/context/cinder/volumes.py index c97d7e9e..364e400b 100644 --- a/rally/plugins/openstack/context/cinder/volumes.py +++ b/rally/plugins/openstack/context/cinder/volumes.py @@ -68,5 +68,7 @@ class VolumeGenerator(context.Context): @logging.log_task_wrapper(LOG.info, _("Exit context: `Volumes`")) def cleanup(self): # TODO(boris-42): Delete only resources created by this context - resource_manager.cleanup(names=["cinder.volumes"], - users=self.context.get("users", [])) + resource_manager.cleanup( + names=["cinder.volumes"], + users=self.context.get("users", []), + api_versions=self.context["config"].get("api_versions")) diff --git a/tests/unit/plugins/openstack/context/cinder/test_volumes.py b/tests/unit/plugins/openstack/context/cinder/test_volumes.py index 5120d4ff..8a51c87d 100644 --- a/tests/unit/plugins/openstack/context/cinder/test_volumes.py +++ b/tests/unit/plugins/openstack/context/cinder/test_volumes.py @@ -129,4 +129,56 @@ class VolumeGeneratorTestCase(test.ScenarioTestCase): volumes_ctx.cleanup() mock_cleanup.assert_called_once_with(names=["cinder.volumes"], - users=self.context["users"]) + users=self.context["users"], + api_versions=None) + + @mock.patch("%s.cinder.volumes.resource_manager.cleanup" % CTX) + def test_cleanup_api_versions(self, mock_cleanup): + + tenants_count = 2 + users_per_tenant = 5 + volumes_per_tenant = 5 + + tenants = self._gen_tenants(tenants_count) + users = [] + for id_ in tenants.keys(): + for i in range(users_per_tenant): + users.append({"id": i, "tenant_id": id_, + "credential": "credential"}) + tenants[id_].setdefault("volumes", []) + for j in range(volumes_per_tenant): + tenants[id_]["volumes"].append({"id": "uuid"}) + + api_version = { + "cinder": { + "version": 1, + "service_type": "volume" + } + } + self.context.update({ + "config": { + "users": { + "tenants": 2, + "users_per_tenant": 5, + "concurrent": 10, + }, + "volumes": { + "size": 1, + "volumes_per_tenant": 5, + }, + "api_versions": api_version + }, + "admin": { + "credential": mock.MagicMock() + }, + "users": users, + "tenants": tenants + }) + + volumes_ctx = volumes.VolumeGenerator(self.context) + volumes_ctx.cleanup() + + mock_cleanup.assert_called_once_with( + names=["cinder.volumes"], + users=self.context["users"], + api_versions=api_version) \ No newline at end of file