)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e6834b6e900ce44fad5a7c37b4b5303b05bd6735","unresolved":false,"context_lines":[{"line_number":11,"context_line":"presence of the field before using it."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"As part of this change, a bug in tests for overcommitting of NUMA cells"},{"line_number":14,"context_line":"was uncovered. The tests are reworked to resolve this and documentation"},{"line_number":15,"context_line":"added in case people find the feature as confusing as I did initially."},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I11392bb5bcb4427faae3cb8bba2d615271203e81"},{"line_number":18,"context_line":"Co-Authored-By: Sahid Orentino Ferdjaoui \u003csahid.ferdjaoui@redhat.com\u003e"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"3f4b6375_2b964b96","line":15,"range":{"start_line":14,"start_character":58,"end_line":15,"end_character":5},"updated":"2017-10-30 00:25:51.000000000","message":"I think you mean \u0027comments are added in the code\u0027","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"0776d5a891d6879bd58b8a702ebab709f85e0042","unresolved":false,"context_lines":[{"line_number":7,"context_line":"objects: remove pagesize from __init__ of InstanceNUMATopology"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Removes the initialization of pagesize to None when creating new"},{"line_number":10,"context_line":"instances of InstanceNUMATopology. This necessitates checking for the"},{"line_number":11,"context_line":"presence of the field before using it. The current pattern allowed us to"},{"line_number":12,"context_line":"avoid this check, at the expense of not being able to inspect objects"},{"line_number":13,"context_line":"easily and consistently generate a list of fields."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"df7087c5_4cd25f02","line":11,"range":{"start_line":10,"start_character":35,"end_line":11,"end_character":37},"updated":"2018-03-13 01:07:59.000000000","message":"I still don\u0027t understand why the benefit exceeds this cost. How can we force developers (or build tests) always to check the presence of the field?\n\nAre there any bug reports or test cases that tell us in which use cases this patch brings us the benefit? In other words, I\u0027m just curious about (and haven\u0027t understood) the current problem.","commit_id":"76aece75e37d32a54888d23f11d6d20861f820f1"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"5cbb563ec6795e8ca9e0eb215380c69fd93aa4b2","unresolved":false,"context_lines":[{"line_number":7,"context_line":"objects: remove pagesize from __init__ of InstanceNUMATopology"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Removes the initialization of pagesize to None when creating new"},{"line_number":10,"context_line":"instances of InstanceNUMATopology. This necessitates checking for the"},{"line_number":11,"context_line":"presence of the field before using it. The current pattern allowed us to"},{"line_number":12,"context_line":"avoid this check, at the expense of not being able to inspect objects"},{"line_number":13,"context_line":"easily and consistently generate a list of fields."},{"line_number":14,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"df7087c5_8fdaa948","line":11,"range":{"start_line":10,"start_character":35,"end_line":11,"end_character":37},"in_reply_to":"df7087c5_4cd25f02","updated":"2018-03-13 01:31:52.000000000","message":"Later: The comment above is because I\u0027ve forgotten about the Bug#1636338. Sorry. But still, considering the cost, I prefer the approach of https://review.openstack.org/#/c/396184/, that had been abondoned, because it prevents us from carelessly missing the check and producing bugs again?","commit_id":"76aece75e37d32a54888d23f11d6d20861f820f1"}],"nova/objects/instance_numa_topology.py":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"c38fd837a2949524b218ca892a8b004946089753","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                                                 allow_ranges\u003dFalse),"},{"line_number":87,"context_line":"                \u0027mem\u0027: {\u0027total\u0027: self.memory},"},{"line_number":88,"context_line":"                \u0027id\u0027: self.id,"},{"line_number":89,"context_line":"                \u0027pagesize\u0027: self.pagesize if \u0027pagesize\u0027 in self else None}"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @classmethod"},{"line_number":92,"context_line":"    def _from_dict(cls, data_dict):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_6cb576cd","line":89,"range":{"start_line":89,"start_character":42,"end_line":89,"end_character":74},"updated":"2017-10-30 03:13:31.000000000","message":"Why is this checking needed? In the case of \u0027cpu_topology\u0027 in https://review.openstack.org/#/c/408240/, the checking is needed because it can be false depending on the version. But in this case of \u0027pagesize\u0027, isn\u0027t this always true?","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"00808dd2c624c08cae4cc7ec6a3bc69e9adc375c","unresolved":false,"context_lines":[{"line_number":86,"context_line":"                                                 allow_ranges\u003dFalse),"},{"line_number":87,"context_line":"                \u0027mem\u0027: {\u0027total\u0027: self.memory},"},{"line_number":88,"context_line":"                \u0027id\u0027: self.id,"},{"line_number":89,"context_line":"                \u0027pagesize\u0027: self.pagesize if \u0027pagesize\u0027 in self else None}"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":"    @classmethod"},{"line_number":92,"context_line":"    def _from_dict(cls, data_dict):"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_4cb07a8c","line":89,"range":{"start_line":89,"start_character":42,"end_line":89,"end_character":74},"in_reply_to":"3f4b6375_6cb576cd","updated":"2017-10-30 03:33:01.000000000","message":"Oh sorry, looks like that it shouldn\u0027t be true in ver 1.0, but in that case we should add tests related to https://review.openstack.org/#/c/426261/. So in the case of \u0027cpu_pinning_raw\u0027.","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"}],"nova/tests/unit/virt/test_hardware.py":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e6834b6e900ce44fad5a7c37b4b5303b05bd6735","unresolved":false,"context_lines":[{"line_number":1627,"context_line":""},{"line_number":1628,"context_line":"class VirtNUMATopologyCellUsageTestCase(test.NoDBTestCase):"},{"line_number":1629,"context_line":""},{"line_number":1630,"context_line":"    def test_fit_instance_cell_success_wo_overcommit(self):"},{"line_number":1631,"context_line":"        \"\"\"Fit an instance cell in a host cell with no overcommit."},{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"        With or without an overcommit ratio defined, it should always be"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_b0186684","line":1630,"range":{"start_line":1630,"start_character":39,"end_line":1630,"end_character":41},"updated":"2017-10-30 00:25:51.000000000","message":"\u0027no\u0027","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3eadc17b5478e0de47a250a8bb986e433d53d230","unresolved":false,"context_lines":[{"line_number":1627,"context_line":""},{"line_number":1628,"context_line":"class VirtNUMATopologyCellUsageTestCase(test.NoDBTestCase):"},{"line_number":1629,"context_line":""},{"line_number":1630,"context_line":"    def test_fit_instance_cell_success_wo_overcommit(self):"},{"line_number":1631,"context_line":"        \"\"\"Fit an instance cell in a host cell with no overcommit."},{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"        With or without an overcommit ratio defined, it should always be"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_43462424","line":1630,"range":{"start_line":1630,"start_character":39,"end_line":1630,"end_character":41},"in_reply_to":"3f4b6375_b0186684","updated":"2017-12-13 11:32:35.000000000","message":"this was shorthand for w/o (without)","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"0776d5a891d6879bd58b8a702ebab709f85e0042","unresolved":false,"context_lines":[{"line_number":1627,"context_line":""},{"line_number":1628,"context_line":"class VirtNUMATopologyCellUsageTestCase(test.NoDBTestCase):"},{"line_number":1629,"context_line":""},{"line_number":1630,"context_line":"    def test_fit_instance_cell_success_wo_overcommit(self):"},{"line_number":1631,"context_line":"        \"\"\"Fit an instance cell in a host cell with no overcommit."},{"line_number":1632,"context_line":""},{"line_number":1633,"context_line":"        With or without an overcommit ratio defined, it should always be"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_2184e55d","line":1630,"range":{"start_line":1630,"start_character":39,"end_line":1630,"end_character":41},"in_reply_to":"df87a7cf_43462424","updated":"2018-03-13 01:07:59.000000000","message":"Ah, good to know.","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e6834b6e900ce44fad5a7c37b4b5303b05bd6735","unresolved":false,"context_lines":[{"line_number":1656,"context_line":"        self.assertIsInstance(fitted_cell, objects.InstanceNUMACell)"},{"line_number":1657,"context_line":"        self.assertEqual(host_cell.id, fitted_cell.id)"},{"line_number":1658,"context_line":""},{"line_number":1659,"context_line":"    def test_fit_instance_cell_success_w_overcommit(self):"},{"line_number":1660,"context_line":"        \"\"\"Fit an instance cell in a host cell using overcommit."},{"line_number":1661,"context_line":""},{"line_number":1662,"context_line":"        With a overcommit ratio defined, it should be possible to overcommit"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_abfd9b09","line":1659,"range":{"start_line":1659,"start_character":38,"end_line":1659,"end_character":40},"updated":"2017-10-30 00:25:51.000000000","message":"no need.","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3eadc17b5478e0de47a250a8bb986e433d53d230","unresolved":false,"context_lines":[{"line_number":1656,"context_line":"        self.assertIsInstance(fitted_cell, objects.InstanceNUMACell)"},{"line_number":1657,"context_line":"        self.assertEqual(host_cell.id, fitted_cell.id)"},{"line_number":1658,"context_line":""},{"line_number":1659,"context_line":"    def test_fit_instance_cell_success_w_overcommit(self):"},{"line_number":1660,"context_line":"        \"\"\"Fit an instance cell in a host cell using overcommit."},{"line_number":1661,"context_line":""},{"line_number":1662,"context_line":"        With a overcommit ratio defined, it should be possible to overcommit"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_e352d8de","line":1659,"range":{"start_line":1659,"start_character":38,"end_line":1659,"end_character":40},"in_reply_to":"3f4b6375_abfd9b09","updated":"2017-12-13 11:32:35.000000000","message":"with :)","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e6834b6e900ce44fad5a7c37b4b5303b05bd6735","unresolved":false,"context_lines":[{"line_number":1680,"context_line":"        self.assertIsInstance(fitted_cell, objects.InstanceNUMACell)"},{"line_number":1681,"context_line":"        self.assertEqual(host_cell.id, fitted_cell.id)"},{"line_number":1682,"context_line":""},{"line_number":1683,"context_line":"    def test_fit_instance_cell_fail_w_overcommit(self):"},{"line_number":1684,"context_line":"        \"\"\"Attempt to fit an instance cell in a host cell without space."},{"line_number":1685,"context_line":""},{"line_number":1686,"context_line":"        When the overcommit ratio is exceeded, it should not be possible to fit"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_4b0ce73a","line":1683,"range":{"start_line":1683,"start_character":35,"end_line":1683,"end_character":37},"updated":"2017-10-30 00:25:51.000000000","message":"ditto","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"},{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e6834b6e900ce44fad5a7c37b4b5303b05bd6735","unresolved":false,"context_lines":[{"line_number":1703,"context_line":"            host_cell, instance_cell, limit_cell\u003dlimit_cell)"},{"line_number":1704,"context_line":"        self.assertIsNone(fitted_cell)"},{"line_number":1705,"context_line":""},{"line_number":1706,"context_line":"    def test_fit_instance_cell_fail_w_self_overcommit(self):"},{"line_number":1707,"context_line":"        \"\"\"Attempt to fit a too-large instance cell in a host cell."},{"line_number":1708,"context_line":""},{"line_number":1709,"context_line":"        With or without an overcommit ratio defined, it should not be possible"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_2b11ab54","line":1706,"range":{"start_line":1706,"start_character":35,"end_line":1706,"end_character":37},"updated":"2017-10-30 00:25:51.000000000","message":"ditto","commit_id":"6322c29776da26c63df35528befbdb60e31bbd76"}],"nova/virt/hardware.py":[{"author":{"_account_id":25625,"name":"Tetsuro Nakamura","email":"tetsuro.nakamura.bc@hco.ntt.co.jp","username":"tetsuro0907"},"change_message_id":"e6834b6e900ce44fad5a7c37b4b5303b05bd6735","unresolved":false,"context_lines":[{"line_number":1565,"context_line":"                used\u003dmax(0, pages.used +"},{"line_number":1566,"context_line":"                         instancecell.memory * units.Ki /"},{"line_number":1567,"context_line":"                         pages.size_kb * sign),"},{"line_number":1568,"context_line":"                reserved\u003dpages.reserved if \u0027reserved\u0027 in pages else 0))"},{"line_number":1569,"context_line":"        else:"},{"line_number":1570,"context_line":"            topo.append(pages)"},{"line_number":1571,"context_line":"    return topo"}],"source_content_type":"text/x-python","patch_set":2,"id":"3f4b6375_ab823b51","side":"PARENT","line":1568,"range":{"start_line":1568,"start_character":16,"end_line":1568,"end_character":69},"updated":"2017-10-30 00:25:51.000000000","message":"It seems that there is no case to use NUMAPagesTopology\u0027s reserved field so far... Why is this field needed basically, in the first place?","commit_id":"bd89a0deb2d6a4189b9b5e48bf02da1781201efa"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3eadc17b5478e0de47a250a8bb986e433d53d230","unresolved":false,"context_lines":[{"line_number":1565,"context_line":"                used\u003dmax(0, pages.used +"},{"line_number":1566,"context_line":"                         instancecell.memory * units.Ki /"},{"line_number":1567,"context_line":"                         pages.size_kb * sign),"},{"line_number":1568,"context_line":"                reserved\u003dpages.reserved if \u0027reserved\u0027 in pages else 0))"},{"line_number":1569,"context_line":"        else:"},{"line_number":1570,"context_line":"            topo.append(pages)"},{"line_number":1571,"context_line":"    return topo"}],"source_content_type":"text/x-python","patch_set":2,"id":"df87a7cf_835d0ceb","side":"PARENT","line":1568,"range":{"start_line":1568,"start_character":16,"end_line":1568,"end_character":69},"in_reply_to":"3f4b6375_ab823b51","updated":"2017-12-13 11:32:35.000000000","message":"That\u0027s a good point. Perhaps we can drop it. I\u0027ll look at this separately","commit_id":"bd89a0deb2d6a4189b9b5e48bf02da1781201efa"}]}
