)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"05dbffb49aa96f2ed7a87f8c80aa5d4ce5b4e13f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"e03bcdb8_44cfcb5f","updated":"2024-12-06 13:10:31.000000000","message":"recheck unrelated failure","commit_id":"c05d5634451c9cc2fe02e3e28e0d4b6292fcc156"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c1cb3b23d295d47e609b4ecfe86cf0e25f47b7a1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"5ff98d11_1b2d5971","updated":"2025-03-05 09:53:30.000000000","message":"recheck timeout","commit_id":"db6b0daa33f1c663bef2e415e0adc39e6a6dec59"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"71a6ed7cc8039dc3abb8a9340fea52615c4b5e14","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"0517c90e_08d66330","updated":"2025-06-09 21:10:53.000000000","message":"I am good here but would like to see +W on https://review.opendev.org/c/openstack/nova/+/950867 for microversion 2.27/2.28 correction.","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"db452b06c1aad3957bfe025b63047bc078f260e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e2c37835_83db2da8","updated":"2025-05-26 13:05:43.000000000","message":"I pushed fixes for the issues noted so far to https://review.opendev.org/c/openstack/nova/+/950867/. If I rebase, I can squash those back in here.","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5d28cec1bfec8001a45bb01b39ba53478b51fbc2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"bdc0d355_c10fb064","updated":"2025-06-05 22:35:38.000000000","message":"I think it is mergeable if you address my comments in followup","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"bc730c9bbc537526f22adb8092a5421e965624b5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"1fc1c62d_1f21f224","updated":"2025-06-10 15:27:17.000000000","message":"We have +2/+W on the follow-up now","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"72fdbd213bc961b26533ee5b00deece261914715","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":10,"id":"674f88b9_12bdbb93","updated":"2025-05-26 13:51:45.000000000","message":"again assumeing we are ok to adress the issue in line by https://review.opendev.org/c/openstack/nova/+/950867 +2","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ded62173dcae7677750405dbdaed2e526a1bbf3d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c32f6a39_f8971393","updated":"2025-06-10 17:45:05.000000000","message":"recheck","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"e010001d0a4e29516ccf76bbc14879713538116b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"b7b9916e_57460cbf","updated":"2025-05-19 13:02:03.000000000","message":"recheck unrelated failure","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"}],"nova/api/openstack/compute/schemas/hypervisors.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b78ddd597eb5cc5940dac234b38b2de3e531adb","unresolved":true,"context_lines":[{"line_number":103,"context_line":"    \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027uuid\u0027},"},{"line_number":104,"context_line":"    \u0027servers\u0027: copy.deepcopy(_servers_response),"},{"line_number":105,"context_line":"})"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"_hypervisor_detail_response \u003d copy.deepcopy(_hypervisor_response)"},{"line_number":108,"context_line":"_hypervisor_detail_response[\u0027properties\u0027].update({"},{"line_number":109,"context_line":"    \u0027cpu_info\u0027: {\u0027type\u0027: \u0027string\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"4bc84c50_c111ab2e","line":106,"updated":"2025-05-23 06:57:33.000000000","message":"https://docs.openstack.org/api-ref/compute/#id296","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5e411402b84ba184d0929228a6217bf613f6f594","unresolved":false,"context_lines":[{"line_number":103,"context_line":"    \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027uuid\u0027},"},{"line_number":104,"context_line":"    \u0027servers\u0027: copy.deepcopy(_servers_response),"},{"line_number":105,"context_line":"})"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"_hypervisor_detail_response \u003d copy.deepcopy(_hypervisor_response)"},{"line_number":108,"context_line":"_hypervisor_detail_response[\u0027properties\u0027].update({"},{"line_number":109,"context_line":"    \u0027cpu_info\u0027: {\u0027type\u0027: \u0027string\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"aee961f0_4fb6c766","line":106,"in_reply_to":"4bc84c50_c111ab2e","updated":"2025-05-26 12:51:03.000000000","message":"Acknowledged","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b78ddd597eb5cc5940dac234b38b2de3e531adb","unresolved":true,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"_hypervisor_detail_response \u003d copy.deepcopy(_hypervisor_response)"},{"line_number":108,"context_line":"_hypervisor_detail_response[\u0027properties\u0027].update({"},{"line_number":109,"context_line":"    \u0027cpu_info\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":110,"context_line":"    \u0027current_workload\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":111,"context_line":"    \u0027disk_available_least\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":112,"context_line":"    \u0027free_disk_gb\u0027: {\u0027type\u0027: \u0027integer\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"c2be9057_2c1bc63f","line":109,"range":{"start_line":109,"start_character":5,"end_line":109,"end_character":35},"updated":"2025-05-23 06:57:33.000000000","message":"so yep it was a string until 2.28 and was remvoed in 2.87 when we nuked all the things.","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5e411402b84ba184d0929228a6217bf613f6f594","unresolved":false,"context_lines":[{"line_number":106,"context_line":""},{"line_number":107,"context_line":"_hypervisor_detail_response \u003d copy.deepcopy(_hypervisor_response)"},{"line_number":108,"context_line":"_hypervisor_detail_response[\u0027properties\u0027].update({"},{"line_number":109,"context_line":"    \u0027cpu_info\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":110,"context_line":"    \u0027current_workload\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":111,"context_line":"    \u0027disk_available_least\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":112,"context_line":"    \u0027free_disk_gb\u0027: {\u0027type\u0027: \u0027integer\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"abad34a3_49eb0fe6","line":109,"range":{"start_line":109,"start_character":5,"end_line":109,"end_character":35},"in_reply_to":"c2be9057_2c1bc63f","updated":"2025-05-26 12:51:03.000000000","message":"Acknowledged","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5d28cec1bfec8001a45bb01b39ba53478b51fbc2","unresolved":true,"context_lines":[{"line_number":107,"context_line":"_hypervisor_detail_response \u003d copy.deepcopy(_hypervisor_response)"},{"line_number":108,"context_line":"_hypervisor_detail_response[\u0027properties\u0027].update({"},{"line_number":109,"context_line":"    \u0027cpu_info\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":110,"context_line":"    \u0027current_workload\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":111,"context_line":"    \u0027disk_available_least\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":112,"context_line":"    \u0027free_disk_gb\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":113,"context_line":"    \u0027free_ram_mb\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":114,"context_line":"    \u0027host_ip\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":115,"context_line":"    \u0027hypervisor_type\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":116,"context_line":"    \u0027hypervisor_version\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027integer\u0027]},"},{"line_number":117,"context_line":"    \u0027local_gb\u0027: {\u0027type\u0027: \u0027integer\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"c5740e8e_dabe8207","line":114,"range":{"start_line":110,"start_character":0,"end_line":114,"end_character":34},"updated":"2025-06-05 22:35:38.000000000","message":"Tthese can be nullable?, at least they are in nullable in object fields and many of our api sample tests response json have them null\n\n-https://github.com/openstack/nova/blob/68c2341b765a22b9b81894d2ff3b21fd5f8632ec/nova/objects/compute_node.py#L58","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f0a54efca6a6ebebde62080e2d7d4d33d2ef6df","unresolved":false,"context_lines":[{"line_number":107,"context_line":"_hypervisor_detail_response \u003d copy.deepcopy(_hypervisor_response)"},{"line_number":108,"context_line":"_hypervisor_detail_response[\u0027properties\u0027].update({"},{"line_number":109,"context_line":"    \u0027cpu_info\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":110,"context_line":"    \u0027current_workload\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":111,"context_line":"    \u0027disk_available_least\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":112,"context_line":"    \u0027free_disk_gb\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":113,"context_line":"    \u0027free_ram_mb\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":114,"context_line":"    \u0027host_ip\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":115,"context_line":"    \u0027hypervisor_type\u0027: {\u0027type\u0027: \u0027string\u0027},"},{"line_number":116,"context_line":"    \u0027hypervisor_version\u0027: {\u0027type\u0027: [\u0027string\u0027, \u0027integer\u0027]},"},{"line_number":117,"context_line":"    \u0027local_gb\u0027: {\u0027type\u0027: \u0027integer\u0027},"}],"source_content_type":"text/x-python","patch_set":10,"id":"aa3c8397_7599e9c5","line":114,"range":{"start_line":110,"start_character":0,"end_line":114,"end_character":34},"in_reply_to":"c5740e8e_dabe8207","updated":"2025-06-06 10:35:42.000000000","message":"done in follow-up","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5d28cec1bfec8001a45bb01b39ba53478b51fbc2","unresolved":true,"context_lines":[{"line_number":118,"context_line":"    \u0027local_gb_used\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":119,"context_line":"    \u0027memory_mb\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":120,"context_line":"    \u0027memory_mb_used\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":121,"context_line":"    \u0027running_vms\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":122,"context_line":"    \u0027service\u0027: {"},{"line_number":123,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":124,"context_line":"        \u0027properties\u0027: {"}],"source_content_type":"text/x-python","patch_set":10,"id":"9126b316_dcdc2b19","line":121,"range":{"start_line":121,"start_character":5,"end_line":121,"end_character":39},"updated":"2025-06-05 22:35:38.000000000","message":"ditto null also?","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"8f0a54efca6a6ebebde62080e2d7d4d33d2ef6df","unresolved":false,"context_lines":[{"line_number":118,"context_line":"    \u0027local_gb_used\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":119,"context_line":"    \u0027memory_mb\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":120,"context_line":"    \u0027memory_mb_used\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":121,"context_line":"    \u0027running_vms\u0027: {\u0027type\u0027: \u0027integer\u0027},"},{"line_number":122,"context_line":"    \u0027service\u0027: {"},{"line_number":123,"context_line":"        \u0027type\u0027: \u0027object\u0027,"},{"line_number":124,"context_line":"        \u0027properties\u0027: {"}],"source_content_type":"text/x-python","patch_set":10,"id":"55488082_27e444f3","line":121,"range":{"start_line":121,"start_character":5,"end_line":121,"end_character":39},"in_reply_to":"9126b316_dcdc2b19","updated":"2025-06-06 10:35:42.000000000","message":"done in follow-up","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5d28cec1bfec8001a45bb01b39ba53478b51fbc2","unresolved":true,"context_lines":[{"line_number":143,"context_line":"    \u0027running_vms\u0027,"},{"line_number":144,"context_line":"    \u0027service\u0027,"},{"line_number":145,"context_line":"    \u0027vcpus\u0027,"},{"line_number":146,"context_line":"    \u0027vcpus_used\u0027,"},{"line_number":147,"context_line":"])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"_hypervisor_detail_response_v227 \u003d copy.deepcopy(_hypervisor_detail_response)"},{"line_number":150,"context_line":"_hypervisor_detail_response_v227[\u0027properties\u0027].update({"}],"source_content_type":"text/x-python","patch_set":10,"id":"0f296a2f_227cc045","line":147,"range":{"start_line":146,"start_character":16,"end_line":147,"end_character":2},"updated":"2025-06-05 22:35:38.000000000","message":"hypervisor_type, hypervisor_version, and host_ip also always returned so can be added in \u0027required\u0027 field\n - https://github.com/openstack/nova/blob/68c2341b765a22b9b81894d2ff3b21fd5f8632ec/nova/api/openstack/compute/hypervisors.py#L70","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"54037b09ea3ef5c8d18d5aaf6fff39b64a4eb936","unresolved":false,"context_lines":[{"line_number":143,"context_line":"    \u0027running_vms\u0027,"},{"line_number":144,"context_line":"    \u0027service\u0027,"},{"line_number":145,"context_line":"    \u0027vcpus\u0027,"},{"line_number":146,"context_line":"    \u0027vcpus_used\u0027,"},{"line_number":147,"context_line":"])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"_hypervisor_detail_response_v227 \u003d copy.deepcopy(_hypervisor_detail_response)"},{"line_number":150,"context_line":"_hypervisor_detail_response_v227[\u0027properties\u0027].update({"}],"source_content_type":"text/x-python","patch_set":10,"id":"eab239ec_4095c7db","line":147,"range":{"start_line":146,"start_character":16,"end_line":147,"end_character":2},"in_reply_to":"0f296a2f_227cc045","updated":"2025-06-05 22:49:52.000000000","message":"nervermind, I saw you are fixing this in https://review.opendev.org/c/openstack/nova/+/950867","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b78ddd597eb5cc5940dac234b38b2de3e531adb","unresolved":true,"context_lines":[{"line_number":146,"context_line":"    \u0027vcpus_used\u0027,"},{"line_number":147,"context_line":"])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"_hypervisor_detail_response_v227 \u003d copy.deepcopy(_hypervisor_detail_response)"},{"line_number":150,"context_line":"_hypervisor_detail_response_v227[\u0027properties\u0027].update({"},{"line_number":151,"context_line":"    \u0027cpu_info\u0027: {"},{"line_number":152,"context_line":"        # NOTE(stephenfin): This is virt-driver specific hence no schema"}],"source_content_type":"text/x-python","patch_set":10,"id":"17e2c89e_fc3a4ed0","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":32},"updated":"2025-05-23 06:57:33.000000000","message":"There is no documented change for 2.27\n\n```Since version 2.28 cpu_info field is returned as a dictionary instead of string.```\n\nhttps://docs.openstack.org/nova/latest/reference/api-microversion-history.html#id25","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5e411402b84ba184d0929228a6217bf613f6f594","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    \u0027vcpus_used\u0027,"},{"line_number":147,"context_line":"])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"_hypervisor_detail_response_v227 \u003d copy.deepcopy(_hypervisor_detail_response)"},{"line_number":150,"context_line":"_hypervisor_detail_response_v227[\u0027properties\u0027].update({"},{"line_number":151,"context_line":"    \u0027cpu_info\u0027: {"},{"line_number":152,"context_line":"        # NOTE(stephenfin): This is virt-driver specific hence no schema"}],"source_content_type":"text/x-python","patch_set":10,"id":"e9f508fb_9d1957e7","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":32},"in_reply_to":"17e2c89e_fc3a4ed0","updated":"2025-05-26 12:51:03.000000000","message":"Discussed this offline, but this is an off-by-one error introduced by our previous use of `max_version` rather than `min_version`. I have now fixed that [with an earlier patch in this series](https://review.opendev.org/c/openstack/nova/+/940325/6/nova/api/openstack/compute/hypervisors.py#b91) and will fix this here also.","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":8556,"name":"Ghanshyam Maan","display_name":"Ghanshyam Maan","email":"gmaan.os14@gmail.com","username":"ghanshyam"},"change_message_id":"5d28cec1bfec8001a45bb01b39ba53478b51fbc2","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    \u0027vcpus_used\u0027,"},{"line_number":147,"context_line":"])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"_hypervisor_detail_response_v227 \u003d copy.deepcopy(_hypervisor_detail_response)"},{"line_number":150,"context_line":"_hypervisor_detail_response_v227[\u0027properties\u0027].update({"},{"line_number":151,"context_line":"    \u0027cpu_info\u0027: {"},{"line_number":152,"context_line":"        # NOTE(stephenfin): This is virt-driver specific hence no schema"}],"source_content_type":"text/x-python","patch_set":10,"id":"da673b76_f586a115","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":32},"in_reply_to":"5aaff806_ab71a71a","updated":"2025-06-05 22:35:38.000000000","message":"ack. I will merge/approve both together in case it break anyone.","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"72fdbd213bc961b26533ee5b00deece261914715","unresolved":false,"context_lines":[{"line_number":146,"context_line":"    \u0027vcpus_used\u0027,"},{"line_number":147,"context_line":"])"},{"line_number":148,"context_line":""},{"line_number":149,"context_line":"_hypervisor_detail_response_v227 \u003d copy.deepcopy(_hypervisor_detail_response)"},{"line_number":150,"context_line":"_hypervisor_detail_response_v227[\u0027properties\u0027].update({"},{"line_number":151,"context_line":"    \u0027cpu_info\u0027: {"},{"line_number":152,"context_line":"        # NOTE(stephenfin): This is virt-driver specific hence no schema"}],"source_content_type":"text/x-python","patch_set":10,"id":"5aaff806_ab71a71a","line":149,"range":{"start_line":149,"start_character":0,"end_line":149,"end_character":32},"in_reply_to":"e9f508fb_9d1957e7","updated":"2025-05-26 13:51:45.000000000","message":"fyi when chatting about this we realsed there is proably a missign nova unit test for this bondary condition but thats kind fo out os scope.","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b78ddd597eb5cc5940dac234b38b2de3e531adb","unresolved":true,"context_lines":[{"line_number":167,"context_line":"    \u0027properties\u0027"},{"line_number":168,"context_line":"].update({"},{"line_number":169,"context_line":"    \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027uuid\u0027},"},{"line_number":170,"context_line":"})"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"_hypervisor_detail_response_v288 \u003d copy.deepcopy("},{"line_number":173,"context_line":"    _hypervisor_detail_response_v253"}],"source_content_type":"text/x-python","patch_set":10,"id":"b8608804_08a68619","line":170,"updated":"2025-05-23 06:57:33.000000000","message":"ack this need to be repated because of how we are inheriting.\n\ni belive you have missed the fact taht this can also return servers in 2.53\nwhich you accounted for on line 104\n\nhttps://review.opendev.org/c/openstack/nova/+/937246/10/nova/api/openstack/compute/schemas/hypervisors.py#104\n\n\nand that servers is alwasy presseent like the non detail responce in 2.75","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"72fdbd213bc961b26533ee5b00deece261914715","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    \u0027properties\u0027"},{"line_number":168,"context_line":"].update({"},{"line_number":169,"context_line":"    \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027uuid\u0027},"},{"line_number":170,"context_line":"})"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"_hypervisor_detail_response_v288 \u003d copy.deepcopy("},{"line_number":173,"context_line":"    _hypervisor_detail_response_v253"}],"source_content_type":"text/x-python","patch_set":10,"id":"2e5d5eeb_bff2dd28","line":170,"in_reply_to":"4c87a79d_0feb594e","updated":"2025-05-26 13:51:45.000000000","message":"oh i missed that\n\n_hypervisor_detail_response_v253[\u0027properties\u0027].update(\n    _hypervisor_response_v253[\u0027properties\u0027]\n)\n\nthat is yanking the relevent peoperties form the non detial version and merging them into the deail responce.\n\ngot it.\n\nya that makes sense i thinik that is the first time i have seen that pattern used in this round of reviews so i was not expecting that.\n\nok then shoure that shoudl be correct","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"5e411402b84ba184d0929228a6217bf613f6f594","unresolved":false,"context_lines":[{"line_number":167,"context_line":"    \u0027properties\u0027"},{"line_number":168,"context_line":"].update({"},{"line_number":169,"context_line":"    \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027uuid\u0027},"},{"line_number":170,"context_line":"})"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"_hypervisor_detail_response_v288 \u003d copy.deepcopy("},{"line_number":173,"context_line":"    _hypervisor_detail_response_v253"}],"source_content_type":"text/x-python","patch_set":10,"id":"4c87a79d_0feb594e","line":170,"in_reply_to":"b8608804_08a68619","updated":"2025-05-26 12:51:03.000000000","message":"No, If you see the previous statement on line 163, we are already overriding the `id` and `servers` fields. What we are updating here is the `id` field of the `service` field (i.e. there are multiple `id` fields in the detail response and we need to update all to return UUIDs)\n\nI apologise that this is so confusing, but I don\u0027t know how else to keep this DRY yet understandable.","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"6b78ddd597eb5cc5940dac234b38b2de3e531adb","unresolved":true,"context_lines":[{"line_number":169,"context_line":"    \u0027id\u0027: {\u0027type\u0027: \u0027string\u0027, \u0027format\u0027: \u0027uuid\u0027},"},{"line_number":170,"context_line":"})"},{"line_number":171,"context_line":""},{"line_number":172,"context_line":"_hypervisor_detail_response_v288 \u003d copy.deepcopy("},{"line_number":173,"context_line":"    _hypervisor_detail_response_v253"},{"line_number":174,"context_line":")"},{"line_number":175,"context_line":"for field in {"}],"source_content_type":"text/x-python","patch_set":10,"id":"d69376a9_274f1793","line":172,"updated":"2025-05-23 06:57:33.000000000","message":"i stopped here in the review so i need to pick that back up but ill push the commens i have pending","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"72fdbd213bc961b26533ee5b00deece261914715","unresolved":false,"context_lines":[{"line_number":185,"context_line":"    \u0027vcpus\u0027,"},{"line_number":186,"context_line":"    \u0027vcpus_used\u0027,"},{"line_number":187,"context_line":"}:"},{"line_number":188,"context_line":"    del _hypervisor_detail_response_v288[\u0027properties\u0027][field]"},{"line_number":189,"context_line":"    _hypervisor_detail_response_v288[\u0027required\u0027].remove(field)"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"_hypervisor_detail_response_v288[\u0027properties\u0027].update({"}],"source_content_type":"text/x-python","patch_set":10,"id":"3cff3e05_84d3101b","line":188,"updated":"2025-05-26 13:51:45.000000000","message":"I tend to prefer pop over del but in this case if we\never get a key error it means that something broke the schema definition\nso the fact del will raise if there is a missing key is actually  a benefit.\n\n+1\n\nthese were removed by https://specs.openstack.org/openstack/nova-specs/specs/wallaby/implemented/modernize-os-hypervisors-api.html","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"72fdbd213bc961b26533ee5b00deece261914715","unresolved":false,"context_lines":[{"line_number":232,"context_line":"    \u0027items\u0027"},{"line_number":233,"context_line":"] \u003d _hypervisor_detail_response"},{"line_number":234,"context_line":""},{"line_number":235,"context_line":"# v2.27 changes the \u0027cpu_info\u0027 field from a stringified object to a real object"},{"line_number":236,"context_line":"detail_response_v227 \u003d copy.deepcopy(detail_response)"},{"line_number":237,"context_line":"detail_response_v227[\u0027properties\u0027][\u0027hypervisors\u0027]["},{"line_number":238,"context_line":"    \u0027items\u0027"}],"source_content_type":"text/x-python","patch_set":10,"id":"d351ab33_210869ff","line":235,"updated":"2025-05-26 13:51:45.000000000","message":"2.28 but that is fixed here https://review.opendev.org/c/openstack/nova/+/950867/1/nova/api/openstack/compute/schemas/hypervisors.py#252","commit_id":"f5d9e5cb2f606f6ad65c67a7c636666ffb1ff08e"}]}
