)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"688654d1aee0ae1d0c41b053ee98cca5d68d6006","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"da64fe6d_c71240b0","updated":"2024-06-11 14:25:26.000000000","message":"6","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"def267e8451bd148d0e78c9ef7a82d568cdc4d49","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"8955f2b0_2221e257","in_reply_to":"da64fe6d_c71240b0","updated":"2024-06-11 14:25:56.000000000","message":"ignore this :)","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fbcd299da9cc7ba390c1fcb44d2c2d5aa054dc12","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":21,"id":"21973c49_43d0554d","updated":"2024-07-02 11:41:24.000000000","message":"let\u0027s block the rebuild","commit_id":"150cd84c91ff3e3e2aff435f9d023bf519594370"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"3048cd068eeeda9fe8747d6fc0d0428bf9d58c08","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":28,"id":"70a24be5_50659df3","updated":"2024-10-11 11:57:28.000000000","message":"Looks good.","commit_id":"853f680e8bb2946ca4f1fd30f8ded856fb41a448"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"51f644e704644dd39c4625ed32f24d4ce9fdead1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"863c5602_5d377943","updated":"2024-11-18 18:04:54.000000000","message":"Have no concerns with that patch, good work.","commit_id":"740ffa30e2b3616b559cb7b4e83ea2ee85d352fd"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"43908994dbe46c6cb75e38a3de447c90ee50dab4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":30,"id":"671ea989_572fe97a","updated":"2024-11-15 10:35:56.000000000","message":"still looks good.","commit_id":"740ffa30e2b3616b559cb7b4e83ea2ee85d352fd"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"34871799b7b1f87bae71be97406b5294cd9044e3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":32,"id":"bf81869a_d150b04b","updated":"2024-11-21 09:45:20.000000000","message":"q","commit_id":"ac5b13a59076c5e6c49890565dbe1aec6091c345"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"ec9d222275d67a3854f2eb55c7797ba4553a2cb8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"15882f2a_2cc16ad2","updated":"2024-12-05 16:09:25.000000000","message":"recheck ,(Failed to establish authenticated ssh connection to cirros@172.24.5.206 (Authentication failed.). Number attempts: 16. Retry after 17 seconds.) probably a ssh timeout.","commit_id":"d6f5a30caa1a4a139dc67272a150d24e44892a91"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ddd3d3f11a8f52169b80cbe705b9cca2eef7ee74","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"8207b157_31c4b033","updated":"2024-11-28 08:55:35.000000000","message":"recheck guest ssh timeout","commit_id":"d6f5a30caa1a4a139dc67272a150d24e44892a91"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"ffb49214ddd046ef3371e62ab699656f18789887","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":35,"id":"d9928c2b_a180ee50","updated":"2024-12-05 09:22:22.000000000","message":"recheck integrated-compute guest kernel panic\n```\n[    6.645859] Kernel panic - not syncing: Attempted to kill init! exitcode\u003d0x00001000\n```","commit_id":"d6f5a30caa1a4a139dc67272a150d24e44892a91"}],"nova/compute/api.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1666681fbe1e7d63a17310c06aa86bd0af8b388c","unresolved":true,"context_lines":[{"line_number":4429,"context_line":"        return allow_same_host"},{"line_number":4430,"context_line":""},{"line_number":4431,"context_line":"    @block_shares_not_supported()"},{"line_number":4432,"context_line":"    # FIXME(sean-k-mooney): Shelve works but unshelve does not due to bug"},{"line_number":4433,"context_line":"    # #1851545, so block it for now"},{"line_number":4434,"context_line":"    @block_port_accelerators()"},{"line_number":4435,"context_line":"    @reject_vtpm_instances(instance_actions.SHELVE)"},{"line_number":4436,"context_line":"    @block_accelerators(until_service\u003d54)"}],"source_content_type":"text/x-python","patch_set":7,"id":"c1b4ef7e_f1089b11","line":4433,"range":{"start_line":4432,"start_character":0,"end_line":4433,"end_character":35},"updated":"2024-01-30 12:24:17.000000000","message":"I\u0027m wondering where this is coming from I\u0027m suspecting a rebase artifact","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"da9e013eeeb8b276298cce6e456b0fa73a969d41","unresolved":true,"context_lines":[{"line_number":4429,"context_line":"        return allow_same_host"},{"line_number":4430,"context_line":""},{"line_number":4431,"context_line":"    @block_shares_not_supported()"},{"line_number":4432,"context_line":"    # FIXME(sean-k-mooney): Shelve works but unshelve does not due to bug"},{"line_number":4433,"context_line":"    # #1851545, so block it for now"},{"line_number":4434,"context_line":"    @block_port_accelerators()"},{"line_number":4435,"context_line":"    @reject_vtpm_instances(instance_actions.SHELVE)"},{"line_number":4436,"context_line":"    @block_accelerators(until_service\u003d54)"}],"source_content_type":"text/x-python","patch_set":7,"id":"71d5b367_f0c8c205","line":4433,"range":{"start_line":4432,"start_character":0,"end_line":4433,"end_character":35},"in_reply_to":"0df11938_6cbebf12","updated":"2024-02-19 16:58:25.000000000","message":"the diff here showing tha your patch now adds this comment. Maybe it was in master before, but removed in the meantime. could you double check it?","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"fb58f357a4d4a68d7ecde9ddee9f73f721deafc4","unresolved":false,"context_lines":[{"line_number":4429,"context_line":"        return allow_same_host"},{"line_number":4430,"context_line":""},{"line_number":4431,"context_line":"    @block_shares_not_supported()"},{"line_number":4432,"context_line":"    # FIXME(sean-k-mooney): Shelve works but unshelve does not due to bug"},{"line_number":4433,"context_line":"    # #1851545, so block it for now"},{"line_number":4434,"context_line":"    @block_port_accelerators()"},{"line_number":4435,"context_line":"    @reject_vtpm_instances(instance_actions.SHELVE)"},{"line_number":4436,"context_line":"    @block_accelerators(until_service\u003d54)"}],"source_content_type":"text/x-python","patch_set":7,"id":"9e913dc4_8eaca6e7","line":4433,"range":{"start_line":4432,"start_character":0,"end_line":4433,"end_character":35},"in_reply_to":"71d5b367_f0c8c205","updated":"2024-02-28 14:54:27.000000000","message":"This is not anymore in master. So I removed it.","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"7196d79b6975321035308f7d38245429c0838646","unresolved":true,"context_lines":[{"line_number":4429,"context_line":"        return allow_same_host"},{"line_number":4430,"context_line":""},{"line_number":4431,"context_line":"    @block_shares_not_supported()"},{"line_number":4432,"context_line":"    # FIXME(sean-k-mooney): Shelve works but unshelve does not due to bug"},{"line_number":4433,"context_line":"    # #1851545, so block it for now"},{"line_number":4434,"context_line":"    @block_port_accelerators()"},{"line_number":4435,"context_line":"    @reject_vtpm_instances(instance_actions.SHELVE)"},{"line_number":4436,"context_line":"    @block_accelerators(until_service\u003d54)"}],"source_content_type":"text/x-python","patch_set":7,"id":"0df11938_6cbebf12","line":4433,"range":{"start_line":4432,"start_character":0,"end_line":4433,"end_character":35},"in_reply_to":"c1b4ef7e_f1089b11","updated":"2024-02-16 15:56:02.000000000","message":"Probably part of a previous patches from Sean, and it was added to this one in a rebase. Or I\u0027m just moving the comments.","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"688654d1aee0ae1d0c41b053ee98cca5d68d6006","unresolved":true,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"21c8c7fb_ec733e6f","line":3624,"updated":"2024-06-11 14:25:26.000000000","message":"rebuild can be done in a VM in \"ACTIVE, SHUTOFF or ERROR.\" according to our API ref.\n\nRebuild in the compute manager will do power_off via the compute manager so that will do an unmount. And the it will call driver.spawn to get a new VM built. So we need to do a mount before the spawn.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2232e55018d21d7ba11322936f8c1462ffcc5a13","unresolved":true,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"1e42799c_f6a11a32","line":3624,"in_reply_to":"1de4a601_733cfc42","updated":"2024-08-28 13:34:50.000000000","message":"I think this list of TODOs are still open.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"82a8faf339f5d68739b79ae223511d3724b39d20","unresolved":true,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"5c8d71c9_bb6bfae9","line":3624,"in_reply_to":"1e42799c_f6a11a32","updated":"2024-08-29 13:45:33.000000000","message":"I just tested and rebuilding an instance with a share is allowed but the rebuilt instance lost the access to the share. So we either need to block rebuild with a share or we need to fix it so that the instance is not loosing the share.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"196c4f28661188e55c1b02451b9fa4b5c993c120","unresolved":true,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"3e13713e_29aa8c0e","line":3624,"in_reply_to":"21c8c7fb_ec733e6f","updated":"2024-06-26 16:12:23.000000000","message":"I agree, but we might encounter a problem. Spawn doesn\u0027t currently support shares, which means the driver won\u0027t process the XML correctly.\n\nTherefore, we have two options:\n\n1-Implement share support in Spawn.\n2-Accept that the rebuild feature won\u0027t include share mounting in this initial version.\n\nAdding share support in the driver and compute parts of Spawn shouldn\u0027t be too challenging, but it would be more complicated on the API side and would deviate from our current specifications.\n\nLet\u0027s discuss this further in our call.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"fbcd299da9cc7ba390c1fcb44d2c2d5aa054dc12","unresolved":true,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"1de4a601_733cfc42","line":3624,"in_reply_to":"3e13713e_29aa8c0e","updated":"2024-07-02 11:41:24.000000000","message":"I vote for 2:\n* lets add a comment to the spec that rebuild with shares won\u0027t be supported\n* add the decorator for the compute api method to block rebuild if there is shares attached. \n* mention this in the documentation of the feature. (btw the user can decide to stop the instance, unmount the shares, rebuild the instance, mount the shares, start the instance as a workaround for the time being)","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a1be25306e149d32a03da2d581ab723cdbebd1ac","unresolved":false,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"aa12c9cf_e7636645","line":3624,"in_reply_to":"4b1dc555_aee474cd","updated":"2024-09-09 16:13:30.000000000","message":"Done","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d4b525120d4429fde3150eb00ab684e0cb5b8cf7","unresolved":true,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"91b65244_c1b3e5d0","line":3624,"in_reply_to":"5c8d71c9_bb6bfae9","updated":"2024-08-29 13:52:04.000000000","message":"... and even a hard reboot after it will not recover the lost share as that will end up failing with:\n```\nlibvirt.libvirtError: internal error: the virtiofs export directory \u0027/opt/stack/data/nova/mnt/13da2fa9326f3c35237581325c4391d5\u0027 does not exist\n```","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"596c7c868defc9f85e223d3da8573a56e68051c7","unresolved":true,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"4b1dc555_aee474cd","line":3624,"in_reply_to":"703337b7_f14efc1c","updated":"2024-09-07 16:13:14.000000000","message":"We discussed this today and I still agree to block rebuild with share for now and after the API patch landed we can revisit this.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"36333fb9c429b8aadc8675b0f327e46651fa71fd","unresolved":true,"context_lines":[{"line_number":3621,"context_line":"    @check_instance_lock"},{"line_number":3622,"context_line":"    @check_instance_state(vm_state\u003d[vm_states.ACTIVE, vm_states.STOPPED,"},{"line_number":3623,"context_line":"                                    vm_states.ERROR])"},{"line_number":3624,"context_line":"    def rebuild(self, context, instance, image_href, admin_password,"},{"line_number":3625,"context_line":"                files_to_inject\u003dNone, reimage_boot_volume\u003dFalse, **kwargs):"},{"line_number":3626,"context_line":"        \"\"\"Rebuild the given instance with the provided attributes.\"\"\""},{"line_number":3627,"context_line":"        files_to_inject \u003d files_to_inject or []"}],"source_content_type":"text/x-python","patch_set":18,"id":"703337b7_f14efc1c","line":3624,"in_reply_to":"91b65244_c1b3e5d0","updated":"2024-08-29 13:57:58.000000000","message":"the way out of the inconsistency is to stop the instance, attach the same share again and then start the instance.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"aad7cc97606177bd3964721260079ec508fc4f50","unresolved":true,"context_lines":[{"line_number":123,"context_line":"MIN_COMPUTE_VDPA_HOTPLUG_LIVE_MIGRATION \u003d 63"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"SUPPORT_SHARES \u003d 67"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# FIXME(danms): Keep a global cache of the cells we find the"},{"line_number":129,"context_line":"# first time we look. This needs to be refreshed on a timer or"}],"source_content_type":"text/x-python","patch_set":22,"id":"55d49c41_aef21109","line":126,"updated":"2024-07-31 14:18:37.000000000","message":"I don\u0027t see where you reuse that variable. If you want to conditional accept API calls until the service version is above or equal that version, then you need to do something with your decorator","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a1be25306e149d32a03da2d581ab723cdbebd1ac","unresolved":true,"context_lines":[{"line_number":123,"context_line":"MIN_COMPUTE_VDPA_HOTPLUG_LIVE_MIGRATION \u003d 63"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"SUPPORT_SHARES \u003d 67"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# FIXME(danms): Keep a global cache of the cells we find the"},{"line_number":129,"context_line":"# first time we look. This needs to be refreshed on a timer or"}],"source_content_type":"text/x-python","patch_set":22,"id":"816f6a52_cc1f8ea6","line":126,"in_reply_to":"55d49c41_aef21109","updated":"2024-09-09 16:13:30.000000000","message":"This is used in check_shares_supported() method in hardware.py file.","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"51f644e704644dd39c4625ed32f24d4ce9fdead1","unresolved":false,"context_lines":[{"line_number":123,"context_line":"MIN_COMPUTE_VDPA_HOTPLUG_LIVE_MIGRATION \u003d 63"},{"line_number":124,"context_line":""},{"line_number":125,"context_line":""},{"line_number":126,"context_line":"SUPPORT_SHARES \u003d 67"},{"line_number":127,"context_line":""},{"line_number":128,"context_line":"# FIXME(danms): Keep a global cache of the cells we find the"},{"line_number":129,"context_line":"# first time we look. This needs to be refreshed on a timer or"}],"source_content_type":"text/x-python","patch_set":22,"id":"7e311d4b_962de7df","line":126,"in_reply_to":"816f6a52_cc1f8ea6","updated":"2024-11-18 18:04:54.000000000","message":"Acknowledged","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"4bfe5b3b29ba1fab1da9417fd357ff1497c0a42f","unresolved":false,"context_lines":[{"line_number":3615,"context_line":"            if img_arch:"},{"line_number":3616,"context_line":"                fields_obj.Architecture.canonicalize(img_arch)"},{"line_number":3617,"context_line":""},{"line_number":3618,"context_line":"    @block_shares_not_supported()"},{"line_number":3619,"context_line":"    @reject_vtpm_instances(instance_actions.REBUILD)"},{"line_number":3620,"context_line":"    @block_accelerators(until_service\u003dSUPPORT_ACCELERATOR_SERVICE_FOR_REBUILD)"},{"line_number":3621,"context_line":"    # TODO(stephenfin): We should expand kwargs out to named args"}],"source_content_type":"text/x-python","patch_set":26,"id":"e76498bf_6e7dd7da","line":3618,"updated":"2024-09-17 12:25:51.000000000","message":"Thanks this was missing before but now I confirmed that rebuild is blocked.","commit_id":"79cccc3fc53e3f9100df10a4753c667f6207986c"}],"nova/compute/manager.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"688654d1aee0ae1d0c41b053ee98cca5d68d6006","unresolved":true,"context_lines":[{"line_number":3544,"context_line":"            except NotImplementedError:"},{"line_number":3545,"context_line":"                # Fallback to just powering off the instance if the"},{"line_number":3546,"context_line":"                # hypervisor doesn\u0027t implement the soft_delete method"},{"line_number":3547,"context_line":"                self.driver.power_off(context, instance)"},{"line_number":3548,"context_line":"            instance.power_state \u003d self._get_power_state(instance)"},{"line_number":3549,"context_line":"            instance.vm_state \u003d vm_states.SOFT_DELETED"},{"line_number":3550,"context_line":"            instance.task_state \u003d None"}],"source_content_type":"text/x-python","patch_set":18,"id":"125738a1_184b71aa","line":3547,"updated":"2024-06-11 14:25:26.000000000","message":"If we want to be strict the we need to unmount here. The restore_instance will call the power_on on the compute manager and that will do a mount.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"51d67b3c4f6ace195c1b9bac88be60d45ad89620","unresolved":true,"context_lines":[{"line_number":3544,"context_line":"            except NotImplementedError:"},{"line_number":3545,"context_line":"                # Fallback to just powering off the instance if the"},{"line_number":3546,"context_line":"                # hypervisor doesn\u0027t implement the soft_delete method"},{"line_number":3547,"context_line":"                self.driver.power_off(context, instance)"},{"line_number":3548,"context_line":"            instance.power_state \u003d self._get_power_state(instance)"},{"line_number":3549,"context_line":"            instance.vm_state \u003d vm_states.SOFT_DELETED"},{"line_number":3550,"context_line":"            instance.task_state \u003d None"}],"source_content_type":"text/x-python","patch_set":18,"id":"5fb05d21_5c3d0ac3","line":3547,"in_reply_to":"125738a1_184b71aa","updated":"2024-06-18 12:23:14.000000000","message":"If we choose to do the unmount then lets call the manager _power_off_instance here instead.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"196c4f28661188e55c1b02451b9fa4b5c993c120","unresolved":false,"context_lines":[{"line_number":3544,"context_line":"            except NotImplementedError:"},{"line_number":3545,"context_line":"                # Fallback to just powering off the instance if the"},{"line_number":3546,"context_line":"                # hypervisor doesn\u0027t implement the soft_delete method"},{"line_number":3547,"context_line":"                self.driver.power_off(context, instance)"},{"line_number":3548,"context_line":"            instance.power_state \u003d self._get_power_state(instance)"},{"line_number":3549,"context_line":"            instance.vm_state \u003d vm_states.SOFT_DELETED"},{"line_number":3550,"context_line":"            instance.task_state \u003d None"}],"source_content_type":"text/x-python","patch_set":18,"id":"5d0bc98b_3546bcd5","line":3547,"in_reply_to":"5fb05d21_5c3d0ac3","updated":"2024-06-26 16:12:23.000000000","message":"Done","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"688654d1aee0ae1d0c41b053ee98cca5d68d6006","unresolved":true,"context_lines":[{"line_number":4644,"context_line":"                # self.manila_api.lock(share_mapping.share_id)"},{"line_number":4645,"context_line":"                # Explicitly locking the share is not needed as"},{"line_number":4646,"context_line":"                # create_access_rule() from the sdk will do it if the"},{"line_number":4647,"context_line":"                # lock_visibility and lock_deletion flags are passed"},{"line_number":4648,"context_line":"                self.manila_api.allow("},{"line_number":4649,"context_line":"                    share_mapping.share_id, access_type, access_to, \"rw\""},{"line_number":4650,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":18,"id":"14bf1ee8_7cd1e170","line":4647,"updated":"2024-06-11 14:25:26.000000000","message":"I think this change belongs to the patch that adds these comments in the first place.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"196c4f28661188e55c1b02451b9fa4b5c993c120","unresolved":false,"context_lines":[{"line_number":4644,"context_line":"                # self.manila_api.lock(share_mapping.share_id)"},{"line_number":4645,"context_line":"                # Explicitly locking the share is not needed as"},{"line_number":4646,"context_line":"                # create_access_rule() from the sdk will do it if the"},{"line_number":4647,"context_line":"                # lock_visibility and lock_deletion flags are passed"},{"line_number":4648,"context_line":"                self.manila_api.allow("},{"line_number":4649,"context_line":"                    share_mapping.share_id, access_type, access_to, \"rw\""},{"line_number":4650,"context_line":"                )"}],"source_content_type":"text/x-python","patch_set":18,"id":"aaf51b7b_63957a8b","line":4647,"in_reply_to":"14bf1ee8_7cd1e170","updated":"2024-06-26 16:12:23.000000000","message":"Done","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"aad7cc97606177bd3964721260079ec508fc4f50","unresolved":true,"context_lines":[{"line_number":3545,"context_line":"            except NotImplementedError:"},{"line_number":3546,"context_line":"                # Fallback to just powering off the instance if the"},{"line_number":3547,"context_line":"                # hypervisor doesn\u0027t implement the soft_delete method"},{"line_number":3548,"context_line":"                self._power_off_instance("},{"line_number":3549,"context_line":"                    context, instance, clean_shutdown\u003dFalse"},{"line_number":3550,"context_line":"                )"},{"line_number":3551,"context_line":"            instance.power_state \u003d self._get_power_state(instance)"}],"source_content_type":"text/x-python","patch_set":22,"id":"7033186a_137f1124","line":3548,"updated":"2024-07-31 14:18:37.000000000","message":"why is this needed in that patch ?","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"51f644e704644dd39c4625ed32f24d4ce9fdead1","unresolved":false,"context_lines":[{"line_number":3545,"context_line":"            except NotImplementedError:"},{"line_number":3546,"context_line":"                # Fallback to just powering off the instance if the"},{"line_number":3547,"context_line":"                # hypervisor doesn\u0027t implement the soft_delete method"},{"line_number":3548,"context_line":"                self._power_off_instance("},{"line_number":3549,"context_line":"                    context, instance, clean_shutdown\u003dFalse"},{"line_number":3550,"context_line":"                )"},{"line_number":3551,"context_line":"            instance.power_state \u003d self._get_power_state(instance)"}],"source_content_type":"text/x-python","patch_set":22,"id":"433e7c87_cffa895f","line":3548,"in_reply_to":"32c54216_c2e28f50","updated":"2024-11-18 18:04:54.000000000","message":"Acknowledged","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a1be25306e149d32a03da2d581ab723cdbebd1ac","unresolved":true,"context_lines":[{"line_number":3545,"context_line":"            except NotImplementedError:"},{"line_number":3546,"context_line":"                # Fallback to just powering off the instance if the"},{"line_number":3547,"context_line":"                # hypervisor doesn\u0027t implement the soft_delete method"},{"line_number":3548,"context_line":"                self._power_off_instance("},{"line_number":3549,"context_line":"                    context, instance, clean_shutdown\u003dFalse"},{"line_number":3550,"context_line":"                )"},{"line_number":3551,"context_line":"            instance.power_state \u003d self._get_power_state(instance)"}],"source_content_type":"text/x-python","patch_set":22,"id":"32c54216_c2e28f50","line":3548,"in_reply_to":"7033186a_137f1124","updated":"2024-09-09 16:13:30.000000000","message":"I\u0027m sorry, I made a mistake. It is not attached to the correct patch. I have moved it to the \"Deletion of associated share mappings on instance deletion\" patch.\nNote: This calls for the manager methods instead of the driver ones to add share management.","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"}],"nova/share/manila.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"688654d1aee0ae1d0c41b053ee98cca5d68d6006","unresolved":true,"context_lines":[{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"class Lock():"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def __init__(self, manila_lock):"},{"line_number":123,"context_line":"        self.id \u003d manila_lock.id"}],"source_content_type":"text/x-python","patch_set":18,"id":"51fafff6_0510ab08","line":120,"updated":"2024-06-11 14:25:26.000000000","message":"changes in these file seems to be not belonging to this patch.","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"483bf0c18da4ba4ee9f9695497123e0f5b37cd66","unresolved":false,"context_lines":[{"line_number":117,"context_line":"        )"},{"line_number":118,"context_line":""},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"class Lock():"},{"line_number":121,"context_line":""},{"line_number":122,"context_line":"    def __init__(self, manila_lock):"},{"line_number":123,"context_line":"        self.id \u003d manila_lock.id"}],"source_content_type":"text/x-python","patch_set":18,"id":"02707fda_a23e8b78","line":120,"in_reply_to":"51fafff6_0510ab08","updated":"2024-06-18 08:18:39.000000000","message":"Done","commit_id":"203764e6344930cad768449332b465ddb60dcc87"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"d045c7380dd74b8d1ab8d8ba689e62a25760eed4","unresolved":true,"context_lines":[{"line_number":281,"context_line":"            access_type\u003daccess_type,"},{"line_number":282,"context_line":"            access_to\u003daccess_to,"},{"line_number":283,"context_line":"            access_level\u003daccess_level,"},{"line_number":284,"context_line":"            lock_visibility\u003dTrue,"},{"line_number":285,"context_line":"            lock_deletion\u003dTrue,"},{"line_number":286,"context_line":"            lock_reason\u003d\"Lock by nova\","},{"line_number":287,"context_line":"        )"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        access \u003d Access.from_manila_access(access)"}],"source_content_type":"text/x-python","patch_set":22,"id":"82c65e6c_b996fa2b","line":286,"range":{"start_line":284,"start_character":0,"end_line":286,"end_character":39},"updated":"2024-07-30 16:42:01.000000000","message":"is this change belongs to this patch? Does this reverts a fix?","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"a1be25306e149d32a03da2d581ab723cdbebd1ac","unresolved":false,"context_lines":[{"line_number":281,"context_line":"            access_type\u003daccess_type,"},{"line_number":282,"context_line":"            access_to\u003daccess_to,"},{"line_number":283,"context_line":"            access_level\u003daccess_level,"},{"line_number":284,"context_line":"            lock_visibility\u003dTrue,"},{"line_number":285,"context_line":"            lock_deletion\u003dTrue,"},{"line_number":286,"context_line":"            lock_reason\u003d\"Lock by nova\","},{"line_number":287,"context_line":"        )"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        access \u003d Access.from_manila_access(access)"}],"source_content_type":"text/x-python","patch_set":22,"id":"074df291_ca2c539a","line":286,"range":{"start_line":284,"start_character":0,"end_line":286,"end_character":39},"in_reply_to":"512f7f1e_7535dacd","updated":"2024-09-09 16:13:30.000000000","message":"Done","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"2232e55018d21d7ba11322936f8c1462ffcc5a13","unresolved":true,"context_lines":[{"line_number":281,"context_line":"            access_type\u003daccess_type,"},{"line_number":282,"context_line":"            access_to\u003daccess_to,"},{"line_number":283,"context_line":"            access_level\u003daccess_level,"},{"line_number":284,"context_line":"            lock_visibility\u003dTrue,"},{"line_number":285,"context_line":"            lock_deletion\u003dTrue,"},{"line_number":286,"context_line":"            lock_reason\u003d\"Lock by nova\","},{"line_number":287,"context_line":"        )"},{"line_number":288,"context_line":""},{"line_number":289,"context_line":"        access \u003d Access.from_manila_access(access)"}],"source_content_type":"text/x-python","patch_set":22,"id":"512f7f1e_7535dacd","line":286,"range":{"start_line":284,"start_character":0,"end_line":286,"end_character":39},"in_reply_to":"82c65e6c_b996fa2b","updated":"2024-08-28 13:34:50.000000000","message":"this still needs to but in the correct commit.","commit_id":"b2f804358be11c477ac57d1c3b2bd0e25b764857"}],"nova/virt/hardware.py":[{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1666681fbe1e7d63a17310c06aa86bd0af8b388c","unresolved":true,"context_lines":[{"line_number":2816,"context_line":"    return None"},{"line_number":2817,"context_line":""},{"line_number":2818,"context_line":""},{"line_number":2819,"context_line":"def check_shares_supported(context, instance):"},{"line_number":2820,"context_line":"    \"\"\"Check that the compute version support shares and required traits and"},{"line_number":2821,"context_line":"    instance extra specs are configured."},{"line_number":2822,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"d269d512_64a1a3a7","line":2819,"updated":"2024-01-30 12:24:17.000000000","message":"most of these checks are in the compute/api.py so I would move this there too. Especially that API() already has a placementclient() so you don\u0027t have to create one for each call.","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":7166,"name":"Sylvain Bauza","email":"sbauza@redhat.com","username":"sbauza"},"change_message_id":"51f644e704644dd39c4625ed32f24d4ce9fdead1","unresolved":false,"context_lines":[{"line_number":2816,"context_line":"    return None"},{"line_number":2817,"context_line":""},{"line_number":2818,"context_line":""},{"line_number":2819,"context_line":"def check_shares_supported(context, instance):"},{"line_number":2820,"context_line":"    \"\"\"Check that the compute version support shares and required traits and"},{"line_number":2821,"context_line":"    instance extra specs are configured."},{"line_number":2822,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"9fe2d181_413cb3c6","line":2819,"in_reply_to":"b71ff8b3_b46b5c39","updated":"2024-11-18 18:04:54.000000000","message":"I\u0027m cool with the current proposal, we can change that later.","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"7196d79b6975321035308f7d38245429c0838646","unresolved":true,"context_lines":[{"line_number":2816,"context_line":"    return None"},{"line_number":2817,"context_line":""},{"line_number":2818,"context_line":""},{"line_number":2819,"context_line":"def check_shares_supported(context, instance):"},{"line_number":2820,"context_line":"    \"\"\"Check that the compute version support shares and required traits and"},{"line_number":2821,"context_line":"    instance extra specs are configured."},{"line_number":2822,"context_line":"    \"\"\""}],"source_content_type":"text/x-python","patch_set":7,"id":"b71ff8b3_b46b5c39","line":2819,"in_reply_to":"d269d512_64a1a3a7","updated":"2024-02-16 15:56:02.000000000","message":"I guess we already discuss that. Having this in HW was suggested by Sean.\nTBH I have no preferences. I propose to let bauzas to tell what he prefers.\nThen I will update accordingly.\nI would say also that it will be great to have an API to do this kind of stuff, as I notice Melanie also implemented this kind of mechanism on her side.","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"1666681fbe1e7d63a17310c06aa86bd0af8b388c","unresolved":true,"context_lines":[{"line_number":2827,"context_line":""},{"line_number":2828,"context_line":"    host \u003d compute_node.ComputeNode().get_first_node_by_host_for_old_compat("},{"line_number":2829,"context_line":"        context, instance.host)"},{"line_number":2830,"context_line":"    client \u003d report.SchedulerReportClient()"},{"line_number":2831,"context_line":"    trait_info \u003d client.get_provider_traits(context, host.uuid)"},{"line_number":2832,"context_line":""},{"line_number":2833,"context_line":"    if not ("}],"source_content_type":"text/x-python","patch_set":7,"id":"99660c54_300b7fed","line":2830,"updated":"2024-01-30 12:24:17.000000000","message":"you might want to use `report_client_singleton()` instead","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":9708,"name":"Balazs Gibizer","display_name":"gibi","email":"gibizer@gmail.com","username":"gibi"},"change_message_id":"da9e013eeeb8b276298cce6e456b0fa73a969d41","unresolved":true,"context_lines":[{"line_number":2827,"context_line":""},{"line_number":2828,"context_line":"    host \u003d compute_node.ComputeNode().get_first_node_by_host_for_old_compat("},{"line_number":2829,"context_line":"        context, instance.host)"},{"line_number":2830,"context_line":"    client \u003d report.SchedulerReportClient()"},{"line_number":2831,"context_line":"    trait_info \u003d client.get_provider_traits(context, host.uuid)"},{"line_number":2832,"context_line":""},{"line_number":2833,"context_line":"    if not ("}],"source_content_type":"text/x-python","patch_set":7,"id":"8aba95b3_7d17b055","line":2830,"in_reply_to":"2b88a817_5a1ca426","updated":"2024-02-19 16:58:25.000000000","message":"yepp","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"fb58f357a4d4a68d7ecde9ddee9f73f721deafc4","unresolved":false,"context_lines":[{"line_number":2827,"context_line":""},{"line_number":2828,"context_line":"    host \u003d compute_node.ComputeNode().get_first_node_by_host_for_old_compat("},{"line_number":2829,"context_line":"        context, instance.host)"},{"line_number":2830,"context_line":"    client \u003d report.SchedulerReportClient()"},{"line_number":2831,"context_line":"    trait_info \u003d client.get_provider_traits(context, host.uuid)"},{"line_number":2832,"context_line":""},{"line_number":2833,"context_line":"    if not ("}],"source_content_type":"text/x-python","patch_set":7,"id":"c6bcf66f_4485cfdf","line":2830,"in_reply_to":"8aba95b3_7d17b055","updated":"2024-02-28 14:54:27.000000000","message":"done","commit_id":"d498708ee1560256de82e41a349b483496c2c535"},{"author":{"_account_id":16207,"name":"ribaudr","display_name":"uggla","email":"rene.ribaud@gmail.com","username":"uggla","status":"Red Hat"},"change_message_id":"7196d79b6975321035308f7d38245429c0838646","unresolved":true,"context_lines":[{"line_number":2827,"context_line":""},{"line_number":2828,"context_line":"    host \u003d compute_node.ComputeNode().get_first_node_by_host_for_old_compat("},{"line_number":2829,"context_line":"        context, instance.host)"},{"line_number":2830,"context_line":"    client \u003d report.SchedulerReportClient()"},{"line_number":2831,"context_line":"    trait_info \u003d client.get_provider_traits(context, host.uuid)"},{"line_number":2832,"context_line":""},{"line_number":2833,"context_line":"    if not ("}],"source_content_type":"text/x-python","patch_set":7,"id":"2b88a817_5a1ca426","line":2830,"in_reply_to":"99660c54_300b7fed","updated":"2024-02-16 15:56:02.000000000","message":"OK, I guess this ensures only a single instance of the client is used ? Right?\nTo my mind, that should be good to update the SchedulerReportClient docstring to explain that this client should be instantiated via the singleton.","commit_id":"d498708ee1560256de82e41a349b483496c2c535"}]}
