Rally v0.8.0


Release date 1/25/2017



We switched to use bindep library for checking required system packages. All our dependencies moved to separate file (like requirements.txt for python packages) bindep.txt.



Database schema is changed, you must run rally-manage db upgrade to be able to use old Rally installation with latest release.

  • change structure of database to be more flexible
  • save raw task results in chunks (see raw_result_chunk_size option of [DEFAULT] rally configuration section)
  • add db revision check in rally API, so it is impossible to use rally with wrong db now.

Rally API

Single entry point for Rally API is added - rally.api.API . Old API classes (rally.api.Task, rally.api.Verification, rally.api.Deployment) are deprecated now.

Rally CLI

  • rally task sla_check is deprecated now in favor of rally task sla-check
  • Deprecated category rally show was removed.
  • rally plugin list is extended with plugin base column

Task Component

  • [Random names] scenario for checking performance of generate_random_name method is added to our CI with proper SLA. Be sure, whatever number of random names you need, it will not affect performance of Rally at all, we checked.
  • [atomic actions] scenario for checking performance of calculating atomic actions is added to our CI with proper SLA. Be sure, whatever number atomics you have in scenarios, it will not affect performance of Rally at all, we checked.
  • [services] new entity is introduced for helping to provide compatibility layer between different API versions of one service.

Verification component

We completely redesign the whole Verification component. For more details see our new docs for that component

Unfortunately, such big change could not be done in backward compatible way, so old code is not compatible with new one. See HowTo migrate from Verification component 0.7.0 to 0.8.0



  • Glance:

    Switched from V1 to V2 API by default.

  • Keystone:

  • Transmit endpoint_type to keystoneclient
  • Full keystone V3 support


  • Updated:
  • NEW!!:


  • NEW!!:


  • Updated:
  • RPS runner is extended with ability to increase 'rps' value by arithmetic progression across certain duration. Now it can be also a dict specifying progression parameters:

    rps": {
        "start": 1,
        "end": 10,
        "step": 1,
        "duration": 2

    This will generate rps value: start, start + step, start + 2 * step, .., end across certain 'duration' seconds each step. If iteration count not ended at the last step of progression, then rps will continue to generate with "end" value. Note that the last rps could be generated smaller.

Fixed bugs

  • [hooks] incorrect encoding of stdout/stderr streams opened by sys_call hook for py3

  • [hooks] sorting Hook column at HTML report doesn't work

  • [tasks][scenarios][neutron] L3 HA: Unable to complete operation on subnet

    Launchpad bug-report #1562878

  • [tasks] JSON report doesn't save order of atomics

  • [tasks][cleanup][nova] Failed to remove aggregate which has hosts in it

  • [tasks] --abort-on-sla-failure mechanism works only for current workload, but does not stop the next ones.

  • [hooks] hooks section isn't displayed in HTML report


2 Everybody!