)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"95e07c435f7c66d95b921fcfe771a62ae08c169b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"1d4fa1ca_cb3d7a13","updated":"2021-12-02 13:42:31.000000000","message":"in terms of a backportable change i think this makes sense.\n\nsylvain raised the option of not perseiting the numa toplogy in the request spec in the db.\nwe could make this change but i would presonally not backport that change so i suggest if we want to consider that as an alrenive we defer that to a follow up patch which we merge on master but do not backport.\n\nin term of blocker migration i woudl presonal add a nova manage command to migrate the request specs\nand a nova status check ranter then a blocker migration. again i think those could be in a followup patch if we want to kep this fix minimal.\n\nassuming you respin this a short fixes release note would be nice but over all i think this is an ok fix at least in the short to medium term.\n","commit_id":"5349871a61a60c5c0aa48144e6a5710d6a9155a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"51a2f84991276c17917f1c458e8858525ee3efff","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"f97e73c4_6662b2b1","updated":"2021-12-02 13:56:14.000000000","message":"recheck ovn failed to start in the multi-cell job https://zuul.opendev.org/t/openstack/build/f03c63356bd24674b34d2177c523f997/log/job-output.txt#21540","commit_id":"5349871a61a60c5c0aa48144e6a5710d6a9155a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fa7928838f16ca1e500f8269d335f874a7d9c5dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"ba2ed7e0_54ce9918","in_reply_to":"1d4fa1ca_cb3d7a13","updated":"2021-12-02 14:14:22.000000000","message":"I\u0027ve added a release note.","commit_id":"5349871a61a60c5c0aa48144e6a5710d6a9155a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ef918ba77e2e50d4805f3139100df97d5f779b6d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"61c1aab8_1f935cca","updated":"2021-12-03 09:06:40.000000000","message":"recheck \n* centos-8 job failed with listing images \n* ceph-multistore job failed with volume detach","commit_id":"7ff0af5b4a27cf471c9e5b2f038f2f417983e0f5"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"5cb21844500e5abdf759bd90adc818fcd7c38187","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"69108dd0_e27d7fc2","updated":"2022-02-04 12:07:59.000000000","message":"im still good with this so +2","commit_id":"e853bb57181721725a89656b3cb3058636630a6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8ea31e184e62da0ff1454a07ba31cff512c40ca5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fa32756e_a7106516","updated":"2022-01-17 14:15:09.000000000","message":"ya this still looks good to me so +1","commit_id":"e853bb57181721725a89656b3cb3058636630a6e"}],"nova/objects/instance_numa.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"95e07c435f7c66d95b921fcfe771a62ae08c169b","unresolved":true,"context_lines":[{"line_number":197,"context_line":"            cell.pcpuset \u003d cell.cpuset"},{"line_number":198,"context_line":"            cell.cpuset \u003d set()"},{"line_number":199,"context_line":"            update_db \u003d True"},{"line_number":200,"context_line":"        return update_db"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    # TODO(huaqiang): Remove after Yoga once we are sure these objects have"},{"line_number":203,"context_line":"    # been loaded at least once."}],"source_content_type":"text/x-python","patch_set":1,"id":"c23acbd0_d6783a2b","line":200,"range":{"start_line":200,"start_character":15,"end_line":200,"end_character":24},"updated":"2021-12-02 13:42:31.000000000","message":"yes spliting this in two makes sense and the update_db value is also used to only update request specs that had old object later\nso returnign it makes sense too.","commit_id":"5349871a61a60c5c0aa48144e6a5710d6a9155a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fa7928838f16ca1e500f8269d335f874a7d9c5dd","unresolved":false,"context_lines":[{"line_number":197,"context_line":"            cell.pcpuset \u003d cell.cpuset"},{"line_number":198,"context_line":"            cell.cpuset \u003d set()"},{"line_number":199,"context_line":"            update_db \u003d True"},{"line_number":200,"context_line":"        return update_db"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    # TODO(huaqiang): Remove after Yoga once we are sure these objects have"},{"line_number":203,"context_line":"    # been loaded at least once."}],"source_content_type":"text/x-python","patch_set":1,"id":"348dca5d_5a2c65b7","line":200,"range":{"start_line":200,"start_character":15,"end_line":200,"end_character":24},"in_reply_to":"c23acbd0_d6783a2b","updated":"2021-12-02 14:14:22.000000000","message":"Ack","commit_id":"5349871a61a60c5c0aa48144e6a5710d6a9155a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"95e07c435f7c66d95b921fcfe771a62ae08c169b","unresolved":true,"context_lines":[{"line_number":199,"context_line":"            update_db \u003d True"},{"line_number":200,"context_line":"        return update_db"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    # TODO(huaqiang): Remove after Yoga once we are sure these objects have"},{"line_number":203,"context_line":"    # been loaded at least once."},{"line_number":204,"context_line":"    @classmethod"},{"line_number":205,"context_line":"    def _save_migrated_cpuset_to_instance_extra("}],"source_content_type":"text/x-python","patch_set":1,"id":"20db5b7b_9342b49d","line":202,"range":{"start_line":202,"start_character":35,"end_line":202,"end_character":39},"updated":"2021-12-02 13:42:31.000000000","message":"as we discussed on irc unless we add  blocker migration we probaly want to keep this for a couple of release but\nyes we can eventurally remvove it.","commit_id":"5349871a61a60c5c0aa48144e6a5710d6a9155a1"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fa7928838f16ca1e500f8269d335f874a7d9c5dd","unresolved":false,"context_lines":[{"line_number":199,"context_line":"            update_db \u003d True"},{"line_number":200,"context_line":"        return update_db"},{"line_number":201,"context_line":""},{"line_number":202,"context_line":"    # TODO(huaqiang): Remove after Yoga once we are sure these objects have"},{"line_number":203,"context_line":"    # been loaded at least once."},{"line_number":204,"context_line":"    @classmethod"},{"line_number":205,"context_line":"    def _save_migrated_cpuset_to_instance_extra("}],"source_content_type":"text/x-python","patch_set":1,"id":"8cb702f0_bf17605e","line":202,"range":{"start_line":202,"start_character":35,"end_line":202,"end_character":39},"in_reply_to":"20db5b7b_9342b49d","updated":"2021-12-02 14:14:22.000000000","message":"Ack","commit_id":"5349871a61a60c5c0aa48144e6a5710d6a9155a1"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8ea31e184e62da0ff1454a07ba31cff512c40ca5","unresolved":true,"context_lines":[{"line_number":210,"context_line":"            \u0027numa_topology\u0027: db_obj,"},{"line_number":211,"context_line":"        }"},{"line_number":212,"context_line":"        db.instance_extra_update_by_uuid("},{"line_number":213,"context_line":"            context, instance_uuid, values)"},{"line_number":214,"context_line":""},{"line_number":215,"context_line":"    # TODO(stephenfin): Remove in X or later, once this has bedded in"},{"line_number":216,"context_line":"    @classmethod"}],"source_content_type":"text/x-python","patch_set":4,"id":"6991dd68_9ee1a7a3","line":213,"updated":"2022-01-17 14:15:09.000000000","message":"+1 simple refactor to seperate data persistance form data migration.","commit_id":"e853bb57181721725a89656b3cb3058636630a6e"}],"nova/objects/request_spec.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8ea31e184e62da0ff1454a07ba31cff512c40ca5","unresolved":true,"context_lines":[{"line_number":623,"context_line":"                    spec.numa_topology \u003d spec_obj.numa_topology"},{"line_number":624,"context_line":"                    if spec.numa_topology:"},{"line_number":625,"context_line":"                        data_migrated \u003d objects.InstanceNUMATopology.\\"},{"line_number":626,"context_line":"                            _migrate_legacy_dedicated_instance_cpuset("},{"line_number":627,"context_line":"                                spec.numa_topology)"},{"line_number":628,"context_line":"            elif key in spec_obj:"},{"line_number":629,"context_line":"                setattr(spec, key, getattr(spec_obj, key))"},{"line_number":630,"context_line":"        spec._context \u003d context"}],"source_content_type":"text/x-python","patch_set":4,"id":"0691c510_ff560f86","line":627,"range":{"start_line":626,"start_character":28,"end_line":627,"end_character":51},"updated":"2022-01-17 14:15:09.000000000","message":"+1 reusing the same migration fuciotion now that the persicance to the db has been split out.","commit_id":"e853bb57181721725a89656b3cb3058636630a6e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8ea31e184e62da0ff1454a07ba31cff512c40ca5","unresolved":true,"context_lines":[{"line_number":647,"context_line":"                spec.instance_group \u003d None"},{"line_number":648,"context_line":""},{"line_number":649,"context_line":"        if data_migrated:"},{"line_number":650,"context_line":"            spec.save()"},{"line_number":651,"context_line":""},{"line_number":652,"context_line":"        spec.obj_reset_changes()"},{"line_number":653,"context_line":"        return spec"}],"source_content_type":"text/x-python","patch_set":4,"id":"624df2a8_91feea9d","line":650,"range":{"start_line":650,"start_character":10,"end_line":650,"end_character":23},"updated":"2022-01-17 14:15:09.000000000","message":"and here it gets saved back as part of the request spec so we don\u0027t need to do this next time.","commit_id":"e853bb57181721725a89656b3cb3058636630a6e"}],"nova/tests/unit/objects/test_request_spec.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8ea31e184e62da0ff1454a07ba31cff512c40ca5","unresolved":true,"context_lines":[{"line_number":648,"context_line":"            self.context, fake_spec[\u0027instance_uuid\u0027])"},{"line_number":649,"context_line":""},{"line_number":650,"context_line":"        self.assertEqual(2, len(req_obj.numa_topology.cells))"},{"line_number":651,"context_line":"        self.assertEqual({1, 2}, req_obj.numa_topology.cells[0].pcpuset)"},{"line_number":652,"context_line":"        self.assertEqual({3, 4}, req_obj.numa_topology.cells[1].pcpuset)"},{"line_number":653,"context_line":""},{"line_number":654,"context_line":"        mock_save.assert_called_once()"},{"line_number":655,"context_line":""},{"line_number":656,"context_line":"    def _check_update_primitive(self, req_obj, changes):"},{"line_number":657,"context_line":"        self.assertEqual(req_obj.instance_uuid, changes[\u0027instance_uuid\u0027])"}],"source_content_type":"text/x-python","patch_set":4,"id":"855777c0_4506c840","line":654,"range":{"start_line":651,"start_character":3,"end_line":654,"end_character":38},"updated":"2022-01-17 14:15:09.000000000","message":"ack so this is affimiing that object that need to be migrate are migrated and the pcpuset will nolonger raise an error resolving the previous bug.","commit_id":"e853bb57181721725a89656b3cb3058636630a6e"}]}
