From 233bf6c2d032e1eb20f91cd53b8557ab2dc3e1a8 Mon Sep 17 00:00:00 2001 From: astarove Date: Mon, 29 Aug 2016 14:27:46 +0300 Subject: [PATCH] Moving of Quotas scenarios into separate classes This patch moving methods from Quotas' base classe into several independed classes (by one on each method) with keeping of original names of scenarios. Also this patch contains updated unit tests for all scenarios Change-Id: I5e3fcf222e486878a4d3a3e077bcced30c357c9f --- .../openstack/scenarios/quotas/quotas.py | 84 ++++++++++--------- .../openstack/scenarios/quotas/test_quotas.py | 21 +++-- 2 files changed, 56 insertions(+), 49 deletions(-) diff --git a/rally/plugins/openstack/scenarios/quotas/quotas.py b/rally/plugins/openstack/scenarios/quotas/quotas.py index 5463dd7b..6e698e6f 100644 --- a/rally/plugins/openstack/scenarios/quotas/quotas.py +++ b/rally/plugins/openstack/scenarios/quotas/quotas.py @@ -18,65 +18,73 @@ from rally.plugins.openstack import scenario from rally.plugins.openstack.scenarios.quotas import utils from rally.task import validation +"""Benchmark scenarios for quotas.""" -class Quotas(utils.QuotasScenario): - """Benchmark scenarios for quotas.""" - @validation.required_services(consts.Service.NOVA) - @validation.required_openstack(admin=True, users=True) - @scenario.configure(context={"admin_cleanup": ["nova.quotas"]}) - def nova_update(self, max_quota=1024): - """Update quotas for Nova. +@validation.required_services(consts.Service.NOVA) +@validation.required_openstack(admin=True, users=True) +@scenario.configure(context={"admin_cleanup": ["nova.quotas"]}, + name="Quotas.nova_update") +class NovaUpdate(utils.QuotasScenario): + """Update quotas for Nova.""" - :param max_quota: Max value to be updated for quota. - """ + def run(self, max_quota=1024): + """:param max_quota: Max value to be updated for quota.""" self._update_quotas("nova", self.context["tenant"]["id"], max_quota) - @validation.required_services(consts.Service.NOVA) - @validation.required_openstack(admin=True, users=True) - @scenario.configure(context={"admin_cleanup": ["nova.quotas"]}) - def nova_update_and_delete(self, max_quota=1024): - """Update and delete quotas for Nova. - :param max_quota: Max value to be updated for quota. - """ +@validation.required_services(consts.Service.NOVA) +@validation.required_openstack(admin=True, users=True) +@scenario.configure(context={"admin_cleanup": ["nova.quotas"]}, + name="Quotas.nova_update_and_delete") +class NovaUpdateAndDelete(utils.QuotasScenario): + """Update and delete quotas for Nova.""" + + def run(self, max_quota=1024): + """:param max_quota: Max value to be updated for quota.""" self._update_quotas("nova", self.context["tenant"]["id"], max_quota) self._delete_quotas("nova", self.context["tenant"]["id"]) - @validation.required_services(consts.Service.CINDER) - @validation.required_openstack(admin=True, users=True) - @scenario.configure(context={"admin_cleanup": ["cinder.quotas"]}) - def cinder_update(self, max_quota=1024): - """Update quotas for Cinder. - :param max_quota: Max value to be updated for quota. - """ +@validation.required_services(consts.Service.CINDER) +@validation.required_openstack(admin=True, users=True) +@scenario.configure(context={"admin_cleanup": ["cinder.quotas"]}, + name="Quotas.cinder_update") +class CinderUpdate(utils.QuotasScenario): + """Update quotas for Cinder.""" + + def run(self, max_quota=1024): + """:param max_quota: Max value to be updated for quota.""" self._update_quotas("cinder", self.context["tenant"]["id"], max_quota) - @validation.required_services(consts.Service.CINDER) - @validation.required_openstack(admin=True, users=True) - @scenario.configure(context={"admin_cleanup": ["cinder.quotas"]}) - def cinder_update_and_delete(self, max_quota=1024): - """Update and Delete quotas for Cinder. - :param max_quota: Max value to be updated for quota. - """ +@validation.required_services(consts.Service.CINDER) +@validation.required_openstack(admin=True, users=True) +@scenario.configure(context={"admin_cleanup": ["cinder.quotas"]}, + name="Quotas.cinder_update_and_delete") +class CinderUpdateAndDelete(utils.QuotasScenario): + """Update and Delete quotas for Cinder.""" + + def run(self, max_quota=1024): + """:param max_quota: Max value to be updated for quota.""" self._update_quotas("cinder", self.context["tenant"]["id"], max_quota) self._delete_quotas("cinder", self.context["tenant"]["id"]) - @validation.required_services(consts.Service.NEUTRON) - @validation.required_openstack(admin=True, users=True) - @scenario.configure(context={"admin_cleanup": ["neutron.quota"]}) - def neutron_update(self, max_quota=1024): - """Update quotas for neutron. - :param max_quota: Max value to be updated for quota. - """ +@validation.required_services(consts.Service.NEUTRON) +@validation.required_openstack(admin=True, users=True) +@scenario.configure(context={"admin_cleanup": ["neutron.quota"]}, + name="Quotas.neutron_update") +class NeutronUpdate(utils.QuotasScenario): + """Update quotas for neutron.""" + + def run(self, max_quota=1024): + """:param max_quota: Max value to be updated for quota.""" quota_update_fn = self.admin_clients("neutron").update_quota self._update_quotas("neutron", self.context["tenant"]["id"], - max_quota, quota_update_fn) + max_quota, quota_update_fn) \ No newline at end of file diff --git a/tests/unit/plugins/openstack/scenarios/quotas/test_quotas.py b/tests/unit/plugins/openstack/scenarios/quotas/test_quotas.py index ac91619f..25ea0edc 100644 --- a/tests/unit/plugins/openstack/scenarios/quotas/test_quotas.py +++ b/tests/unit/plugins/openstack/scenarios/quotas/test_quotas.py @@ -32,39 +32,38 @@ class QuotasTestCase(test.ScenarioTestCase): }) def test_nova_update(self): - scenario = quotas.Quotas(self.context) + scenario = quotas.NovaUpdate(self.context) scenario._update_quotas = mock.MagicMock() - scenario.nova_update(max_quota=1024) + scenario.run(max_quota=1024) scenario._update_quotas.assert_called_once_with("nova", "fake", 1024) def test_nova_update_and_delete(self): - scenario = quotas.Quotas(self.context) + scenario = quotas.NovaUpdateAndDelete(self.context) scenario._update_quotas = mock.MagicMock() scenario._delete_quotas = mock.MagicMock() - scenario.nova_update_and_delete(max_quota=1024) + scenario.run(max_quota=1024) scenario._update_quotas.assert_called_once_with("nova", "fake", 1024) scenario._delete_quotas.assert_called_once_with("nova", "fake") def test_cinder_update(self): - scenario = quotas.Quotas(self.context) + scenario = quotas.CinderUpdate(self.context) scenario._update_quotas = mock.MagicMock() - scenario.cinder_update(max_quota=1024) + scenario.run(max_quota=1024) scenario._update_quotas.assert_called_once_with("cinder", "fake", 1024) def test_cinder_update_and_delete(self): - scenario = quotas.Quotas(self.context) + scenario = quotas.CinderUpdateAndDelete(self.context) scenario._update_quotas = mock.MagicMock() scenario._delete_quotas = mock.MagicMock() - scenario.cinder_update_and_delete(max_quota=1024) + scenario.run(max_quota=1024) scenario._update_quotas.assert_called_once_with("cinder", "fake", 1024) scenario._delete_quotas.assert_called_once_with("cinder", "fake") def test_neutron_update(self): - scenario = quotas.Quotas(self.context) - + scenario = quotas.NeutronUpdate(self.context) scenario._update_quotas = mock.MagicMock() mock_quota_update_fn = self.admin_clients("neutron").update_quota - scenario.neutron_update(max_quota=1024) + scenario.run(max_quota=1024) scenario._update_quotas.assert_called_once_with("neutron", "fake", 1024, mock_quota_update_fn)