)]}'
{"doc/source/plugins.rst":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e8fb0838d257a1ab120bfbf0a325114a875f114e","unresolved":false,"context_lines":[{"line_number":32,"context_line":"----------------"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"Rally provides an opportunity to create and use a **custom benchmark"},{"line_number":35,"context_line":"scenario, runner, SLA, deployment or context** as a **plugin**:"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":".. image:: ./images/Rally-Plugins.png"},{"line_number":38,"context_line":"   :align: center"}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aed3d3a_ec6f6490","line":35,"updated":"2016-02-26 13:18:46.000000000","message":"Just to note: we also have output charts plugins, but I doubt if we should mention this because this fact is almost not documented in other parts of documentation.\n\nHowever output charts are actually pluggable:\n\n https://github.com/openstack/rally/blob/master/rally/task/processing/plot.py#L61\n https://github.com/openstack/rally/blob/master/rally/task/processing/charts.py#L29","commit_id":"f17df8691c56a63f0054e81e5517f983a5ef8a98"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e8fb0838d257a1ab120bfbf0a325114a875f114e","unresolved":false,"context_lines":[{"line_number":63,"context_line":"How to create plugin"},{"line_number":64,"context_line":"--------------------"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"To create you own plugin you need to inherit you plugin class from"},{"line_number":67,"context_line":"plugin.Plugin class or it\u0027s subclasses. Also you need to decorate you class"},{"line_number":68,"context_line":"with ``rally.task.scenario.configure``"},{"line_number":69,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aed3d3a_8cd33838","line":66,"updated":"2016-02-26 13:18:46.000000000","message":"s/you/your/","commit_id":"f17df8691c56a63f0054e81e5517f983a5ef8a98"},{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e8fb0838d257a1ab120bfbf0a325114a875f114e","unresolved":false,"context_lines":[{"line_number":72,"context_line":"    from rally.task import scenario"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"    @scenario.configure(name\u003d\"my_new_plugin_name\")"},{"line_number":75,"context_line":"    class MyNewPluginClass(plugin.Plugin):"},{"line_number":76,"context_line":"        pass"},{"line_number":77,"context_line":""},{"line_number":78,"context_line":""}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aed3d3a_cc99c070","line":75,"updated":"2016-02-26 13:18:46.000000000","message":"Let\u0027s not repeat \"Class\" in plugin name","commit_id":"f17df8691c56a63f0054e81e5517f983a5ef8a98"},{"author":{"_account_id":9545,"name":"Andriy Kurilin","email":"andr.kurilin@gmail.com","username":"akurilin"},"change_message_id":"bb2e7a2071f54551941cedfb5077d1f68810599a","unresolved":false,"context_lines":[{"line_number":65,"context_line":""},{"line_number":66,"context_line":"To create your own plugin you need to inherit your plugin class from"},{"line_number":67,"context_line":"plugin.Plugin class or it\u0027s subclasses. Also you need to decorate your class"},{"line_number":68,"context_line":"with ``rally.task.scenario.configure``"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":".. code-block:: python"},{"line_number":71,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"9aed3d3a_05a41ba4","line":68,"range":{"start_line":68,"start_character":6,"end_line":68,"end_character":37},"updated":"2016-02-26 13:53:20.000000000","message":"it is a scenario related decorator, it can include some extra arguments. \nhttps://github.com/openstack/rally/blob/master/rally/common/plugin/plugin.py#L37 is original decorator.","commit_id":"8599237d61b954a31f77ea011a31985451e309f6"}],"doc/source/plugins/scenario_plugin.rst":[{"author":{"_account_id":10475,"name":"Alexander Maretskiy","email":"amaretskiy@mirantis.com","username":"maretskiy"},"change_message_id":"e8fb0838d257a1ab120bfbf0a325114a875f114e","unresolved":false,"context_lines":[{"line_number":16,"context_line":".. _plugins_scenario_plugin:"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Benchmark scenario as a plugin"},{"line_number":20,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Let\u0027s create as a plugin a simple scenario which list flavors."}],"source_content_type":"text/x-rst","patch_set":4,"id":"9aed3d3a_4c82d095","line":19,"updated":"2016-02-26 13:18:46.000000000","message":"Maybe get rid of \"Benchmark\" ?","commit_id":"f17df8691c56a63f0054e81e5517f983a5ef8a98"}]}
