)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":13555,"name":"Pradeep K Surisetty","username":"pradeepkumars","inactive":true},"change_message_id":"0b1c0e23e27c35ebd4d67b63e2e9cab515c90809","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Cinder restore_volume_backup scenario"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implemented restore_volume_backup scenario for Cinder."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ieeaf36e14454b18497c1b8730c5d3b5e167d98ee"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"7aaa499b_fd19677a","line":9,"updated":"2015-04-14 16:35:43.000000000","message":"s/Implement","commit_id":"6c5d4f0062ff40c69bd65bd60f15352e338578b2"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29989f93b70d0954e0ab37529fadefa17e314096","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Cinder restore_volume_backup scenario"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implemented restore_volume_backup scenario for Cinder."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ieeaf36e14454b18497c1b8730c5d3b5e167d98ee"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"7a016987_55e95ae5","line":9,"updated":"2015-05-16 23:56:35.000000000","message":"Add restore_volume_backup scenario for Cinder. It restore volume from backup. Also add restore_backup method to utils.","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fa59bc31b42f3a9aabad6a8cb1fb6f67c75751bd","unresolved":false,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add Cinder create_and_restore_volume_backup scenario"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Implemented crete_and_restore_volume_backup scenario for Cinder."},{"line_number":10,"context_line":""},{"line_number":11,"context_line":"Change-Id: Ieeaf36e14454b18497c1b8730c5d3b5e167d98ee"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":7,"id":"7a016987_c9c48360","line":9,"updated":"2015-05-18 12:31:38.000000000","message":"Just \"Implement\". Log message is to describe what changes the commit introduces.","commit_id":"41d7302d7d432d5f59cf467c3404c176938fe393"}],"rally-jobs/rally-mos_neutron.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"152041bb4c32f57fc86ddc2a4711c810cca61799","unresolved":false,"context_lines":[{"line_number":307,"context_line":"          tenants: 1"},{"line_number":308,"context_line":"          users_per_tenant: 1"},{"line_number":309,"context_line":"        roles:"},{"line_number":310,"context_line":"          - \"Member\""},{"line_number":311,"context_line":"      sla:"},{"line_number":312,"context_line":"        failure_rate:"},{"line_number":313,"context_line":"          max: 0"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5aa745d1_17ed598b","line":310,"updated":"2015-04-16 11:19:44.000000000","message":"Member role is granted to all users by default","commit_id":"5a92d6775c1f27f23e647861d6e9e2f883b8c969"}],"rally-jobs/rally-neutron.yaml":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"152041bb4c32f57fc86ddc2a4711c810cca61799","unresolved":false,"context_lines":[{"line_number":750,"context_line":"          tenants: 1"},{"line_number":751,"context_line":"          users_per_tenant: 1"},{"line_number":752,"context_line":"        roles:"},{"line_number":753,"context_line":"          - \"Member\""},{"line_number":754,"context_line":"      sla:"},{"line_number":755,"context_line":"        failure_rate:"},{"line_number":756,"context_line":"          max: 0"}],"source_content_type":"text/x-yaml","patch_set":5,"id":"5aa745d1_97e2899e","line":753,"updated":"2015-04-16 11:19:44.000000000","message":"Member role is granted to all users by default.","commit_id":"5a92d6775c1f27f23e647861d6e9e2f883b8c969"}],"rally/benchmark/scenarios/cinder/utils.py":[{"author":{"_account_id":13555,"name":"Pradeep K Surisetty","username":"pradeepkumars","inactive":true},"change_message_id":"0b1c0e23e27c35ebd4d67b63e2e9cab515c90809","unresolved":false,"context_lines":[{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @base.atomic_action_timer(\"cinder.restore_backup\")"},{"line_number":246,"context_line":"    def _restore_backup(self, backup_id, volume_id\u003dNone):"},{"line_number":247,"context_line":"        \"\"\"Restore the given backup."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        :param backup_id: The ID of the backup to restore."},{"line_number":250,"context_line":"        :param volume_id: The ID of the volume to restore the backup to."}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_1d3653e6","line":247,"updated":"2015-04-14 16:35:43.000000000","message":"s/Restore the cinder volume backup","commit_id":"6c5d4f0062ff40c69bd65bd60f15352e338578b2"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"b6b0fc42b8ba9b20d721eb3629c07d23c6a2de02","unresolved":false,"context_lines":[{"line_number":244,"context_line":""},{"line_number":245,"context_line":"    @base.atomic_action_timer(\"cinder.restore_backup\")"},{"line_number":246,"context_line":"    def _restore_backup(self, backup_id, volume_id\u003dNone):"},{"line_number":247,"context_line":"        \"\"\"Restore the given backup."},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        :param backup_id: The ID of the backup to restore."},{"line_number":250,"context_line":"        :param volume_id: The ID of the volume to restore the backup to."}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_c0935e4e","line":247,"in_reply_to":"7aaa499b_1d3653e6","updated":"2015-04-14 17:07:58.000000000","message":"All these scenarios in this module are written for Cinder","commit_id":"6c5d4f0062ff40c69bd65bd60f15352e338578b2"}],"rally/benchmark/scenarios/cinder/volumes.py":[{"author":{"_account_id":13555,"name":"Pradeep K Surisetty","username":"pradeepkumars","inactive":true},"change_message_id":"0b1c0e23e27c35ebd4d67b63e2e9cab515c90809","unresolved":false,"context_lines":[{"line_number":423,"context_line":"        volume \u003d self._create_volume(size, **kwargs)"},{"line_number":424,"context_line":"        backup \u003d self._create_backup(volume.id, **kwargs)"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"        self.sleep_between(min_sleep, max_sleep)"},{"line_number":427,"context_line":"        self._delete_volume(volume)"},{"line_number":428,"context_line":"        self._restore_backup(backup.id, volume_id\u003dNone)"}],"source_content_type":"text/x-python","patch_set":1,"id":"7aaa499b_3d3eafb8","line":426,"updated":"2015-04-14 16:35:43.000000000","message":"why sleep here?","commit_id":"6c5d4f0062ff40c69bd65bd60f15352e338578b2"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"f1bdb630836ad4aef62509f768baa88cd1726754","unresolved":false,"context_lines":[{"line_number":410,"context_line":"    @validation.required_services(consts.Service.CINDER)"},{"line_number":411,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":412,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"cinder\"]})"},{"line_number":413,"context_line":"    def restore_volume_backup(self, size, min_sleep\u003d0, max_sleep\u003d0, **kwargs):"},{"line_number":414,"context_line":"        \"\"\"Restore volume backup."},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"        :param size: volume size in GB"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_9ec0002c","line":413,"updated":"2015-04-15 10:49:49.000000000","message":"Why we don\u0027t have do_delete parameter?","commit_id":"6fba550520b94c560c7484ee16e071a025185f87"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"95ef0942bfaf8c655f7864b70145dcb0a408400b","unresolved":false,"context_lines":[{"line_number":410,"context_line":"    @validation.required_services(consts.Service.CINDER)"},{"line_number":411,"context_line":"    @validation.required_openstack(users\u003dTrue)"},{"line_number":412,"context_line":"    @base.scenario(context\u003d{\"cleanup\": [\"cinder\"]})"},{"line_number":413,"context_line":"    def restore_volume_backup(self, size, min_sleep\u003d0, max_sleep\u003d0, **kwargs):"},{"line_number":414,"context_line":"        \"\"\"Restore volume backup."},{"line_number":415,"context_line":""},{"line_number":416,"context_line":"        :param size: volume size in GB"}],"source_content_type":"text/x-python","patch_set":2,"id":"7aaa499b_de69e826","line":413,"in_reply_to":"7aaa499b_9ec0002c","updated":"2015-04-15 10:53:38.000000000","message":"Because we delete the volume created to backup and then restore.","commit_id":"6fba550520b94c560c7484ee16e071a025185f87"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29989f93b70d0954e0ab37529fadefa17e314096","unresolved":false,"context_lines":[{"line_number":440,"context_line":"        \"\"\"Restore volume backup."},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"        :param size: volume size in GB"},{"line_number":443,"context_line":"        :param do_delete: if True, a volume and a volume backup will"},{"line_number":444,"context_line":"                          be deleted after creation."},{"line_number":445,"context_line":"        :param kwargs: optional args to create a volume backup"},{"line_number":446,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f5b5e630","line":443,"updated":"2015-05-16 23:56:35.000000000","message":"if [its] True, the volume and the volume backup would be deleted","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"a3fb620401861208ab113284fb251862edab6729","unresolved":false,"context_lines":[{"line_number":440,"context_line":"        \"\"\"Restore volume backup."},{"line_number":441,"context_line":""},{"line_number":442,"context_line":"        :param size: volume size in GB"},{"line_number":443,"context_line":"        :param do_delete: if True, a volume and a volume backup will"},{"line_number":444,"context_line":"                          be deleted after creation."},{"line_number":445,"context_line":"        :param kwargs: optional args to create a volume backup"},{"line_number":446,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_db7a1bf1","line":443,"in_reply_to":"7a016987_f5b5e630","updated":"2015-05-17 10:19:28.000000000","message":"if + simple present , simple future.\ne.g. If you make a mistake, someone will let you know.","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29989f93b70d0954e0ab37529fadefa17e314096","unresolved":false,"context_lines":[{"line_number":444,"context_line":"                          be deleted after creation."},{"line_number":445,"context_line":"        :param kwargs: optional args to create a volume backup"},{"line_number":446,"context_line":"        \"\"\""},{"line_number":447,"context_line":"        volume \u003d self._create_volume(size, **kwargs)"},{"line_number":448,"context_line":"        backup \u003d self._create_backup(volume.id, **kwargs)"},{"line_number":449,"context_line":"        self._restore_backup(backup.id, volume_id\u003dNone)"},{"line_number":450,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_d5a2eaad","line":447,"updated":"2015-05-16 23:56:35.000000000","message":"https://github.com/openstack/rally/blob/master/rally/benchmark/context/volumes.py why you don\u0027t use volume context? Or rename this scenario.","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29989f93b70d0954e0ab37529fadefa17e314096","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        :param kwargs: optional args to create a volume backup"},{"line_number":446,"context_line":"        \"\"\""},{"line_number":447,"context_line":"        volume \u003d self._create_volume(size, **kwargs)"},{"line_number":448,"context_line":"        backup \u003d self._create_backup(volume.id, **kwargs)"},{"line_number":449,"context_line":"        self._restore_backup(backup.id, volume_id\u003dNone)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        if do_delete:"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f59ba670","line":448,"updated":"2015-05-16 23:56:35.000000000","message":"Is there any sence to create context for cinder backup?","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29989f93b70d0954e0ab37529fadefa17e314096","unresolved":false,"context_lines":[{"line_number":446,"context_line":"        \"\"\""},{"line_number":447,"context_line":"        volume \u003d self._create_volume(size, **kwargs)"},{"line_number":448,"context_line":"        backup \u003d self._create_backup(volume.id, **kwargs)"},{"line_number":449,"context_line":"        self._restore_backup(backup.id, volume_id\u003dNone)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        if do_delete:"},{"line_number":452,"context_line":"            self._delete_volume(volume)"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_7580d646","line":449,"updated":"2015-05-16 23:56:35.000000000","message":"We don\u0027t need to specify second parameter","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"}],"rally/plugins/openstack/scenarios/cinder/utils.py":[{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"92268e6443c416b9776f7b50c53ffa9accb3a790","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        :param volume_id: The ID of the volume to restore the backup to."},{"line_number":265,"context_line":"        \"\"\""},{"line_number":266,"context_line":"        restore \u003d self.clients(\"cinder\").restores.restore(backup_id, volume_id)"},{"line_number":267,"context_line":"        restore_volume \u003d self.clients(\"cinder\").volumes.get(restore.volume_id)"},{"line_number":268,"context_line":"        return bench_utils.wait_for("},{"line_number":269,"context_line":"            restore_volume,"},{"line_number":270,"context_line":"            is_ready\u003dbench_utils.resource_is(\"available\"),"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_a37b5b27","line":267,"updated":"2015-05-21 11:39:10.000000000","message":"s/restore_volume/restored_volume","commit_id":"9df1ca753bb7f2c1be3fe7093457aaf9ea448c9c"}],"rally/plugins/openstack/scenarios/cinder/volumes.py":[{"author":{"_account_id":8507,"name":"Mikhail Dubov","email":"mdubov@mirantis.com","username":"msdubov"},"change_message_id":"92268e6443c416b9776f7b50c53ffa9accb3a790","unresolved":false,"context_lines":[{"line_number":445,"context_line":"        :param kwargs: optional args to create a volume backup"},{"line_number":446,"context_line":"        \"\"\""},{"line_number":447,"context_line":"        volume \u003d self._create_volume(size, **kwargs)"},{"line_number":448,"context_line":"        backup \u003d self._create_backup(volume.id, **kwargs)"},{"line_number":449,"context_line":"        self._restore_backup(backup.id)"},{"line_number":450,"context_line":""},{"line_number":451,"context_line":"        if do_delete:"}],"source_content_type":"text/x-python","patch_set":9,"id":"7a016987_23bd2bb7","line":448,"updated":"2015-05-21 11:39:10.000000000","message":"The same kwargs should not be used in two methods. Please use two kwargs dictionaries instead, \u0027create_volume_kwargs\u0027 and \u0027create_backup_kwargs\u0027, like it has been done here:\n\nhttps://github.com/openstack/rally/blob/master/rally/benchmark/scenarios/nova/servers.py#L505-L506","commit_id":"9df1ca753bb7f2c1be3fe7093457aaf9ea448c9c"},{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"c48c7042e7f36bf1f8f179a888546e900596cd44","unresolved":false,"context_lines":[{"line_number":447,"context_line":"        :param create_volume_kwargs: optional args to create a volume"},{"line_number":448,"context_line":"        :param create_backup_kwargs: optional args to create a volume backup"},{"line_number":449,"context_line":"        \"\"\""},{"line_number":450,"context_line":"        if create_volume_kwargs is None:"},{"line_number":451,"context_line":"            create_volume_kwargs \u003d {}"},{"line_number":452,"context_line":"        if create_backup_kwargs is None:"},{"line_number":453,"context_line":"            create_backup_kwargs \u003d {}"}],"source_content_type":"text/x-python","patch_set":10,"id":"7a016987_94c5b43e","line":450,"updated":"2015-05-27 10:48:23.000000000","message":"nit:\ncreate_backup_kwargs \u003d create_backup_kwargs or {}","commit_id":"b0c9eb1f864616b8a4052f60e33dba9a726bbce0"}],"tests/unit/benchmark/scenarios/cinder/test_utils.py":[{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fa59bc31b42f3a9aabad6a8cb1fb6f67c75751bd","unresolved":false,"context_lines":[{"line_number":241,"context_line":"    def test__restore_backup(self, mock_clients):"},{"line_number":242,"context_line":"        backup \u003d mock.Mock()"},{"line_number":243,"context_line":"        restore \u003d mock.Mock()"},{"line_number":244,"context_line":"        mock_clients(\"cinder\").restores.restore.return_value \u003d backup"},{"line_number":245,"context_line":"        mock_clients(\"cinder\").volumes.get.return_value \u003d restore"},{"line_number":246,"context_line":""},{"line_number":247,"context_line":"        return_restore \u003d self.scenario._restore_backup(backup.id, None)"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_49af7394","line":244,"updated":"2015-05-18 12:31:38.000000000","message":"Just use mock_clients.return_value.restores...","commit_id":"41d7302d7d432d5f59cf467c3404c176938fe393"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fa59bc31b42f3a9aabad6a8cb1fb6f67c75751bd","unresolved":false,"context_lines":[{"line_number":254,"context_line":"            check_interval\u003dcfg.CONF.benchmark"},{"line_number":255,"context_line":"            .cinder_volume_create_poll_interval)"},{"line_number":256,"context_line":"        self.res_is.mock.assert_has_calls([mock.call(\"available\")])"},{"line_number":257,"context_line":"        self.assertEqual(self.wait_for.mock(), return_restore)"},{"line_number":258,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":259,"context_line":"                                       \"cinder.restore_backup\")"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_29979749","line":257,"updated":"2015-05-18 12:31:38.000000000","message":"The order is otherwise.","commit_id":"41d7302d7d432d5f59cf467c3404c176938fe393"},{"author":{"_account_id":14305,"name":"Yuriy Nesenenko","email":"ynesenenko@mirantis.com","username":"yuriy_n"},"change_message_id":"d87a087169a7399f6db418e388f81732c4a500a5","unresolved":false,"context_lines":[{"line_number":254,"context_line":"            check_interval\u003dcfg.CONF.benchmark"},{"line_number":255,"context_line":"            .cinder_volume_create_poll_interval)"},{"line_number":256,"context_line":"        self.res_is.mock.assert_has_calls([mock.call(\"available\")])"},{"line_number":257,"context_line":"        self.assertEqual(self.wait_for.mock(), return_restore)"},{"line_number":258,"context_line":"        self._test_atomic_action_timer(self.scenario.atomic_actions(),"},{"line_number":259,"context_line":"                                       \"cinder.restore_backup\")"},{"line_number":260,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_69a0ef43","line":257,"in_reply_to":"7a016987_29979749","updated":"2015-05-18 12:42:46.000000000","message":"The order is right: def _test_atomic_action_timer(self, atomic_actions, name):","commit_id":"41d7302d7d432d5f59cf467c3404c176938fe393"}],"tests/unit/benchmark/scenarios/cinder/test_volumes.py":[{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29989f93b70d0954e0ab37529fadefa17e314096","unresolved":false,"context_lines":[{"line_number":403,"context_line":"        fake_restore \u003d mock.MagicMock()"},{"line_number":404,"context_line":"        scenario \u003d volumes.CinderVolumes()"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        scenario._create_volume \u003d mock.MagicMock(return_value\u003dfake_volume)"},{"line_number":407,"context_line":"        scenario._create_backup \u003d mock.MagicMock(return_value\u003dfake_backup)"},{"line_number":408,"context_line":"        scenario._restore_backup \u003d mock.MagicMock(return_value\u003dfake_restore)"},{"line_number":409,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_7513360e","line":406,"updated":"2015-05-16 23:56:35.000000000","message":"https://github.com/openstack/rally/blob/master/tests/unit/fakes.py#L251","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29989f93b70d0954e0ab37529fadefa17e314096","unresolved":false,"context_lines":[{"line_number":404,"context_line":"        scenario \u003d volumes.CinderVolumes()"},{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        scenario._create_volume \u003d mock.MagicMock(return_value\u003dfake_volume)"},{"line_number":407,"context_line":"        scenario._create_backup \u003d mock.MagicMock(return_value\u003dfake_backup)"},{"line_number":408,"context_line":"        scenario._restore_backup \u003d mock.MagicMock(return_value\u003dfake_restore)"},{"line_number":409,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":410,"context_line":"        scenario._delete_backup \u003d mock.MagicMock()"}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_35f6ded7","line":407,"updated":"2015-05-16 23:56:35.000000000","message":"https://github.com/openstack/rally/blob/master/tests/unit/fakes.py#L269","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"},{"author":{"_account_id":12395,"name":"Roman Vasylets","email":"pomeo92@gmail.com","username":"rvasilets"},"change_message_id":"29989f93b70d0954e0ab37529fadefa17e314096","unresolved":false,"context_lines":[{"line_number":405,"context_line":""},{"line_number":406,"context_line":"        scenario._create_volume \u003d mock.MagicMock(return_value\u003dfake_volume)"},{"line_number":407,"context_line":"        scenario._create_backup \u003d mock.MagicMock(return_value\u003dfake_backup)"},{"line_number":408,"context_line":"        scenario._restore_backup \u003d mock.MagicMock(return_value\u003dfake_restore)"},{"line_number":409,"context_line":"        scenario._delete_volume \u003d mock.MagicMock()"},{"line_number":410,"context_line":"        scenario._delete_backup \u003d mock.MagicMock()"},{"line_number":411,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"7a016987_f5ff26a8","line":408,"updated":"2015-05-16 23:56:35.000000000","message":"Also you can add FakeRestore","commit_id":"3cfc037677c038d21390a4a6dcdaae4427380bc6"},{"author":{"_account_id":13609,"name":"Pavel Boldin","email":"pboldin@mirantis.com","username":"pboldin"},"change_message_id":"fa59bc31b42f3a9aabad6a8cb1fb6f67c75751bd","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        self.assertFalse(scenario._delete_backup.called)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    def test_create_and_restore_volume_backup(self):"},{"line_number":401,"context_line":"        fake_volume \u003d mock.MagicMock()"},{"line_number":402,"context_line":"        fake_backup \u003d mock.MagicMock()"},{"line_number":403,"context_line":"        fake_restore \u003d mock.MagicMock()"},{"line_number":404,"context_line":"        scenario \u003d volumes.CinderVolumes()"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a016987_e9a05fa1","line":401,"updated":"2015-05-18 12:31:38.000000000","message":"Provide a function that prepares a `scenario\u0027 for you. Name it `_get_scenario\u0027 and use here and in the function below.","commit_id":"41d7302d7d432d5f59cf467c3404c176938fe393"}]}
