Rally v0.0.2 Information ----------- +------------------+-----------------+ | Commits | **100** | +------------------+-----------------+ | Bug fixes | **18** | +------------------+-----------------+ | Dev cycle | **45 days** | +------------------+-----------------+ | Release date | **12/Mar/2015** | +------------------+-----------------+ Details ------- This release contains new features, new benchmark plugins, bug fixes, various code and API improvements. New Features ~~~~~~~~~~~~ * rally task start **--abort-on-sla-failure** Stopping load before things go wrong. Load generation will be interrupted if SLA criteria stop passing. * Rally verify command supports multiple Tempest sources now. * python34 support * postgres DB backend support API changes ~~~~~~~~~~~ * [new] **rally [deployment | verify | task] use** subcommand It should be used instead of root command **rally use** * [new] Rally as a Lib API To avoid code duplication between Rally as CLI tool and Rally as a Service we decide to make Rally as a Lib as a common part between these 2 modes. Rally as a Service will be a daemon that just maps HTTP request to Rally as a Lib API. * [deprecated] **rally use** CLI command * [deprecated] Old Rally as a Lib API Old Rally API was quite mixed up so we decide to deprecate it Plugins ~~~~~~~ * **Benchmark Scenario Runners**: [improved] Improved algorithm of generation load in **constant runner** Before we used processes to generate load, now it creates pool of processes (amount of processes is equal to CPU count) after that in each process use threads to generate load. So now you can easily generate load of 1k concurrent scenarios. [improved] Unify code of **constant** and **rps** runners [interface] Added **abort()** to runner's plugin interface New method **abort()** is used to immediately interrupt execution. * **Benchmark Scenarios**: [new] DesignateBasic.create_and_delete_server [new] DesignateBasic.create_and_list_servers [new] DesignateBasic.list_servers [new] MistralWorkbooks.list_workbooks [new] MistralWorkbooks.create_workbook [new] Quotas.neutron_update [new] HeatStacks.create_update_delete_stack [new] HeatStacks.list_stacks_and_resources [new] HeatStacks.create_suspend_resume_delete_stac [new] HeatStacks.create_check_delete_stack [new] NeutronNetworks.create_and_delete_routers [new] NovaKeypair.create_and_delete_keypair [new] NovaKeypair.create_and_list_keypairs [new] NovaKeypair.boot_and_delete_server_with_keypair [new] NovaServers.boot_server_from_volume_and_live_migrate [new] NovaServers.boot_server_attach_created_volume_and_live_migrate [new] CinderVolumes.create_and_upload_volume_to_image [fix] CinderVolumes.create_and_attach_volume Pass optional \*\*kwargs only to create server command [fix] GlanceImages.create_image_and_boot_instances Pass optional \*\*kwargs only to create server command [fix] TempestScenario.\* removed stress cleanup. Major issue is that tempest stress cleanup cleans whole OpenStack. This is very dangerous, so it's better to remove it and leave some extra resources. [improved] NovaSecGroup.boot_and_delete_server_with_secgroups Add optional \*\*kwargs that are passed to boot server comment * **Benchmark Context**: [new] **stacks** Generates passed amount of heat stacks for all tenants. [new] **custom_image** Prepares images for benchmarks in VMs. To Support generating workloads in VMs by existing tools like: IPerf, Blogbench, HPCC and others we have to have prepared images, with already installed and configured tools. Rally team decide to generate such images on fly from passed to avoid requirements of having big repository with a lot of images. This context is abstract context that allows to automate next steps: 1) runs VM with passed image (with floating ip and other stuff) 2) execute abstract method that has access to VM 3) snapshot this image In future we are going to use this as a base for making context that prepares images. [improved] **allow_ssh** Automatically disable it if security group are disabled in neutron. [improved] **keypair** Key pairs are stored in "users" space it means that accessing keypair from scenario is simpler now: self.context["user"]["keypair"]["private"] [fix] **users** Pass proper EndpointType for newly created users [fix] **sahara_edp** The Job Binaries data should be treated as a binary content * **Benchmark SLA**: [interface] SLA calculations is done in additive way now Resolves scale issues, because now we don't need to have whole array of iterations in memory to process SLA. This is required to implement **--abort-on-sla-failure** feature [all] SLA plugins were rewritten to implement new interface Bug fixes ~~~~~~~~~ **18 bugs were fixed, the most critical are**: * Fix **rally task detailed --iterations-data** It didn't work in case of missing atomic actions. Such situation can occur if scenario method raises exceptions * Add user-friendly message if the task cannot be deleted In case of trying to delete task that is not in "finished" status users get traces instead of user-friendly message try to run it with --force key. * Network context cleanups networks properly now Documentation ~~~~~~~~~~~~~ * Image sizes are fixed * New tutorial in "Step by Step" relate to **--abort-on-sla-failure** * Various fixes