def test_init(self): self.context.update( {"config": { "volumes": { "size": 1, "volumes_per_tenant": 5, } }}) inst = volumes.VolumeGenerator(self.context) self.assertEqual(inst.config, self.context["config"]["volumes"])
def test_setup(self, mock_block_storage, config, valid=True): results = context.Context.validate("volumes", None, None, config) if valid: self.assertEqual([], results) else: self.assertEqual(1, len(results)) from rally.plugins.openstack.services.storage import block created_volume = block.Volume(id="uuid", size=config["size"], name="vol", status="avaiable") mock_service = mock_block_storage.return_value mock_service.create_volume.return_value = created_volume users_per_tenant = 5 volumes_per_tenant = config.get("volumes_per_tenant", 5) tenants = self._gen_tenants(2) users = [] for id_ in tenants: for i in range(users_per_tenant): users.append({ "id": i, "tenant_id": id_, "credential": mock.MagicMock() }) self.context.update({ "config": { "users": { "tenants": 2, "users_per_tenant": 5, "concurrent": 10, }, "volumes": config }, "admin": { "credential": mock.MagicMock() }, "users": users, "tenants": tenants }) new_context = copy.deepcopy(self.context) for id_ in tenants.keys(): new_context["tenants"][id_].setdefault("volumes", []) for i in range(volumes_per_tenant): new_context["tenants"][id_]["volumes"].append( mock_service.create_volume.return_value._as_dict()) volumes_ctx = volumes.VolumeGenerator(self.context) volumes_ctx.setup() self.assertEqual(new_context, self.context)
def test_init(self): context = {} context["task"] = mock.MagicMock() context["config"] = { "volumes": { "size": 1, "volumes_per_tenant": 5, } } inst = volumes.VolumeGenerator(context) self.assertEqual(inst.config, context["config"]["volumes"])
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, "type": "volume_type", "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, superclass=cinder_utils.CinderScenario, task_id=self.context["task"]["uuid"])
def test_setup(self, mock_cinder_scenario__create_volume, config, validation_raises=None): try: volumes.VolumeGenerator.validate(config) except Exception as e: if not isinstance(e, validation_raises): raise users_per_tenant = 5 volumes_per_tenant = config.get("volumes_per_tenant", 5) tenants = self._gen_tenants(2) users = [] for id_ in tenants: for i in range(users_per_tenant): users.append({ "id": i, "tenant_id": id_, "credential": mock.MagicMock() }) self.context.update({ "config": { "users": { "tenants": 2, "users_per_tenant": 5, "concurrent": 10, }, "volumes": config }, "admin": { "credential": mock.MagicMock() }, "users": users, "tenants": tenants }) new_context = copy.deepcopy(self.context) for id_ in tenants.keys(): new_context["tenants"][id_].setdefault("volumes", []) for i in range(volumes_per_tenant): new_context["tenants"][id_]["volumes"].append({"id": "uuid"}) volumes_ctx = volumes.VolumeGenerator(self.context) volumes_ctx.setup() self.assertEqual(new_context, self.context)
def test_cleanup(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"}) self.context.update({ "config": { "users": { "tenants": 2, "users_per_tenant": 5, "concurrent": 10, }, "volumes": { "size": 1, "volumes_per_tenant": 5, } }, "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=None)
def test_setup(self, mock_cinder_scenario__create_volume): 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": mock.MagicMock() }) self.context.update({ "config": { "users": { "tenants": 2, "users_per_tenant": 5, "concurrent": 10, }, "volumes": { "size": 1, "volumes_per_tenant": volumes_per_tenant, } }, "admin": { "credential": mock.MagicMock() }, "users": users, "tenants": tenants }) new_context = copy.deepcopy(self.context) for id_ in tenants.keys(): new_context["tenants"][id_].setdefault("volumes", []) for i in range(volumes_per_tenant): new_context["tenants"][id_]["volumes"].append({"id": "uuid"}) volumes_ctx = volumes.VolumeGenerator(self.context) volumes_ctx.setup() self.assertEqual(new_context, self.context)