)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"f2f47102c0da0cc1aeefbc4bded24709e4b6bf96","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"45e1fa3f_96001842","updated":"2023-01-13 14:54:26.000000000","message":"recheck ceph-multistore oom","commit_id":"70e7e4cf2362582b15b84581c65088d846384150"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d6176679efdb80550f0e57682e68a886a09c7d8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"7a312a72_f3e8b663","updated":"2023-01-18 06:42:40.000000000","message":"ill loopback over the seriese again after i complete a first pass but over all this looks ok one nit inline so far. i need to re review the unit tests on my next pass.","commit_id":"a72ec13d1c1882a875e579923d58e3ebc0cce099"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"87c847a9213c991e13e69abd661443deb77ca4ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"1274d648_10456e8e","updated":"2023-01-26 10:41:40.000000000","message":"looks good","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"679c67554bf43cb3396a9758d0c9db756f4f2bb0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"a2467840_b32fb58a","updated":"2023-01-30 14:34:09.000000000","message":"recheck sshable guest kernel panic at boot","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"}],"nova/compute/manager.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"441194dd3df539123b01da5113ff4c87adf05019","unresolved":true,"context_lines":[{"line_number":1546,"context_line":"            # to record a locally-persistent node identity because"},{"line_number":1547,"context_line":"            # we have upgraded from a previous version."},{"line_number":1548,"context_line":"            self._ensure_existing_node_identity(service_ref)"},{"line_number":1549,"context_line":""},{"line_number":1550,"context_line":"        if CONF.pci.device_spec:"},{"line_number":1551,"context_line":"            # Simply loading the PCI passthrough spec will do a bunch of"},{"line_number":1552,"context_line":"            # validation that would otherwise wait until the PciDevTracker is"}],"source_content_type":"text/x-python","patch_set":1,"id":"72713935_48620e75","line":1549,"updated":"2022-12-05 16:01:43.000000000","message":"I\u0027m wondering when we will call write_local_node_uuid() for the case when service_ref \u003d\u003d None i.e. we are a new compute service.","commit_id":"78a3bc52f725eabfb9472332a15531ad881b69b3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32b2935af09c7aec1ee07acd96bcf9854e55be10","unresolved":false,"context_lines":[{"line_number":1546,"context_line":"            # to record a locally-persistent node identity because"},{"line_number":1547,"context_line":"            # we have upgraded from a previous version."},{"line_number":1548,"context_line":"            self._ensure_existing_node_identity(service_ref)"},{"line_number":1549,"context_line":""},{"line_number":1550,"context_line":"        if CONF.pci.device_spec:"},{"line_number":1551,"context_line":"            # Simply loading the PCI passthrough spec will do a bunch of"},{"line_number":1552,"context_line":"            # validation that would otherwise wait until the PciDevTracker is"}],"source_content_type":"text/x-python","patch_set":1,"id":"f4605bf2_a8344026","line":1549,"in_reply_to":"0c2705d4_95520b84","updated":"2023-01-26 21:25:14.000000000","message":"Ack","commit_id":"78a3bc52f725eabfb9472332a15531ad881b69b3"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"7f98a6e7e7572d6830512cdf68c7ed0a4b986b66","unresolved":true,"context_lines":[{"line_number":1546,"context_line":"            # to record a locally-persistent node identity because"},{"line_number":1547,"context_line":"            # we have upgraded from a previous version."},{"line_number":1548,"context_line":"            self._ensure_existing_node_identity(service_ref)"},{"line_number":1549,"context_line":""},{"line_number":1550,"context_line":"        if CONF.pci.device_spec:"},{"line_number":1551,"context_line":"            # Simply loading the PCI passthrough spec will do a bunch of"},{"line_number":1552,"context_line":"            # validation that would otherwise wait until the PciDevTracker is"}],"source_content_type":"text/x-python","patch_set":1,"id":"0c2705d4_95520b84","line":1549,"in_reply_to":"72713935_48620e75","updated":"2022-12-06 19:23:51.000000000","message":"This patch is specifically only for *existing* service refs, i.e. the upgrade case.","commit_id":"78a3bc52f725eabfb9472332a15531ad881b69b3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d6176679efdb80550f0e57682e68a886a09c7d8b","unresolved":true,"context_lines":[{"line_number":1523,"context_line":"                 \u0027locally; Possible rename detected, \u0027"},{"line_number":1524,"context_line":"                 \u0027refusing to start!\u0027) % ("},{"line_number":1525,"context_line":"                        service_ref.version, self.host))"},{"line_number":1526,"context_line":"            return"},{"line_number":1527,"context_line":""},{"line_number":1528,"context_line":"        if len(db_nodes) \u003e 1:"},{"line_number":1529,"context_line":"            # If this happens we can\u0027t do the right thing, so raise an"}],"source_content_type":"text/x-python","patch_set":10,"id":"7ad02caf_a00cbfeb","line":1526,"updated":"2023-01-18 06:42:40.000000000","message":"this retrun will never get hit","commit_id":"a72ec13d1c1882a875e579923d58e3ebc0cce099"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"875f6d8ae4be85b61488c1fc677e98817aa989a6","unresolved":false,"context_lines":[{"line_number":1523,"context_line":"                 \u0027locally; Possible rename detected, \u0027"},{"line_number":1524,"context_line":"                 \u0027refusing to start!\u0027) % ("},{"line_number":1525,"context_line":"                        service_ref.version, self.host))"},{"line_number":1526,"context_line":"            return"},{"line_number":1527,"context_line":""},{"line_number":1528,"context_line":"        if len(db_nodes) \u003e 1:"},{"line_number":1529,"context_line":"            # If this happens we can\u0027t do the right thing, so raise an"}],"source_content_type":"text/x-python","patch_set":10,"id":"e8af3e07_979e549a","line":1526,"in_reply_to":"33f5a8a4_8f5effa6","updated":"2023-01-26 15:45:37.000000000","message":"Done","commit_id":"a72ec13d1c1882a875e579923d58e3ebc0cce099"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"c3fd961e29f39095359b8ae5d0bed14cb6e16301","unresolved":true,"context_lines":[{"line_number":1523,"context_line":"                 \u0027locally; Possible rename detected, \u0027"},{"line_number":1524,"context_line":"                 \u0027refusing to start!\u0027) % ("},{"line_number":1525,"context_line":"                        service_ref.version, self.host))"},{"line_number":1526,"context_line":"            return"},{"line_number":1527,"context_line":""},{"line_number":1528,"context_line":"        if len(db_nodes) \u003e 1:"},{"line_number":1529,"context_line":"            # If this happens we can\u0027t do the right thing, so raise an"}],"source_content_type":"text/x-python","patch_set":10,"id":"33f5a8a4_8f5effa6","line":1526,"in_reply_to":"7ad02caf_a00cbfeb","updated":"2023-01-20 16:06:22.000000000","message":"Yep, accidental inclusion after debug, thanks.","commit_id":"a72ec13d1c1882a875e579923d58e3ebc0cce099"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32b2935af09c7aec1ee07acd96bcf9854e55be10","unresolved":true,"context_lines":[{"line_number":1501,"context_line":"        if service_ref.version \u003e\u003d service_obj.NODE_IDENTITY_VERSION:"},{"line_number":1502,"context_line":"            # Already new enough, nothing to do here"},{"line_number":1503,"context_line":"            return"},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"        if \u0027ironic\u0027 in CONF.compute_driver.lower():"},{"line_number":1506,"context_line":"            # We do not persist a single local node identity for"},{"line_number":1507,"context_line":"            # ironic"}],"source_content_type":"text/x-python","patch_set":12,"id":"561c8d3d_7e4014a8","line":1504,"updated":"2023-01-26 21:25:14.000000000","message":"ah ok i was wondering how you were going to make this work.\nyou cant jsut write the file anytime you dont find it when the service already exitst so using compute service version to do it only once makes sense","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6a73a0db93ef70f96ee35a085b06ad8fa153b91b","unresolved":false,"context_lines":[{"line_number":1501,"context_line":"        if service_ref.version \u003e\u003d service_obj.NODE_IDENTITY_VERSION:"},{"line_number":1502,"context_line":"            # Already new enough, nothing to do here"},{"line_number":1503,"context_line":"            return"},{"line_number":1504,"context_line":""},{"line_number":1505,"context_line":"        if \u0027ironic\u0027 in CONF.compute_driver.lower():"},{"line_number":1506,"context_line":"            # We do not persist a single local node identity for"},{"line_number":1507,"context_line":"            # ironic"}],"source_content_type":"text/x-python","patch_set":12,"id":"c066f0e1_2fcd3925","line":1504,"in_reply_to":"561c8d3d_7e4014a8","updated":"2023-01-27 18:22:14.000000000","message":"Yep, and this is also why it\u0027s writing it in the \"I deleted my state file\" case we just discussed on IRC..","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32b2935af09c7aec1ee07acd96bcf9854e55be10","unresolved":true,"context_lines":[{"line_number":1517,"context_line":"            # This means we have no nodes in the database (that we"},{"line_number":1518,"context_line":"            # know of) and thus have no need to record an existing"},{"line_number":1519,"context_line":"            # UUID. That is probably strange, so log a warning."},{"line_number":1520,"context_line":"            raise exception.InvalidConfiguration("},{"line_number":1521,"context_line":"                (\u0027Upgrading from service version %i but found no \u0027"},{"line_number":1522,"context_line":"                 \u0027nodes in the database for host %s to persist \u0027"},{"line_number":1523,"context_line":"                 \u0027locally; Possible rename detected, \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"51a45cff_7d46ebee","line":1520,"updated":"2023-01-26 21:25:14.000000000","message":"so your raising here.\nim sure this will get logged eventually but the comment is a bit confusing.\n\nmaybe adress this in the fixup patch","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6a73a0db93ef70f96ee35a085b06ad8fa153b91b","unresolved":true,"context_lines":[{"line_number":1517,"context_line":"            # This means we have no nodes in the database (that we"},{"line_number":1518,"context_line":"            # know of) and thus have no need to record an existing"},{"line_number":1519,"context_line":"            # UUID. That is probably strange, so log a warning."},{"line_number":1520,"context_line":"            raise exception.InvalidConfiguration("},{"line_number":1521,"context_line":"                (\u0027Upgrading from service version %i but found no \u0027"},{"line_number":1522,"context_line":"                 \u0027nodes in the database for host %s to persist \u0027"},{"line_number":1523,"context_line":"                 \u0027locally; Possible rename detected, \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"614e682b_3e906255","line":1520,"in_reply_to":"51a45cff_7d46ebee","updated":"2023-01-27 18:22:14.000000000","message":"Yeah, it does. What is confusing, that I say \"log a warning\" but I\u0027m not logging?","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"bbe0fb2dce85692a82fce0cff7eb8a4ca5070cf1","unresolved":false,"context_lines":[{"line_number":1517,"context_line":"            # This means we have no nodes in the database (that we"},{"line_number":1518,"context_line":"            # know of) and thus have no need to record an existing"},{"line_number":1519,"context_line":"            # UUID. That is probably strange, so log a warning."},{"line_number":1520,"context_line":"            raise exception.InvalidConfiguration("},{"line_number":1521,"context_line":"                (\u0027Upgrading from service version %i but found no \u0027"},{"line_number":1522,"context_line":"                 \u0027nodes in the database for host %s to persist \u0027"},{"line_number":1523,"context_line":"                 \u0027locally; Possible rename detected, \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"31241285_fe0c8ee7","line":1520,"in_reply_to":"614e682b_3e906255","updated":"2023-01-27 19:26:38.000000000","message":"ya that said i also hate comments that are like\n\n# set x to 1\nx \u003d 1\n\ni would have probably wittine it like this\n\n            # This means we have no nodes in the database (that we\n            # know of) and thus have no need to record an existing\n            # UUID. That proably means something is wrong.\n            \n            \nanyway treat this as a nit. no need to respin for this.","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"}],"nova/tests/unit/compute/test_compute_mgr.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32b2935af09c7aec1ee07acd96bcf9854e55be10","unresolved":true,"context_lines":[{"line_number":6354,"context_line":""},{"line_number":6355,"context_line":"    @mock.patch.object(virt_node, \u0027write_local_node_uuid\u0027)"},{"line_number":6356,"context_line":"    @mock.patch.object(virt_node, \u0027read_local_node_uuid\u0027)"},{"line_number":6357,"context_line":"    def test_ensure_node_uuid_not_needed_preprovisioned(self,"},{"line_number":6358,"context_line":"                                                        mock_read_node,"},{"line_number":6359,"context_line":"                                                        mock_write_node):"},{"line_number":6360,"context_line":"        # Make sure an old service does not write a uuid if one is present"}],"source_content_type":"text/x-python","patch_set":12,"id":"df3038d2_912124f6","line":6357,"updated":"2023-01-26 21:25:14.000000000","message":"nit if you are moving arges to a new line i would prefer if you moved all of them\n\nso this would be\n```\n    def test_ensure_node_uuid_not_needed_preprovisioned(\n        self, mock_read_node, mock_write_node):\n```\nor\n```\n    def test_ensure_node_uuid_not_needed_preprovisioned(\n        self, mock_read_node, mock_write_node\n    ):\n```\n\nsame for the rest","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6a73a0db93ef70f96ee35a085b06ad8fa153b91b","unresolved":false,"context_lines":[{"line_number":6354,"context_line":""},{"line_number":6355,"context_line":"    @mock.patch.object(virt_node, \u0027write_local_node_uuid\u0027)"},{"line_number":6356,"context_line":"    @mock.patch.object(virt_node, \u0027read_local_node_uuid\u0027)"},{"line_number":6357,"context_line":"    def test_ensure_node_uuid_not_needed_preprovisioned(self,"},{"line_number":6358,"context_line":"                                                        mock_read_node,"},{"line_number":6359,"context_line":"                                                        mock_write_node):"},{"line_number":6360,"context_line":"        # Make sure an old service does not write a uuid if one is present"}],"source_content_type":"text/x-python","patch_set":12,"id":"e11d0212_7c57d15f","line":6357,"in_reply_to":"df3038d2_912124f6","updated":"2023-01-27 18:22:14.000000000","message":"I\u0027m not moving, this is a new test. But, ack your nit.","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32b2935af09c7aec1ee07acd96bcf9854e55be10","unresolved":false,"context_lines":[{"line_number":6383,"context_line":"                          self.compute._ensure_existing_node_identity,"},{"line_number":6384,"context_line":"                          service_ref)"},{"line_number":6385,"context_line":"        mock_get_cn.assert_called_once_with(mock.ANY, self.compute.host)"},{"line_number":6386,"context_line":"        mock_write_node.assert_not_called()"},{"line_number":6387,"context_line":""},{"line_number":6388,"context_line":"    @mock.patch.object(virt_node, \u0027write_local_node_uuid\u0027)"},{"line_number":6389,"context_line":"    @mock.patch.object(virt_node, \u0027read_local_node_uuid\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"550d92f3_78136ab0","line":6386,"updated":"2023-01-26 21:25:14.000000000","message":"ya so this would happen if CONF.host found a service record but we did not find any compute node record so that likely means the hypervisor_hostname changed and the compute nodes got removed or something like that.","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32b2935af09c7aec1ee07acd96bcf9854e55be10","unresolved":false,"context_lines":[{"line_number":6403,"context_line":"                          self.compute._ensure_existing_node_identity,"},{"line_number":6404,"context_line":"                          service_ref)"},{"line_number":6405,"context_line":"        mock_get_cn.assert_called_once_with(mock.ANY, self.compute.host)"},{"line_number":6406,"context_line":"        mock_write_node.assert_not_called()"},{"line_number":6407,"context_line":""},{"line_number":6408,"context_line":"    @mock.patch.object(virt_node, \u0027write_local_node_uuid\u0027)"},{"line_number":6409,"context_line":"    @mock.patch.object(virt_node, \u0027read_local_node_uuid\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"f85d939e_f736a68b","line":6406,"updated":"2023-01-26 21:25:14.000000000","message":"so this case is what i might expect to happen if the hostname changed and you set the conf.host to the old name.\n\nwe have two compute nodes assocated with one compute service for a driver that is ment to be 1:1 so there is obviouls something funky happening that needs to be investigated.","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"32b2935af09c7aec1ee07acd96bcf9854e55be10","unresolved":true,"context_lines":[{"line_number":6430,"context_line":"        # _ensure_existing_node_identity() in the service_ref\u003dNone case."},{"line_number":6431,"context_line":"        # Since testing init_host() requires a billion mocks, this"},{"line_number":6432,"context_line":"        # tests that we do call it when expected, but make it raise"},{"line_number":6433,"context_line":"        # to avoid running the rest of init_host()."},{"line_number":6434,"context_line":"        with mock.patch.object(self.compute,"},{"line_number":6435,"context_line":"                               \u0027_ensure_existing_node_identity\u0027) as m:"},{"line_number":6436,"context_line":"            m.side_effect \u003d test.TestingException"}],"source_content_type":"text/x-python","patch_set":12,"id":"1b6b79dc_829a1e08","line":6433,"updated":"2023-01-26 21:25:14.000000000","message":":) i guess we do this early enough in init_host to avoid needing all the mocks so ok.","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"},{"author":{"_account_id":4393,"name":"Dan Smith","email":"dms@danplanet.com","username":"danms"},"change_message_id":"6a73a0db93ef70f96ee35a085b06ad8fa153b91b","unresolved":false,"context_lines":[{"line_number":6430,"context_line":"        # _ensure_existing_node_identity() in the service_ref\u003dNone case."},{"line_number":6431,"context_line":"        # Since testing init_host() requires a billion mocks, this"},{"line_number":6432,"context_line":"        # tests that we do call it when expected, but make it raise"},{"line_number":6433,"context_line":"        # to avoid running the rest of init_host()."},{"line_number":6434,"context_line":"        with mock.patch.object(self.compute,"},{"line_number":6435,"context_line":"                               \u0027_ensure_existing_node_identity\u0027) as m:"},{"line_number":6436,"context_line":"            m.side_effect \u003d test.TestingException"}],"source_content_type":"text/x-python","patch_set":12,"id":"d8319b97_b5e1ab3d","line":6433,"in_reply_to":"1b6b79dc_829a1e08","updated":"2023-01-27 18:22:14.000000000","message":"Yeah, we do this in a few other places. Really it probably means that init_host() could use a refactor, but this results in a much smaller and easier to read test, even though it\u0027s cheating a bit.","commit_id":"53a925ff0f79fe822a96e1fadf552bb8d0f8e4b4"}]}
