{"id":13617009,"url":"https://github.com/openstack/rally","last_synced_at":"2026-04-09T00:02:07.700Z","repository":{"id":10470251,"uuid":"12645326","full_name":"openstack/rally","owner":"openstack","description":"Rally provides a framework for performance analysis and benchmarking of individual OpenStack components as well as full production OpenStack cloud deployments. Mirror of code maintained at opendev.org.","archived":false,"fork":false,"pushed_at":"2026-01-25T09:17:14.000Z","size":24915,"stargazers_count":338,"open_issues_count":0,"forks_count":276,"subscribers_count":65,"default_branch":"master","last_synced_at":"2026-02-13T07:50:13.499Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://opendev.org/openstack/rally","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openstack.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2013-09-06T13:58:01.000Z","updated_at":"2026-02-07T07:07:08.000Z","dependencies_parsed_at":"2023-02-16T20:46:04.519Z","dependency_job_id":"371e8ae0-1d3c-4b62-8edd-660f9e56278f","html_url":"https://github.com/openstack/rally","commit_stats":null,"previous_names":[],"tags_count":50,"template":false,"template_full_name":null,"purl":"pkg:github/openstack/rally","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Frally","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Frally/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Frally/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Frally/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openstack","download_url":"https://codeload.github.com/openstack/rally/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openstack%2Frally/sbom","scorecard":{"id":549623,"data":{"date":"2025-08-11","repo":{"name":"github.com/openstack/rally","commit":"6565717213fa7b87f383872d5d639b4d87c5faf2"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.4,"checks":[{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":7,"reason":"9 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 7","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":-1,"reason":"no workflows found","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":-1,"reason":"No tokens found","details":null,"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: Apache License 2.0: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: containerImage not pinned by hash: Dockerfile:1: pin your Docker image by updating python:3.11-slim to python:3.11-slim@sha256:9e885f8239c31f8429448f933638dd13037c9119e2a362aeebdd37ec3bee7c85","Warn: pipCommand not pinned by hash: Dockerfile:14-18","Warn: pipCommand not pinned by hash: Dockerfile:14-18","Info:   0 out of   1 containerImage dependencies pinned","Info:   0 out of   2 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":0,"reason":"25 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: PYSEC-2019-217 / GHSA-462w-v97r-4m45","Warn: Project is vulnerable to: PYSEC-2014-8 / GHSA-8r7q-cvjq-x353","Warn: Project is vulnerable to: GHSA-cpwx-vrp4-4pq7","Warn: Project is vulnerable to: PYSEC-2014-82 / GHSA-fqh9-2qgg-h84h","Warn: Project is vulnerable to: PYSEC-2021-66 / GHSA-g3rq-g295-4j3m","Warn: Project is vulnerable to: GHSA-h5c8-rqwp-cp95","Warn: Project is vulnerable to: GHSA-h75v-3vvj-5mfj","Warn: Project is vulnerable to: PYSEC-2019-220 / GHSA-hj2j-77xm-mc5v","Warn: Project is vulnerable to: GHSA-q2x7-8rv6-6q7h","Warn: Project is vulnerable to: PYSEC-2018-19 / GHSA-232r-66cg-79px","Warn: Project is vulnerable to: PYSEC-2008-8 / GHSA-wqmm-q65g-2hqr","Warn: Project is vulnerable to: PYSEC-2022-166","Warn: Project is vulnerable to: PYSEC-2018-24 / GHSA-2rcm-phc9-3945","Warn: Project is vulnerable to: PYSEC-2013-31 / GHSA-6748-36qp-fx6r","Warn: Project is vulnerable to: PYSEC-2018-23 / GHSA-p28m-34f6-967q","Warn: Project is vulnerable to: PYSEC-2021-142 / GHSA-8q59-q68h-6hv4","Warn: Project is vulnerable to: PYSEC-2018-49 / GHSA-rprw-h62v-c2w7","Warn: Project is vulnerable to: PYSEC-2014-14 / GHSA-652x-xj99-gmcc","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-9wx4-h78v-vm56","Warn: Project is vulnerable to: PYSEC-2014-13 / GHSA-cfj3-7x9c-4p3h","Warn: Project is vulnerable to: PYSEC-2018-28 / GHSA-x84v-xcm2-53pg","Warn: Project is vulnerable to: PYSEC-2011-23 / GHSA-3jhc-wjqf-5f2c","Warn: Project is vulnerable to: PYSEC-2024-187 / GHSA-rqc4-2hc7-8c8v","Warn: Project is vulnerable to: PYSEC-2023-117 / GHSA-mrwq-x4v8-fh7p"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-20T10:26:52.113Z","repository_id":10470251,"created_at":"2025-08-20T10:26:52.113Z","updated_at":"2025-08-20T10:26:52.113Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31579058,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"ssl_error","status_checked_at":"2026-04-08T14:31:17.202Z","response_time":54,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T20:01:35.850Z","updated_at":"2026-04-09T00:02:07.582Z","avatar_url":"https://github.com/openstack.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"=====\nRally\n=====\n\nRally is tool \u0026 framework that allows one to write simple plugins and combine\nthem in complex tests scenarios that allows to perform all kinds of testing!\n\nTeam and repository tags\n========================\n\n.. image:: https://governance.openstack.org/tc/badges/rally.svg\n    :target: https://governance.openstack.org/tc/reference/tags/index.html\n\n.. image:: https://img.shields.io/pypi/v/rally.svg\n    :target: https://pypi.org/project/rally/\n    :alt: Latest Version\n\n.. image:: https://img.shields.io/badge/gitter-join_chat-ff69b4.svg\n    :target: https://gitter.im/rally-dev/Lobby\n    :alt: Gitter Chat\n\n.. image:: https://img.shields.io/badge/tasks-trello_board-blue.svg\n    :target: https://trello.com/b/DoD8aeZy/rally\n    :alt: Trello Board\n\n.. image:: https://img.shields.io/github/license/openstack/rally.svg\n    :target: https://www.apache.org/licenses/LICENSE-2.0\n    :alt: Apache License, Version 2.0\n\n\nWhat is Rally\n=============\n\nRally is intended to provide a testing framework that is\ncapable to perform **specific**, **complicated** and **reproducible**\ntest cases on **real deployment** scenarios.\n\n**Rally** workflow can be visualized by the following diagram:\n\n.. image:: doc/source/images/Rally-Actions.png\n   :alt: Rally Architecture\n\n\nWho Is Using Rally\n==================\n\n.. image:: doc/source/images/Rally_who_is_using.png\n   :alt: Who is Using Rally\n\n\nDocumentation\n=============\n\n`Rally documentation on ReadTheDocs \u003chttps://rally.readthedocs.org/en/latest/\u003e`_\nis a perfect place to start learning about Rally. It provides you with an\n**easy** and **illustrative** guidance through this benchmarking tool.\n\nFor example, check out the `Rally step-by-step tutorial\n\u003chttps://rally.readthedocs.io/en/latest/quick_start/tutorial.html\u003e`_ that\nexplains, in a series of lessons, how to explore the power of Rally in\nbenchmarking your OpenStack clouds.\n\nArchitecture\n------------\n\nIn terms of software architecture, Rally is built of 4 main components:\n\n1. **Environment** - one of key component in Rally. It manages and stores\n   information about tested platforms. Env manager is using platform plugins\n   to: create, delete, cleanup, check health, obtain information about\n   platforms.\n2. **Task** component is responsible for executing tests defined in\n   task specs, persisting and reporting results.\n3. **Verification** component allows to wrap subunit-based testing tools and\n   provide complete tool on top of them with allow to do pre configuration,\n   post cleanup as well process and persist results to Rally DB for future use\n   like reporting and results comparing.\n\nUse Cases\n---------\n\nThere are 3 major high level Rally Use Cases:\n\n.. image:: doc/source/images/Rally-UseCases.png\n   :alt: Rally Use Cases\n\n\nTypical cases where Rally aims to help are:\n\n- Automate measuring \u0026 profiling focused on how new code changes affect the\n  OpenStack performance;\n- Using Rally profiler to detect scaling \u0026 performance issues;\n- Investigate how different deployments affect the OS performance:\n\n    - Find the set of suitable OpenStack deployment architectures;\n    - Create deployment specifications for different loads (amount of\n      controllers, swift nodes, etc.);\n- Automate the search for hardware best suited for particular OpenStack cloud;\n- Automate the production cloud specification generation:\n\n    - Determine terminal loads for basic cloud operations: VM start \u0026 stop,\n      Block Device create/destroy \u0026 various OpenStack API methods;\n    - Check performance of basic cloud operations in case of different loads.\n\nLinks\n-----\n\n* Free software: Apache license\n* Documentation: https://rally.readthedocs.org/en/latest/\n* Source: https://opendev.org/openstack/rally\n* Bugs: https://bugs.launchpad.net/rally\n* Step-by-step tutorial: https://rally.readthedocs.io/en/latest/quick_start/tutorial.html\n* Launchpad page: https://launchpad.net/rally\n* Gitter chat: https://gitter.im/rally-dev/Lobby\n* Trello board: https://trello.com/b/DoD8aeZy/rally\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Frally","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenstack%2Frally","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenstack%2Frally/lists"}