def setup(self): image_url = self.config["image_url"] image_type = self.config["image_type"] image_container = self.config["image_container"] images_per_tenant = self.config["images_per_tenant"] image_name = self.config.get("image_name") for user, tenant_id in rutils.iterate_per_tenants( self.context["users"]): current_images = [] glance_scenario = glance_utils.GlanceScenario({ "user": user, "task": self.context["task"] }) for i in range(images_per_tenant): if image_name and i > 0: cur_name = image_name + str(i) elif image_name: cur_name = image_name else: cur_name = None image = glance_scenario._create_image( image_container, image_url, image_type, name=cur_name, min_ram=self.config.get("min_ram", 0), min_disk=self.config.get("min_disk", 0)) current_images.append(image.id) self.context["tenants"][tenant_id]["images"] = current_images
def setup(self): image_url = self.config["image_url"] image_type = self.config["image_type"] image_container = self.config["image_container"] images_per_tenant = self.config["images_per_tenant"] image_name = self.config.get("image_name") for user, tenant_id in rutils.iterate_per_tenants( self.context["users"]): current_images = [] clients = osclients.Clients(user["endpoint"]) glance_scenario = glance_utils.GlanceScenario(clients=clients) for i in range(images_per_tenant): if image_name and i > 0: cur_name = image_name + str(i) elif image_name: cur_name = image_name else: cur_name = None image = glance_scenario._create_image( image_container, image_url, image_type, name=cur_name, prefix="rally_ctx_image_", min_ram=self.config.get("min_ram", 0), min_disk=self.config.get("min_disk", 0)) current_images.append(image.id) self.context["tenants"][tenant_id]["images"] = current_images
def test_delete_image(self, mock_wrap): scenario = utils.GlanceScenario(context=self.context, clients=self.scenario_clients) scenario._delete_image(self.image) mock_wrap.assert_called_once_with(scenario._clients.glance, scenario) mock_wrap.return_value.delete_image.assert_called_once_with(self.image) self._test_atomic_action_timer(scenario.atomic_actions(), "glance.delete_image")
def test_list_images(self): scenario = utils.GlanceScenario(context=self.context) return_images_list = scenario._list_images() self.clients("glance").images.list.assert_called_once_with() self.assertEqual(list(self.clients("glance").images.list.return_value), return_images_list) self._test_atomic_action_timer(scenario.atomic_actions(), "glance.list_images")
def test_delete_image(self): scenario = utils.GlanceScenario() scenario._delete_image(self.image) self.image.delete.assert_called_once_with() self.wait_for_delete.mock.assert_called_once_with( self.image, update_resource=self.gfm(), check_interval=1, timeout=120) self._test_atomic_action_timer(scenario.atomic_actions(), "glance.delete_image")
def test_delete_image(self): scenario = utils.GlanceScenario(context=self.context) scenario._delete_image(self.image) self.image.delete.assert_called_once_with() self.mock_wait_for_delete.mock.assert_called_once_with( self.image, update_resource=self.mock_get_from_manager.mock.return_value, check_interval=CONF.benchmark.glance_image_delete_poll_interval, timeout=CONF.benchmark.glance_image_delete_timeout) self.mock_get_from_manager.mock.assert_called_once_with() self._test_atomic_action_timer(scenario.atomic_actions(), "glance.delete_image")
def _create_image(self, hadoop_version, image_url, plugin_name, user, user_name): scenario = glance_utils.GlanceScenario({"user": user}) image_name = rutils.generate_random_name(prefix="rally_sahara_image_") image = scenario._create_image(name=image_name, container_format="bare", image_location=image_url, disk_format="qcow2") scenario.clients("sahara").images.update_image( image_id=image.id, user_name=user_name, desc="") scenario.clients("sahara").images.update_tags( image_id=image.id, new_tags=[plugin_name, hadoop_version]) return image.id
def test_delete_image(self, mock_wrap): deleted_image = mock.Mock(status="DELETED") wrapper = mock_wrap.return_value wrapper.get_image.side_effect = [self.image, deleted_image] scenario = utils.GlanceScenario(context=self.context, clients=self.scenario_clients) scenario._delete_image(self.image) self.clients("glance").images.delete.assert_called_once_with( self.image.id) mock_wrap.assert_called_once_with(scenario._clients.glance, scenario) self._test_atomic_action_timer(scenario.atomic_actions(), "glance.delete_image")
def test_create_image_with_location(self): self.clients("glance").images.create.return_value = self.image scenario = utils.GlanceScenario() return_image = scenario._create_image("container_format", "image_location", "disk_format") self.wait_for.mock.assert_called_once_with(self.image, update_resource=self.gfm(), is_ready=self.res_is.mock(), check_interval=1, timeout=120) self.res_is.mock.assert_has_calls([mock.call("active")]) self.assertEqual(self.wait_for.mock(), return_image) self._test_atomic_action_timer(scenario.atomic_actions(), "glance.create_image")
def test_create_image_with_location(self): self.clients("glance").images.create.return_value = self.image scenario = utils.GlanceScenario(context=self.context) return_image = scenario._create_image("container_format", "image_location", "disk_format") self.mock_wait_for.mock.assert_called_once_with( self.image, update_resource=self.mock_get_from_manager.mock.return_value, ready_statuses=["active"], check_interval=CONF.benchmark.glance_image_create_poll_interval, timeout=CONF.benchmark.glance_image_create_timeout) self.mock_get_from_manager.mock.assert_called_once_with() self.assertEqual(self.mock_wait_for.mock.return_value, return_image) self._test_atomic_action_timer(scenario.atomic_actions(), "glance.create_image")
def setUp(self): super(GlanceScenarioTestCase, self).setUp() self.image = mock.Mock() self.image1 = mock.Mock() self.res_is = mockpatch.Patch(BM_UTILS + ".resource_is") self.get_fm = mockpatch.Patch(BM_UTILS + ".get_from_manager") self.wait_for = mockpatch.Patch(GLANCE_UTILS + ".bench_utils.wait_for") self.wait_for_delete = mockpatch.Patch( GLANCE_UTILS + ".bench_utils.wait_for_delete") self.useFixture(self.wait_for) self.useFixture(self.wait_for_delete) self.useFixture(self.res_is) self.useFixture(self.get_fm) self.gfm = self.get_fm.mock self.useFixture(mockpatch.Patch("time.sleep")) self.scenario = utils.GlanceScenario()
def test_create_image(self, mock_wrap): image_location = tempfile.NamedTemporaryFile() mock_wrap.return_value.create_image.return_value = self.image scenario = utils.GlanceScenario(context=self.context, clients=self.scenario_clients) return_image = scenario._create_image("container_format", image_location.name, "disk_format", fakearg="fakearg") self.assertEqual(self.image, return_image) mock_wrap.assert_called_once_with(scenario._clients.glance, scenario) mock_wrap.return_value.create_image.assert_called_once_with( "container_format", image_location.name, "disk_format", fakearg="fakearg") self._test_atomic_action_timer(scenario.atomic_actions(), "glance.create_image")
def setup(self): image_url = self.config["image_url"] image_type = self.config["image_type"] image_container = self.config["image_container"] images_per_tenant = self.config["images_per_tenant"] image_name = self.config.get("image_name") for user, tenant_id in rutils.iterate_per_tenants( self.context["users"]): current_images = [] glance_scenario = glance_utils.GlanceScenario({ "user": user, "task": self.context["task"], "config": self.context["config"] }) kwargs = self.config.get("image_args", {}) if self.config.get("min_ram") is not None: LOG.warning("The 'min_ram' argument is deprecated; specify " "arbitrary arguments with 'image_args' instead") kwargs["min_ram"] = self.config["min_ram"] if self.config.get("min_disk") is not None: LOG.warning("The 'min_disk' argument is deprecated; specify " "arbitrary arguments with 'image_args' instead") kwargs["min_disk"] = self.config["min_disk"] for i in range(images_per_tenant): if image_name and i > 0: cur_name = image_name + str(i) elif image_name: cur_name = image_name else: cur_name = None image = glance_scenario._create_image(image_container, image_url, image_type, name=cur_name, **kwargs) current_images.append(image.id) self.context["tenants"][tenant_id]["images"] = current_images
def test_create_image(self): image_location = tempfile.NamedTemporaryFile() self.clients("glance").images.create.return_value = self.image scenario = utils.GlanceScenario(context=self.context) return_image = scenario._create_image("container_format", image_location.name, "disk_format") self.mock_wait_for.mock.assert_called_once_with( self.image, update_resource=self.mock_get_from_manager.mock.return_value, is_ready=self.mock_resource_is.mock.return_value, check_interval=CONF.benchmark.glance_image_create_poll_interval, timeout=CONF.benchmark.glance_image_create_timeout) self.mock_resource_is.mock.assert_called_once_with("active") self.mock_get_from_manager.mock.assert_called_once_with() self.assertEqual(self.mock_wait_for.mock.return_value, return_image) self._test_atomic_action_timer(scenario.atomic_actions(), "glance.create_image")
def test_create_image(self, create_args, mock_wrap): image_location = tempfile.NamedTemporaryFile() mock_wrap.return_value.create_image.return_value = self.image scenario = utils.GlanceScenario(context=self.context, clients=self.scenario_clients) scenario.generate_random_name = mock.Mock() return_image = scenario._create_image("container_format", image_location.name, "disk_format", **create_args) expected_args = dict(create_args) if not expected_args.get("name"): expected_args["name"] = scenario.generate_random_name.return_value self.assertEqual(self.image, return_image) mock_wrap.assert_called_once_with(scenario._clients.glance, scenario) mock_wrap.return_value.create_image.assert_called_once_with( "container_format", image_location.name, "disk_format", **expected_args) self._test_atomic_action_timer(scenario.atomic_actions(), "glance.create_image")