)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d2d1aacb7d873979af7d4bdde67abf48ac034818","unresolved":false,"context_lines":[{"line_number":10,"context_line":"especially in large-scale enviroment."},{"line_number":11,"context_line":"Disable limit param in GET /allocation_candidates if force_hosts"},{"line_number":12,"context_line":"or force_nodes is set."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Change-Id: Iff1b49fe7e6347e3c2bb5992494b2450809719a2"},{"line_number":15,"context_line":"Closes-Bug: #1777591"},{"line_number":16,"context_line":"(cherry picked from commit 1d91811ad499af1d291f5c819ced5b1fdf3520c7)"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"5f7c97a3_5cbd1ed5","line":13,"updated":"2018-07-28 13:40:31.000000000","message":"Hmm, clearly there is a difference from the change on master, and normally in a backport the author should leave a note in the commit message, e.g.:\n\nNOTE(xulei): There are differences from the original change because X was not in stable/queens so we do Y.\n\n--\n\nIt looks like at least one difference is that I496e8d64907fdcb0e2da255725aed1fc529725f2 is not in Queens.","commit_id":"9afdddb8fa2c43132e8af48a16b916df373b188a"}],"nova/tests/unit/scheduler/client/test_report.py":[{"author":{"_account_id":6873,"name":"Matt Riedemann","email":"mriedem.os@gmail.com","username":"mriedem"},"change_message_id":"d2d1aacb7d873979af7d4bdde67abf48ac034818","unresolved":false,"context_lines":[{"line_number":1632,"context_line":"        self.assertEqual(expected_query, query)"},{"line_number":1633,"context_line":"        self.assertEqual(mock.sentinel.alloc_reqs, alloc_reqs)"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    def test_get_allocation_candidates_with_no_limit(self):"},{"line_number":1636,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d200)"},{"line_number":1637,"context_line":"        json_data \u003d {"},{"line_number":1638,"context_line":"            \u0027allocation_requests\u0027: mock.sentinel.alloc_reqs,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_9cbe56cc","line":1635,"range":{"start_line":1635,"start_character":8,"end_line":1635,"end_character":52},"updated":"2018-07-28 13:40:31.000000000","message":"I assume this was added because of Eric\u0027s review comment?\n\n\u003e But one thing I think we\u0027ve lost here that really needs to be restored (sorry I didn\u0027t think about this earlier) is validating that the constructed querystrings do or do not contain the limit qparam.","commit_id":"9afdddb8fa2c43132e8af48a16b916df373b188a"},{"author":{"_account_id":21914,"name":"Remy-xl","email":"xulei_yewu@cmss.chinamobile.com","username":"xulei"},"change_message_id":"c9864719f3fbb70ba008c16f897abe4d7240208f","unresolved":false,"context_lines":[{"line_number":1632,"context_line":"        self.assertEqual(expected_query, query)"},{"line_number":1633,"context_line":"        self.assertEqual(mock.sentinel.alloc_reqs, alloc_reqs)"},{"line_number":1634,"context_line":""},{"line_number":1635,"context_line":"    def test_get_allocation_candidates_with_no_limit(self):"},{"line_number":1636,"context_line":"        resp_mock \u003d mock.Mock(status_code\u003d200)"},{"line_number":1637,"context_line":"        json_data \u003d {"},{"line_number":1638,"context_line":"            \u0027allocation_requests\u0027: mock.sentinel.alloc_reqs,"}],"source_content_type":"text/x-python","patch_set":3,"id":"5f7c97a3_bc20f2b2","line":1635,"range":{"start_line":1635,"start_character":8,"end_line":1635,"end_character":52},"in_reply_to":"5f7c97a3_9cbe56cc","updated":"2018-07-28 14:54:53.000000000","message":"Yes, I found this can check qyerystrings more rigorously.","commit_id":"9afdddb8fa2c43132e8af48a16b916df373b188a"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"d686d5c66e81501976e986ff63a3537d966c799c","unresolved":false,"context_lines":[{"line_number":1649,"context_line":"        resp_mock.json.return_value \u003d json_data"},{"line_number":1650,"context_line":"        self.ks_adap_mock.get.return_value \u003d resp_mock"},{"line_number":1651,"context_line":""},{"line_number":1652,"context_line":"        alloc_reqs, p_sums, allocation_request_version \u003d \\"},{"line_number":1653,"context_line":"                self.client.get_allocation_candidates(self.context, resources)"},{"line_number":1654,"context_line":""},{"line_number":1655,"context_line":"        self.ks_adap_mock.get.assert_called_once_with("}],"source_content_type":"text/x-python","patch_set":4,"id":"5f7c97a3_3d236508","line":1652,"range":{"start_line":1652,"start_character":57,"end_line":1652,"end_character":58},"updated":"2018-07-30 18:11:24.000000000","message":"boo backslashes.\n\nI see this is a copy/paste, though.","commit_id":"ab1fd87ed9563ce8cf865ff539916e5d804853dc"}],"nova/tests/unit/scheduler/test_utils.py":[{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"b984092935fceaccc739015dcca2adb3d9cec5fb","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        super(TestUtils, self).setUp()"},{"line_number":30,"context_line":"        self.context \u003d nova_context.get_admin_context()"},{"line_number":31,"context_line":""},{"line_number":32,"context_line":"    def assertResourceRequestsEqual(self, expected, observed):"},{"line_number":33,"context_line":"        ex_by_id \u003d expected._rg_by_id"},{"line_number":34,"context_line":"        ob_by_id \u003d observed._rg_by_id"},{"line_number":35,"context_line":"        self.assertEqual(set(ex_by_id), set(ob_by_id))"}],"source_content_type":"text/x-python","patch_set":1,"id":"5f7c97a3_fb3127f0","line":32,"range":{"start_line":32,"start_character":8,"end_line":32,"end_character":35},"updated":"2018-07-22 12:30:22.000000000","message":"Need to add\n\n         self.assertEqual(expected._limit, observed._limit)\n\nto this guy.","commit_id":"36b1554f480eb7e037ee71167c7d42336a697445"},{"author":{"_account_id":14070,"name":"Eric Fried","email":"openstack@fried.cc","username":"efried"},"change_message_id":"9e45edbd5dd54a87dcc2c8ea27c6226d44cae6cf","unresolved":false,"context_lines":[{"line_number":264,"context_line":"        fake_spec \u003d objects.RequestSpec(flavor\u003dflavor)"},{"line_number":265,"context_line":"        utils.resources_from_request_spec(fake_spec)"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    def test_process_no_force_hosts_or_force_nodes(self):"},{"line_number":268,"context_line":"        flavor \u003d objects.Flavor(vcpus\u003d1,"},{"line_number":269,"context_line":"                                memory_mb\u003d1024,"},{"line_number":270,"context_line":"                                root_gb\u003d15,"}],"source_content_type":"text/x-python","patch_set":2,"id":"5f7c97a3_fb17e7ee","line":267,"updated":"2018-07-22 13:36:21.000000000","message":"I guess that\u0027s another way of doing it.\n\nBut one thing I think we\u0027ve lost here that really needs to be restored (sorry I didn\u0027t think about this earlier) is validating that the constructed querystrings do or do not contain the limit qparam.","commit_id":"4c2b9f3668fc253d709307bbf6e29daac6d7cb8b"}]}
