)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2f51911a3f0f6ce2685fcd299455f7449100f049","unresolved":false,"context_lines":[{"line_number":10,"context_line":"getting all tenants\u0027s backups. This is so only when the"},{"line_number":11,"context_line":"all-tenants option is used."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"Closed-Bug: #1422045"},{"line_number":14,"context_line":"Change-Id: I7dff66223050d8909456d54f949b6fa5fd004816"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"1a6ced46_b1c96e7b","line":13,"updated":"2015-03-24 14:05:53.000000000","message":"Closes-Bug should be used.","commit_id":"50ba84d81a3bde76dea7ef42b3b4d06c441660d8"}],"cinder/backup/api.py":[{"author":{"_account_id":1736,"name":"Ivan Kolodyazhny","email":"e0ne@e0ne.info","username":"e0ne"},"change_message_id":"9c54b08287ad34b89aa3d6dbc145d7242e8f9ec0","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        b \u003d False"},{"line_number":75,"context_line":"        if \u0027all_tenants\u0027 in filters:"},{"line_number":76,"context_line":"            val \u003d six.text_type(filters[\u0027all_tenants\u0027]).lower()"},{"line_number":77,"context_line":"            if val in [\u0027true\u0027, \u00271\u0027]:"},{"line_number":78,"context_line":"                b \u003d True"},{"line_number":79,"context_line":"            elif val in [\u0027false\u0027, \u00270\u0027]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_bfeebe20","line":76,"updated":"2015-03-23 17:28:20.000000000","message":"You should use oslo_utils.strutils.bool_from_str here","commit_id":"87f42b05a4dd8b2c004ad6b2c225bde7b4dc0959"},{"author":{"_account_id":11676,"name":"wuyuting","email":"wytdahu@gmail.com","username":"wuyuting"},"change_message_id":"4f1b3a17cbd26a7c91ff934503f207e25e7e04f9","unresolved":false,"context_lines":[{"line_number":73,"context_line":""},{"line_number":74,"context_line":"        b \u003d False"},{"line_number":75,"context_line":"        if \u0027all_tenants\u0027 in filters:"},{"line_number":76,"context_line":"            val \u003d six.text_type(filters[\u0027all_tenants\u0027]).lower()"},{"line_number":77,"context_line":"            if val in [\u0027true\u0027, \u00271\u0027]:"},{"line_number":78,"context_line":"                b \u003d True"},{"line_number":79,"context_line":"            elif val in [\u0027false\u0027, \u00270\u0027]:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1a6ced46_47e7b312","line":76,"in_reply_to":"1a6ced46_bfeebe20","updated":"2015-03-24 02:20:48.000000000","message":"Thank you for your review. I\u0027ll update it.","commit_id":"87f42b05a4dd8b2c004ad6b2c225bde7b4dc0959"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2f51911a3f0f6ce2685fcd299455f7449100f049","unresolved":false,"context_lines":[{"line_number":99,"context_line":"            search_opts \u003d {}"},{"line_number":100,"context_line":"        check_policy(context, \u0027get_all\u0027)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        allTenants \u003d self._get_all_tenants_value(search_opts)"},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"        if context.is_admin and allTenants:"},{"line_number":105,"context_line":"            del search_opts[\u0027all_tenants\u0027]"}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6ced46_d1626ad7","line":102,"updated":"2015-03-24 14:05:53.000000000","message":"Why is this camel case? We should use all_tenants as variable name.","commit_id":"50ba84d81a3bde76dea7ef42b3b4d06c441660d8"},{"author":{"_account_id":15556,"name":"luyingxi","email":"luyingxi@huawei.com","username":"lu"},"change_message_id":"a4cb601906ab344d6c14bbb9a21fee80c8b3bf91","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":68,"context_line":"        \"\"\"Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":69,"context_line":"           False is returned if \u0027all_tenants\u0027 is not in the filters dictionary."},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        b \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"1a6ced46_d64689bf","line":69,"updated":"2015-03-26 11:48:36.000000000","message":"Refer to the following specification: http://docs.openstack.org/developer/hacking/#dictionaries-lists.\nMulti line docstrings should start with a one line summary followed by an empty line.","commit_id":"e8377ba6f6635643c7ecdde768192f4ca4b98ef3"},{"author":{"_account_id":11676,"name":"wuyuting","email":"wytdahu@gmail.com","username":"wuyuting"},"change_message_id":"fd33ebe42c02cf8fb81af4e2fa3faa2516591436","unresolved":false,"context_lines":[{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":68,"context_line":"        \"\"\"Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":69,"context_line":"           False is returned if \u0027all_tenants\u0027 is not in the filters dictionary."},{"line_number":70,"context_line":"        \"\"\""},{"line_number":71,"context_line":""},{"line_number":72,"context_line":"        b \u003d False"}],"source_content_type":"text/x-python","patch_set":4,"id":"fa963961_fe22c5b8","line":69,"in_reply_to":"1a6ced46_d64689bf","updated":"2015-03-27 07:14:52.000000000","message":"Thanks, I\u0027ll update it.","commit_id":"e8377ba6f6635643c7ecdde768192f4ca4b98ef3"},{"author":{"_account_id":14271,"name":"Kallebe Monteiro","email":"kallebe.monteiro@lsbd.ufc.br","username":"kallebe"},"change_message_id":"e2857f44be62633c48c70b65361f6dc12a70791a","unresolved":false,"context_lines":[{"line_number":65,"context_line":"        return dict(rv.iteritems())"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"    def _get_all_tenants_value(self, filters):"},{"line_number":68,"context_line":"        \"\"\""},{"line_number":69,"context_line":"        Returns a Boolean for the value of filters[\u0027all_tenants\u0027]."},{"line_number":70,"context_line":"        False is returned if \u0027all_tenants\u0027 is not in the filters dictionary."},{"line_number":71,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":5,"id":"fa963961_e1044e7f","line":68,"updated":"2015-03-27 17:53:56.000000000","message":"pep8 error is in this docstring. You need to change it. It seems that your case is this one https://github.com/openstack-dev/hacking/blob/master/hacking/checks/docstrings.py#L85","commit_id":"9f69bb40e2ea3ba67bbb58d00ab3fab4aeb96203"}],"cinder/tests/test_backup.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"2f51911a3f0f6ce2685fcd299455f7449100f049","unresolved":false,"context_lines":[{"line_number":427,"context_line":"        self.assertEqual(len(backups), 1)"},{"line_number":428,"context_line":"        self.assertEqual(backups[0].id, b2)"},{"line_number":429,"context_line":""},{"line_number":430,"context_line":"    def test_list_all_backups(self):"},{"line_number":431,"context_line":"        backups \u003d db.backup_get_all_by_project(self.ctxt, \u0027project1\u0027)"},{"line_number":432,"context_line":"        self.assertEqual(len(backups), 0)"},{"line_number":433,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"1a6ced46_f1ecc6f5","line":430,"updated":"2015-03-24 14:05:53.000000000","message":"This is testing the DB API and not the backup RPC API.","commit_id":"50ba84d81a3bde76dea7ef42b3b4d06c441660d8"}]}
