)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"76975f90e91f320e889341c2d06487a12802b539","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"59b4c0e9_8134c955","updated":"2026-01-21 13:36:36.000000000","message":"recheck unrelated nova-ceph-multistore failure","commit_id":"2b7b27132451fd4a491a812de3669b3771595c90"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"4f08d325e244bc12a3d460901594d655b6369544","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3b41ed9e_e22af9e6","updated":"2026-01-21 13:04:35.000000000","message":"teim-ci: manual","commit_id":"2b7b27132451fd4a491a812de3669b3771595c90"}],"nova/api/validation/extra_specs/validators.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f1a82fbb3e646c978f59a62e9125ad15641c391","unresolved":false,"context_lines":[{"line_number":64,"context_line":""},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"def load_validators():"},{"line_number":67,"context_line":"    def _report_load_failure(mgr, ep, err):"},{"line_number":68,"context_line":"        LOG.warning(u\u0027Failed to load %s: %s\u0027, ep.module_name, err)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"    mgr \u003d extension.ExtensionManager("}],"source_content_type":"text/x-python","patch_set":2,"id":"80af7ed7_fe88a6f7","line":67,"in_reply_to":"1d1d6460_9d112faf","updated":"2026-01-21 13:39:08.000000000","message":"\u003e Consider adding type hints to the newly modified functions for better code documentation\n\u003e \n\u003e **Severity**: SUGGESTION | **Confidence**: 0.7\n\u003e \n\u003e **Benefit**: Improved code readability and better IDE support with static type checking\n\u003e \n\u003e **Recommendation**:\n\u003e Add return type annotations to functions that were modified by removing global statements\n\nthat valid but can be done later.","commit_id":"2b7b27132451fd4a491a812de3669b3771595c90"}],"nova/privsep/fs.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f1a82fbb3e646c978f59a62e9125ad15641c391","unresolved":false,"context_lines":[{"line_number":264,"context_line":"    global _MKFS_COMMAND"},{"line_number":265,"context_line":"    global _DEFAULT_MKFS_COMMAND"},{"line_number":266,"context_line":""},{"line_number":267,"context_line":"    _MKFS_COMMAND[os_type] \u003d command"},{"line_number":268,"context_line":"    if os_type \u003d\u003d \u0027default\u0027:"},{"line_number":269,"context_line":"        _DEFAULT_MKFS_COMMAND \u003d command"},{"line_number":270,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"52fe0cc5_bd49fc6e","side":"PARENT","line":267,"updated":"2026-01-21 13:39:08.000000000","message":"note to self.\n\nthe reason we can remove this is because we are not assigning to the global.\nwe are assigneing through the globale using the subscript operator.\n\ni would assume append or pop woudl also work simiarly\n\n\nwe still need globale when we are directly assigned to \n_DEFAULT_MKFS_COMMAND below because it makign the _DEFAULT_MKFS_COMMAND gloabl point to a diffent location in memory vs derefencign it tand mutating data ofset into the array/dict","commit_id":"e785ab52dc77bae29e70be1b928483228af34ce9"}],"nova/tests/unit/compute/test_compute.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f1a82fbb3e646c978f59a62e9125ad15641c391","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        self.stub_out("},{"line_number":418,"context_line":"            \u0027nova.db.main.api.block_device_mapping_update\u0027, store_cinfo)"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"    @mock.patch.object(compute_utils, \u0027EventReporter\u0027)"},{"line_number":421,"context_line":"    def test_attach_volume_serial(self, mock_event):"},{"line_number":422,"context_line":"        fake_bdm \u003d objects.BlockDeviceMapping(context\u003dself.context,"},{"line_number":423,"context_line":"                                              **self.fake_volume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"96590433_c58451e8","line":420,"in_reply_to":"225371f7_d87d976e","updated":"2026-01-21 13:39:08.000000000","message":"\u003e Mock usage in tests lacks consistent autospec\u003dTrue parameter\n\u003e \n\u003e **Severity**: WARNING | **Confidence**: 0.7\n\u003e \n\u003e **Impact**: Mock objects without autospec may not properly enforce interface contracts\n\u003e \n\u003e **Suggestion**:\n\u003e Add autospec\u003dTrue to all @mock.patch decorators to ensure proper mock behavior\nthis is a geneal impovement we could/should make in much fo nova and should be adressed in a sperate patch","commit_id":"2b7b27132451fd4a491a812de3669b3771595c90"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"eb2b13be417e47a18db5a73dd6d42a8dc0dc9742","unresolved":false,"context_lines":[{"line_number":417,"context_line":"        self.stub_out("},{"line_number":418,"context_line":"            \u0027nova.db.main.api.block_device_mapping_update\u0027, store_cinfo)"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"    @mock.patch.object(compute_utils, \u0027EventReporter\u0027)"},{"line_number":421,"context_line":"    def test_attach_volume_serial(self, mock_event):"},{"line_number":422,"context_line":"        fake_bdm \u003d objects.BlockDeviceMapping(context\u003dself.context,"},{"line_number":423,"context_line":"                                              **self.fake_volume)"}],"source_content_type":"text/x-python","patch_set":2,"id":"d290b3ad_43367024","line":420,"in_reply_to":"96590433_c58451e8","updated":"2026-01-21 13:45:29.000000000","message":"oslotest monkey patches this for us so we don\u0027t need to do this.\n\nhttps://github.com/openstack/oslotest/blob/master/oslotest/mock_fixture.py","commit_id":"2b7b27132451fd4a491a812de3669b3771595c90"}],"nova/tests/unit/fake_network.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f1a82fbb3e646c978f59a62e9125ad15641c391","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                  fake_async_networkinfo)"},{"line_number":152,"context_line":"    test.stub_out(\u0027nova.compute.manager.ComputeManager._deallocate_network\u0027,"},{"line_number":153,"context_line":"                  lambda *args, **kwargs: None)"},{"line_number":154,"context_line":""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"def unset_stub_network_methods(test):"},{"line_number":157,"context_line":"    if not _real_functions:"}],"source_content_type":"text/x-python","patch_set":2,"id":"d5f90a63_ffdd16a5","line":154,"in_reply_to":"ed0cf942_1c406780","updated":"2026-01-21 13:39:08.000000000","message":"this si not any less safe then before an dnow its actully got read only access to the var so its technially mroe restricted.","commit_id":"2b7b27132451fd4a491a812de3669b3771595c90"}],"nova/utils.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"0f1a82fbb3e646c978f59a62e9125ad15641c391","unresolved":false,"context_lines":[{"line_number":89,"context_line":"        time.sleep(0)  # noqa: N374"},{"line_number":90,"context_line":""},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"def destroy_default_executor():"},{"line_number":93,"context_line":"    \"\"\"Closes the executor and resets the global to None to allow forked worker"},{"line_number":94,"context_line":"    processes to properly init it."},{"line_number":95,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":2,"id":"707452a3_eeeb5e5f","line":92,"in_reply_to":"f4e60892_91ebdf95","updated":"2026-01-21 13:39:08.000000000","message":"\u003e Global executor access patterns in utils.py could benefit from better encapsulation\n\u003e \n\u003e **Severity**: WARNING | **Confidence**: 0.6\n\u003e \n\u003e **Impact**: Direct global access patterns make testing and debugging more difficult\n\u003e \n\u003e **Suggestion**:\n\u003e Consider using dependency injection or factory patterns for executor management\n\n\nwe did actully dicuss the factory pattern for these and doign the state management diffently but decieed to defer that till later.\n\nso valid suggestion just not for this patch","commit_id":"2b7b27132451fd4a491a812de3669b3771595c90"}]}
