)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c805a8fe0dbc5bcad608dac72f19afd1accc36ba","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Jay Faulkner \u003cjay@jvf.cc\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-07-10 23:05:37 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[ironic] Factor out metadata and  send to ironic"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change migrates the code currently written only to serve libvirt"},{"line_number":10,"context_line":"driver to be generally useful, adding driver-neutral data structures"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"0e6a3c94_17382883","line":7,"updated":"2024-07-11 15:44:27.000000000","message":"nit: extra space","commit_id":"cf1a8ebec17304c3b232aea8136103a7f4b953cc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1b827909923fdf86646473afc855a9fe0e6487e","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Jay Faulkner \u003cjay@jvf.cc\u003e"},{"line_number":5,"context_line":"CommitDate: 2024-07-10 23:05:37 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"[ironic] Factor out metadata and  send to ironic"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change migrates the code currently written only to serve libvirt"},{"line_number":10,"context_line":"driver to be generally useful, adding driver-neutral data structures"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"bcb2523a_c5e2bead","line":7,"in_reply_to":"0e6a3c94_17382883","updated":"2024-08-30 00:10:59.000000000","message":"Acknowledged","commit_id":"cf1a8ebec17304c3b232aea8136103a7f4b953cc"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c805a8fe0dbc5bcad608dac72f19afd1accc36ba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b1098f25_2a9baf23","updated":"2024-07-11 15:44:27.000000000","message":"Minor whitespace issues, I\u0027ll resolve them along with the (expected, inevitable) first revision in response to actual PR feedback 😄","commit_id":"cf1a8ebec17304c3b232aea8136103a7f4b953cc"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"42eec90811aacaeb8717a2f45707788463938ec4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"6ab4a579_87ac5e2a","updated":"2024-08-19 22:46:42.000000000","message":"FYI -- this is fully integrated and working per logs on the Ironic side, and had a core review before I made a minor logging change. Please help me land by FF :).\n\n(below is the log from the Ironic CI run)\n\nAug 19 21:08:46.501591 np0038219225 ironic-conductor[88719]: DEBUG ironic.conductor.deployments [None req-9d397d19-e7aa-4c45-b036-d10b78a9ed05 None None] Adding lessee 542bd186fe484901aa784dbe82118981 to node 5b7fa1b6-e872-4d1c-870b-28d51c66267d. {{(pid\u003d88719) start_deploy /opt/stack/ironic/ironic/conductor/deployments.py:121}}","commit_id":"4684598653949c84c0f858670d8972b297253cb3"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"9a0fad2524c731af3f1add1054bed03b018f9556","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7e1523ca_083433f9","updated":"2024-08-19 23:03:30.000000000","message":"Literally any job running tempest on that Ironic change, in the conductor log. It\u0027s default-on in Ironic.\n\nIt\u0027s on my short list to get a tempest test validating it gets set now that the Ironic change has cleared any significant review hurdles.","commit_id":"4684598653949c84c0f858670d8972b297253cb3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"ccdf4c15c91ca90d844d0e28be2b95435bee1dbc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"0e8d3598_f4857a1b","updated":"2024-08-09 02:27:24.000000000","message":"directionally i think this is good but i need to reload context and reivew again.","commit_id":"4684598653949c84c0f858670d8972b297253cb3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"8086ba230bb9da4482eb8c95b89289e6ca54ed21","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"2f5b0466_9c351a0a","in_reply_to":"6ab4a579_87ac5e2a","updated":"2024-08-19 22:59:59.000000000","message":"do you have a link to that run so we can reivew \n\ni assume its one of hte jobs form https://review.opendev.org/c/openstack/ironic/+/924887","commit_id":"4684598653949c84c0f858670d8972b297253cb3"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"629a2b2a68b9f9aa19c653b403026083b8d10c45","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"ca0b6a5d_87bbc1d4","in_reply_to":"7e1523ca_083433f9","updated":"2024-08-20 10:49:19.000000000","message":"the reason i asked is last time i check you told me that the leaseing option was not truned on by default in ironic or in the job i was checking on nova 😊\n\nso i wanted to make sure if i i go looking for this message in the job logs that i will actully find it in the job i check.","commit_id":"4684598653949c84c0f858670d8972b297253cb3"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"ca4dd48a77001b7fbc2725db9f17d9602893690e","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"5d191450_506a5241","in_reply_to":"ca0b6a5d_87bbc1d4","updated":"2024-08-27 16:46:45.000000000","message":"Yeah, we ended up enabling it by default, but you need the Ironic patch this Depends-On to enable reading this metadata to do it -- hence needing to go to the Ironic patch to see this in live action.","commit_id":"4684598653949c84c0f858670d8972b297253cb3"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c5355c9f_c6e4ba9f","updated":"2024-08-30 02:01:38.000000000","message":"I think there may be a mixup between `Flavor.id` and `Flavor.flavorid` and there seems to be some redundant code in the libvirt driver change that invites confusion, if I\u0027m understanding it correctly.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"417a2f24_705d81ad","updated":"2024-08-30 18:18:05.000000000","message":"Requested revisions made locally; going to fix up broken unit tests caused by the changes and push it.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"63fd80a1449b2681c6ddf4f358af245ec2c4fd79","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"90d26a61_7e26ba87","updated":"2024-08-30 18:00:38.000000000","message":"Thanks for the review; will look over and address concerns.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d48dc54d67975cf840749efea977ea5b3e9d6c32","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"fad4b21b_33083697","updated":"2024-08-30 02:26:42.000000000","message":"droping +2 based on the flavor.id vs flavor.favorid concern.\n\ni have just skimmed mels comments and ill reflect on them properly tomorrow","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1b827909923fdf86646473afc855a9fe0e6487e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"35bb8128_d7f93133","updated":"2024-08-30 00:10:59.000000000","message":"recheck\n\ni have seen enough to see that this edoes not apear to regress the libvirt functionatliy in any way and the ironic folks have stated that the\n\"Automatic Lessee from instance metadata\" feature works end to end based on there testing.\n\ngiven that i dont see a reason to hold this minor enhancement when it can benift ironic users.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f9f4e029e8795aa1512ad29900ff28a154e3380","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d23aebfc_1dcce2f1","updated":"2024-08-31 02:37:32.000000000","message":"Only one thing wrong with the TEST_FLAVOR_ID in utils but it\u0027s not being used for anything at the moment and not worth blocking over. If and when future tests are written that will make use of TEST_FLAVOR_ID, it should be fixed.\n\nEverything else LGTM, thanks for the quick turnaround making the changes.","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b4ab84fdb22a42f9b880314a04feda990939b59b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f73f832c_8d0042c8","updated":"2024-08-31 19:27:57.000000000","message":"Thanks for the review and landing this; I\u0027ll post a follow up for these issues Monday.","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4e6b71efe07c2e82686d8573b5e61fb30c2dabac","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"4009b7bf_7084e421","updated":"2024-09-03 00:56:35.000000000","message":"followup fixes at https://review.opendev.org/c/openstack/nova/+/927764","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"}],"nova/tests/unit/virt/ironic/test_driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f9f4e029e8795aa1512ad29900ff28a154e3380","unresolved":true,"context_lines":[{"line_number":2215,"context_line":"        self.mock_conn.get_node.return_value \u003d node"},{"line_number":2216,"context_line":""},{"line_number":2217,"context_line":"        image_meta \u003d ironic_utils.get_test_image_meta()"},{"line_number":2218,"context_line":"        flavor \u003d objects.Flavor(flavor_id\u003d5, name\u003d\u0027baremetal\u0027)"},{"line_number":2219,"context_line":""},{"line_number":2220,"context_line":"        instance \u003d fake_instance.fake_instance_obj("},{"line_number":2221,"context_line":"            self.ctx, uuid\u003dself.instance_uuid, node\u003dnode_uuid, flavor\u003dflavor)"}],"source_content_type":"text/x-python","patch_set":5,"id":"64ae546e_a1d3c92a","line":2218,"range":{"start_line":2218,"start_character":32,"end_line":2218,"end_character":41},"updated":"2024-08-31 02:37:32.000000000","message":"No wonder there was some confusion, this pre-existing test code is using flavor_id which is not a real Flavor attribute 😩","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4e6b71efe07c2e82686d8573b5e61fb30c2dabac","unresolved":false,"context_lines":[{"line_number":2215,"context_line":"        self.mock_conn.get_node.return_value \u003d node"},{"line_number":2216,"context_line":""},{"line_number":2217,"context_line":"        image_meta \u003d ironic_utils.get_test_image_meta()"},{"line_number":2218,"context_line":"        flavor \u003d objects.Flavor(flavor_id\u003d5, name\u003d\u0027baremetal\u0027)"},{"line_number":2219,"context_line":""},{"line_number":2220,"context_line":"        instance \u003d fake_instance.fake_instance_obj("},{"line_number":2221,"context_line":"            self.ctx, uuid\u003dself.instance_uuid, node\u003dnode_uuid, flavor\u003dflavor)"}],"source_content_type":"text/x-python","patch_set":5,"id":"d50bf2dc_dae49048","line":2218,"range":{"start_line":2218,"start_character":32,"end_line":2218,"end_character":41},"in_reply_to":"64ae546e_a1d3c92a","updated":"2024-09-03 00:56:35.000000000","message":"Done","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f9f4e029e8795aa1512ad29900ff28a154e3380","unresolved":true,"context_lines":[{"line_number":2222,"context_line":""},{"line_number":2223,"context_line":"        mock_metadata.return_value \u003d ("},{"line_number":2224,"context_line":"            ironic_utils.get_test_instance_driver_metadata("},{"line_number":2225,"context_line":"                flavor_id\u003d5,"},{"line_number":2226,"context_line":"                flavor_name\u003d\u0027baremetal\u0027,"},{"line_number":2227,"context_line":"                instance_uuid\u003dself.instance_uuid,"},{"line_number":2228,"context_line":"        ))"}],"source_content_type":"text/x-python","patch_set":5,"id":"00166098_78930e07","line":2225,"range":{"start_line":2225,"start_character":16,"end_line":2225,"end_character":27},"updated":"2024-08-31 02:37:32.000000000","message":"This is no longer used.","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4e6b71efe07c2e82686d8573b5e61fb30c2dabac","unresolved":false,"context_lines":[{"line_number":2222,"context_line":""},{"line_number":2223,"context_line":"        mock_metadata.return_value \u003d ("},{"line_number":2224,"context_line":"            ironic_utils.get_test_instance_driver_metadata("},{"line_number":2225,"context_line":"                flavor_id\u003d5,"},{"line_number":2226,"context_line":"                flavor_name\u003d\u0027baremetal\u0027,"},{"line_number":2227,"context_line":"                instance_uuid\u003dself.instance_uuid,"},{"line_number":2228,"context_line":"        ))"}],"source_content_type":"text/x-python","patch_set":5,"id":"f773eb00_c5a45300","line":2225,"range":{"start_line":2225,"start_character":16,"end_line":2225,"end_character":27},"in_reply_to":"00166098_78930e07","updated":"2024-09-03 00:56:35.000000000","message":"Done","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f9f4e029e8795aa1512ad29900ff28a154e3380","unresolved":true,"context_lines":[{"line_number":2297,"context_line":"        mock_configdrive.side_effect \u003d exception.NovaException()"},{"line_number":2298,"context_line":"        mock_metadata.return_value \u003d ("},{"line_number":2299,"context_line":"            ironic_utils.get_test_instance_driver_metadata("},{"line_number":2300,"context_line":"                flavor_id\u003d5, flavor_name\u003d\u0027baremetal\u0027)"},{"line_number":2301,"context_line":"        )"},{"line_number":2302,"context_line":""},{"line_number":2303,"context_line":"        image_meta \u003d ironic_utils.get_test_image_meta()"}],"source_content_type":"text/x-python","patch_set":5,"id":"816dcd57_4462e224","line":2300,"range":{"start_line":2300,"start_character":16,"end_line":2300,"end_character":27},"updated":"2024-08-31 02:37:32.000000000","message":"This is no longer used.","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4e6b71efe07c2e82686d8573b5e61fb30c2dabac","unresolved":false,"context_lines":[{"line_number":2297,"context_line":"        mock_configdrive.side_effect \u003d exception.NovaException()"},{"line_number":2298,"context_line":"        mock_metadata.return_value \u003d ("},{"line_number":2299,"context_line":"            ironic_utils.get_test_instance_driver_metadata("},{"line_number":2300,"context_line":"                flavor_id\u003d5, flavor_name\u003d\u0027baremetal\u0027)"},{"line_number":2301,"context_line":"        )"},{"line_number":2302,"context_line":""},{"line_number":2303,"context_line":"        image_meta \u003d ironic_utils.get_test_image_meta()"}],"source_content_type":"text/x-python","patch_set":5,"id":"815a5d8e_cfa4b6f8","line":2300,"range":{"start_line":2300,"start_character":16,"end_line":2300,"end_character":27},"in_reply_to":"816dcd57_4462e224","updated":"2024-09-03 00:56:35.000000000","message":"Done","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f9f4e029e8795aa1512ad29900ff28a154e3380","unresolved":true,"context_lines":[{"line_number":2334,"context_line":"        flavor \u003d objects.Flavor(flavor_id\u003d5, name\u003d\u0027baremetal\u0027)"},{"line_number":2335,"context_line":"        mock_metadata.return_value \u003d ("},{"line_number":2336,"context_line":"            ironic_utils.get_test_instance_driver_metadata("},{"line_number":2337,"context_line":"                flavor_id\u003d5,"},{"line_number":2338,"context_line":"                flavor_name\u003d\u0027baremetal\u0027,"},{"line_number":2339,"context_line":"                instance_uuid\u003dself.instance_uuid,"},{"line_number":2340,"context_line":"        ))"}],"source_content_type":"text/x-python","patch_set":5,"id":"65f236b5_bc336d19","line":2337,"range":{"start_line":2337,"start_character":16,"end_line":2337,"end_character":27},"updated":"2024-08-31 02:37:32.000000000","message":"This is no longer used.","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4e6b71efe07c2e82686d8573b5e61fb30c2dabac","unresolved":false,"context_lines":[{"line_number":2334,"context_line":"        flavor \u003d objects.Flavor(flavor_id\u003d5, name\u003d\u0027baremetal\u0027)"},{"line_number":2335,"context_line":"        mock_metadata.return_value \u003d ("},{"line_number":2336,"context_line":"            ironic_utils.get_test_instance_driver_metadata("},{"line_number":2337,"context_line":"                flavor_id\u003d5,"},{"line_number":2338,"context_line":"                flavor_name\u003d\u0027baremetal\u0027,"},{"line_number":2339,"context_line":"                instance_uuid\u003dself.instance_uuid,"},{"line_number":2340,"context_line":"        ))"}],"source_content_type":"text/x-python","patch_set":5,"id":"399aa99b_c82abdfb","line":2337,"range":{"start_line":2337,"start_character":16,"end_line":2337,"end_character":27},"in_reply_to":"65f236b5_bc336d19","updated":"2024-09-03 00:56:35.000000000","message":"Done","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"}],"nova/tests/unit/virt/ironic/test_patcher.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":66,"context_line":"            {\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/instance_info/floating_ips\u0027,"},{"line_number":67,"context_line":"             \u0027value\u0027: \u0027[]\u0027},"},{"line_number":68,"context_line":"            {\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/instance_info/flavor_id\u0027,"},{"line_number":69,"context_line":"             \u0027value\u0027: str(self.flavor.flavor_id)},"},{"line_number":70,"context_line":"            {\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/instance_info/flavor_name\u0027,"},{"line_number":71,"context_line":"             \u0027value\u0027: str(self.flavor.name)},"},{"line_number":72,"context_line":"            {\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/instance_info/nova_host_id\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"d1f575f5_875a27ef","line":69,"range":{"start_line":69,"start_character":38,"end_line":69,"end_character":47},"updated":"2024-08-30 02:01:38.000000000","message":"This is not a valid field on an instance.flavor object, there is `id` (integer table primary key) and `flavorid` (str).","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":false,"context_lines":[{"line_number":66,"context_line":"            {\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/instance_info/floating_ips\u0027,"},{"line_number":67,"context_line":"             \u0027value\u0027: \u0027[]\u0027},"},{"line_number":68,"context_line":"            {\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/instance_info/flavor_id\u0027,"},{"line_number":69,"context_line":"             \u0027value\u0027: str(self.flavor.flavor_id)},"},{"line_number":70,"context_line":"            {\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/instance_info/flavor_name\u0027,"},{"line_number":71,"context_line":"             \u0027value\u0027: str(self.flavor.name)},"},{"line_number":72,"context_line":"            {\u0027op\u0027: \u0027add\u0027, \u0027path\u0027: \u0027/instance_info/nova_host_id\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3c73f2fc_d9e62a24","line":69,"range":{"start_line":69,"start_character":38,"end_line":69,"end_character":47},"in_reply_to":"d1f575f5_875a27ef","updated":"2024-08-30 18:18:05.000000000","message":"Done","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f9f4e029e8795aa1512ad29900ff28a154e3380","unresolved":true,"context_lines":[{"line_number":47,"context_line":"             \u0027value\u0027: str(self.instance.flavor.root_gb),"},{"line_number":48,"context_line":"             \u0027op\u0027: \u0027add\u0027},"},{"line_number":49,"context_line":"            {\u0027path\u0027: \u0027/instance_info/swap_mb\u0027,"},{"line_number":50,"context_line":"             \u0027value\u0027: str(self.flavor[\u0027swap\u0027]),"},{"line_number":51,"context_line":"             \u0027op\u0027: \u0027add\u0027},"},{"line_number":52,"context_line":"            {\u0027path\u0027: \u0027/instance_info/display_name\u0027,"},{"line_number":53,"context_line":"             \u0027value\u0027: self.instance[\u0027display_name\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"eea8050c_8ed3cfbd","line":50,"range":{"start_line":50,"start_character":37,"end_line":50,"end_character":45},"updated":"2024-08-31 02:37:32.000000000","message":"Don\u0027t need to use dict style access here.","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4e6b71efe07c2e82686d8573b5e61fb30c2dabac","unresolved":false,"context_lines":[{"line_number":47,"context_line":"             \u0027value\u0027: str(self.instance.flavor.root_gb),"},{"line_number":48,"context_line":"             \u0027op\u0027: \u0027add\u0027},"},{"line_number":49,"context_line":"            {\u0027path\u0027: \u0027/instance_info/swap_mb\u0027,"},{"line_number":50,"context_line":"             \u0027value\u0027: str(self.flavor[\u0027swap\u0027]),"},{"line_number":51,"context_line":"             \u0027op\u0027: \u0027add\u0027},"},{"line_number":52,"context_line":"            {\u0027path\u0027: \u0027/instance_info/display_name\u0027,"},{"line_number":53,"context_line":"             \u0027value\u0027: self.instance[\u0027display_name\u0027],"}],"source_content_type":"text/x-python","patch_set":5,"id":"7414daba_b2978d26","line":50,"range":{"start_line":50,"start_character":37,"end_line":50,"end_character":45},"in_reply_to":"eea8050c_8ed3cfbd","updated":"2024-09-03 00:56:35.000000000","message":"Done","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"}],"nova/tests/unit/virt/ironic/utils.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":29,"context_line":"# objects."},{"line_number":30,"context_line":"TEST_IMAGE_UUID \u003d \"cccccccc-cccc-cccc-cccc-cccccccccccc\""},{"line_number":31,"context_line":"TEST_IMAGE_NAME \u003d \"test-image\""},{"line_number":32,"context_line":"TEST_FLAVOR_ID \u003d 1"},{"line_number":33,"context_line":"TEST_FLAVOR_NAME \u003d \"fake.flavor\""},{"line_number":34,"context_line":"TEST_FLAVOR_EXTRA_SPECS \u003d {"},{"line_number":35,"context_line":"    \u0027baremetal:deploy_kernel_id\u0027: \u0027aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"9abeaabd_70cc8224","line":32,"updated":"2024-08-30 02:01:38.000000000","message":"It may be a good idea to make this a string (assuming that you don\u0027t intend to return the table primary key in the metadata).","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":false,"context_lines":[{"line_number":29,"context_line":"# objects."},{"line_number":30,"context_line":"TEST_IMAGE_UUID \u003d \"cccccccc-cccc-cccc-cccc-cccccccccccc\""},{"line_number":31,"context_line":"TEST_IMAGE_NAME \u003d \"test-image\""},{"line_number":32,"context_line":"TEST_FLAVOR_ID \u003d 1"},{"line_number":33,"context_line":"TEST_FLAVOR_NAME \u003d \"fake.flavor\""},{"line_number":34,"context_line":"TEST_FLAVOR_EXTRA_SPECS \u003d {"},{"line_number":35,"context_line":"    \u0027baremetal:deploy_kernel_id\u0027: \u0027aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"952f8485_bcf87552","line":32,"in_reply_to":"9abeaabd_70cc8224","updated":"2024-08-30 18:18:05.000000000","message":"Done","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"def get_test_flavor(**kw):"},{"line_number":195,"context_line":"    flavor \u003d {"},{"line_number":196,"context_line":"        \u0027flavor_id\u0027: kw.get(\u0027flavor_id\u0027, TEST_FLAVOR_ID),"},{"line_number":197,"context_line":"        \u0027name\u0027: kw.get(\u0027name\u0027, TEST_FLAVOR_NAME),"},{"line_number":198,"context_line":"        \u0027extra_specs\u0027: kw.get(\u0027extra_specs\u0027, TEST_FLAVOR_EXTRA_SPECS),"},{"line_number":199,"context_line":"        \u0027swap\u0027: kw.get(\u0027swap\u0027, TEST_FLAVOR_SWAP),"}],"source_content_type":"text/x-python","patch_set":4,"id":"8dee270b_0f372e6d","line":196,"range":{"start_line":196,"start_character":9,"end_line":196,"end_character":18},"updated":"2024-08-30 02:01:38.000000000","message":"This is not a real field on the nova Flavor object.. There is `id` and `flavorid`.\n\nI was going to suggest using https://github.com/openstack/nova/blob/52fa9bc4f735448aa093daee50480fc2c91bb47f/nova/tests/unit/fake_flavor.py#L52 instead but there really isn\u0027t anything in there to protect against fields that don\u0027t exist... so it wouldn\u0027t help here I don\u0027t think.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":false,"context_lines":[{"line_number":193,"context_line":""},{"line_number":194,"context_line":"def get_test_flavor(**kw):"},{"line_number":195,"context_line":"    flavor \u003d {"},{"line_number":196,"context_line":"        \u0027flavor_id\u0027: kw.get(\u0027flavor_id\u0027, TEST_FLAVOR_ID),"},{"line_number":197,"context_line":"        \u0027name\u0027: kw.get(\u0027name\u0027, TEST_FLAVOR_NAME),"},{"line_number":198,"context_line":"        \u0027extra_specs\u0027: kw.get(\u0027extra_specs\u0027, TEST_FLAVOR_EXTRA_SPECS),"},{"line_number":199,"context_line":"        \u0027swap\u0027: kw.get(\u0027swap\u0027, TEST_FLAVOR_SWAP),"}],"source_content_type":"text/x-python","patch_set":4,"id":"b242a78f_066dee04","line":196,"range":{"start_line":196,"start_character":9,"end_line":196,"end_character":18},"in_reply_to":"8dee270b_0f372e6d","updated":"2024-08-30 18:18:05.000000000","message":"Done","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"6f9f4e029e8795aa1512ad29900ff28a154e3380","unresolved":true,"context_lines":[{"line_number":29,"context_line":"# objects."},{"line_number":30,"context_line":"TEST_IMAGE_UUID \u003d \"cccccccc-cccc-cccc-cccc-cccccccccccc\""},{"line_number":31,"context_line":"TEST_IMAGE_NAME \u003d \"test-image\""},{"line_number":32,"context_line":"TEST_FLAVOR_ID \u003d \"1\""},{"line_number":33,"context_line":"TEST_FLAVOR_NAME \u003d \"fake.flavor\""},{"line_number":34,"context_line":"TEST_FLAVOR_EXTRA_SPECS \u003d {"},{"line_number":35,"context_line":"    \u0027baremetal:deploy_kernel_id\u0027: \u0027aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"e0ae6799_fd1169e6","line":32,"updated":"2024-08-31 02:37:32.000000000","message":"Since the removal of all the things that implied the string `flavorid`, this should be an int if `get_test_flavor()` is meant to mock a `nova.objects.Flavor`.","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4e6b71efe07c2e82686d8573b5e61fb30c2dabac","unresolved":false,"context_lines":[{"line_number":29,"context_line":"# objects."},{"line_number":30,"context_line":"TEST_IMAGE_UUID \u003d \"cccccccc-cccc-cccc-cccc-cccccccccccc\""},{"line_number":31,"context_line":"TEST_IMAGE_NAME \u003d \"test-image\""},{"line_number":32,"context_line":"TEST_FLAVOR_ID \u003d \"1\""},{"line_number":33,"context_line":"TEST_FLAVOR_NAME \u003d \"fake.flavor\""},{"line_number":34,"context_line":"TEST_FLAVOR_EXTRA_SPECS \u003d {"},{"line_number":35,"context_line":"    \u0027baremetal:deploy_kernel_id\u0027: \u0027aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa\u0027,"}],"source_content_type":"text/x-python","patch_set":5,"id":"f6c1c9da_97294e00","line":32,"in_reply_to":"e0ae6799_fd1169e6","updated":"2024-09-03 00:56:35.000000000","message":"I just removed it, it\u0027s unused.","commit_id":"93b90d2b6a58df26f6fbf0ff0fe20cf37fcbf8af"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c805a8fe0dbc5bcad608dac72f19afd1accc36ba","unresolved":true,"context_lines":[{"line_number":25000,"context_line":"                instance, \u0027get_network_info\u0027, return_value\u003dnetwork_info),"},{"line_number":25001,"context_line":"            mock.patch.object("},{"line_number":25002,"context_line":"                self.drvr, \u0027_detach_with_retry\u0027),"},{"line_number":25003,"context_line":""},{"line_number":25004,"context_line":"            mock.patch.object("},{"line_number":25005,"context_line":"                self.drvr, \u0027get_instance_driver_metadata\u0027"},{"line_number":25006,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":2,"id":"a9261cf4_bb7f083e","line":25003,"updated":"2024-07-11 15:44:27.000000000","message":"whitespace","commit_id":"cf1a8ebec17304c3b232aea8136103a7f4b953cc"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28bd053992968007e615aad1ce68ac0f4e8740af","unresolved":false,"context_lines":[{"line_number":25000,"context_line":"                instance, \u0027get_network_info\u0027, return_value\u003dnetwork_info),"},{"line_number":25001,"context_line":"            mock.patch.object("},{"line_number":25002,"context_line":"                self.drvr, \u0027_detach_with_retry\u0027),"},{"line_number":25003,"context_line":""},{"line_number":25004,"context_line":"            mock.patch.object("},{"line_number":25005,"context_line":"                self.drvr, \u0027get_instance_driver_metadata\u0027"},{"line_number":25006,"context_line":"            ),"}],"source_content_type":"text/x-python","patch_set":2,"id":"675ad00d_6559e477","line":25003,"in_reply_to":"a9261cf4_bb7f083e","updated":"2024-08-31 00:57:22.000000000","message":"Acknowledged","commit_id":"cf1a8ebec17304c3b232aea8136103a7f4b953cc"}],"nova/virt/driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"@dataclasses.dataclass"},{"line_number":83,"context_line":"class InstanceDriverMetadata:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    root_type: str"},{"line_number":86,"context_line":"    root_id: str"},{"line_number":87,"context_line":"    instance_meta: NovaInstanceMeta"}],"source_content_type":"text/x-python","patch_set":4,"id":"6b1a2f3a_6dbddab5","line":84,"updated":"2024-08-30 02:01:38.000000000","message":"Nit: extra line inconsistent with the other classes.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":false,"context_lines":[{"line_number":81,"context_line":""},{"line_number":82,"context_line":"@dataclasses.dataclass"},{"line_number":83,"context_line":"class InstanceDriverMetadata:"},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"    root_type: str"},{"line_number":86,"context_line":"    root_id: str"},{"line_number":87,"context_line":"    instance_meta: NovaInstanceMeta"}],"source_content_type":"text/x-python","patch_set":4,"id":"58d5a519_5136ebd0","line":84,"in_reply_to":"6b1a2f3a_6dbddab5","updated":"2024-08-30 18:18:05.000000000","message":"Done","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":92,"context_line":"    nova_package: str \u003d dataclasses.field("},{"line_number":93,"context_line":"        default_factory\u003dversion.version_string_with_package)"},{"line_number":94,"context_line":"    creation_time: float \u003d dataclasses.field("},{"line_number":95,"context_line":"        default_factory\u003dtime.time)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"def get_block_device_info(instance, block_device_mapping):"}],"source_content_type":"text/x-python","patch_set":4,"id":"62fafa69_21acbdbf","line":95,"updated":"2024-08-30 02:01:38.000000000","message":"Nit: seems like nova_package and creation_time would fit on one line respectively.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":true,"context_lines":[{"line_number":92,"context_line":"    nova_package: str \u003d dataclasses.field("},{"line_number":93,"context_line":"        default_factory\u003dversion.version_string_with_package)"},{"line_number":94,"context_line":"    creation_time: float \u003d dataclasses.field("},{"line_number":95,"context_line":"        default_factory\u003dtime.time)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"def get_block_device_info(instance, block_device_mapping):"}],"source_content_type":"text/x-python","patch_set":4,"id":"bdd64f70_61b15447","line":95,"in_reply_to":"62fafa69_21acbdbf","updated":"2024-08-30 18:18:05.000000000","message":"I\u0027m showing 95 characters for nova_package if shortened. creation_time I removed the unneeded newline.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28bd053992968007e615aad1ce68ac0f4e8740af","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    nova_package: str \u003d dataclasses.field("},{"line_number":93,"context_line":"        default_factory\u003dversion.version_string_with_package)"},{"line_number":94,"context_line":"    creation_time: float \u003d dataclasses.field("},{"line_number":95,"context_line":"        default_factory\u003dtime.time)"},{"line_number":96,"context_line":""},{"line_number":97,"context_line":""},{"line_number":98,"context_line":"def get_block_device_info(instance, block_device_mapping):"}],"source_content_type":"text/x-python","patch_set":4,"id":"fc07663e_48225893","line":95,"in_reply_to":"bdd64f70_61b15447","updated":"2024-08-31 00:57:22.000000000","message":"Acknowledged","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":368,"context_line":"            instance_name \u003d instance.display_name or instance.uuid"},{"line_number":369,"context_line":"            instance_uuid \u003d instance.uuid"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        system_meta \u003d instance.system_metadata"},{"line_number":372,"context_line":"        instance_meta \u003d NovaInstanceMeta("},{"line_number":373,"context_line":"            str(instance_name), str(instance_uuid))"},{"line_number":374,"context_line":"        owner \u003d OwnerMeta("}],"source_content_type":"text/x-python","patch_set":4,"id":"a7c96aaa_5aeff74b","line":371,"updated":"2024-08-30 02:01:38.000000000","message":"This won\u0027t be valid if instance is a dict (L364) ... so if that\u0027s really a thing that can happen this will break. Do we need to handle a dict representation of instance?\n\nActually, the type hint in the method signature shows this has to be an instance object. So delete L364-L367?","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":false,"context_lines":[{"line_number":368,"context_line":"            instance_name \u003d instance.display_name or instance.uuid"},{"line_number":369,"context_line":"            instance_uuid \u003d instance.uuid"},{"line_number":370,"context_line":""},{"line_number":371,"context_line":"        system_meta \u003d instance.system_metadata"},{"line_number":372,"context_line":"        instance_meta \u003d NovaInstanceMeta("},{"line_number":373,"context_line":"            str(instance_name), str(instance_uuid))"},{"line_number":374,"context_line":"        owner \u003d OwnerMeta("}],"source_content_type":"text/x-python","patch_set":4,"id":"465afd4a_925225fc","line":371,"in_reply_to":"a7c96aaa_5aeff74b","updated":"2024-08-30 18:18:05.000000000","message":"Done","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":378,"context_line":"            projectname\u003dsystem_meta.get(\u0027owner_project_name\u0027, \u0027N/A\u0027)"},{"line_number":379,"context_line":"        )"},{"line_number":380,"context_line":"        flavor \u003d FlavorMeta("},{"line_number":381,"context_line":"            id\u003dinstance.flavor.id,"},{"line_number":382,"context_line":"            name\u003dinstance.flavor.name,"},{"line_number":383,"context_line":"            memory_mb\u003dinstance.flavor.memory_mb,"},{"line_number":384,"context_line":"            vcpus\u003dinstance.flavor.vcpus,"}],"source_content_type":"text/x-python","patch_set":4,"id":"6e0fb549_094dc7da","line":381,"range":{"start_line":381,"start_character":31,"end_line":381,"end_character":33},"updated":"2024-08-30 02:01:38.000000000","message":"I might be getting confused but did you really want `flavor.id` here? `id` is the integer primary key in the database. `flavor.flavorid` is the string ID of the flavor.\n\nI would have expected you would want to expose the string `flavorid` (by default Nova generates a UUID, for example).","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28bd053992968007e615aad1ce68ac0f4e8740af","unresolved":true,"context_lines":[{"line_number":378,"context_line":"            projectname\u003dsystem_meta.get(\u0027owner_project_name\u0027, \u0027N/A\u0027)"},{"line_number":379,"context_line":"        )"},{"line_number":380,"context_line":"        flavor \u003d FlavorMeta("},{"line_number":381,"context_line":"            id\u003dinstance.flavor.id,"},{"line_number":382,"context_line":"            name\u003dinstance.flavor.name,"},{"line_number":383,"context_line":"            memory_mb\u003dinstance.flavor.memory_mb,"},{"line_number":384,"context_line":"            vcpus\u003dinstance.flavor.vcpus,"}],"source_content_type":"text/x-python","patch_set":4,"id":"e2e7a101_f647566c","line":381,"range":{"start_line":381,"start_character":31,"end_line":381,"end_character":33},"in_reply_to":"0b9ffe37_1b865f8a","updated":"2024-08-31 00:57:22.000000000","message":"so that was one of the field you wanted to have for ironic no?\ndroping is fine if you dont need it for now it is one of the value i want to add in teh follow up for libvirt bu i can add it whenever i get around to do thing the libvirt patch so droping it in this patch is ok.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"307314432aa56578733e17cf79483703c4a392b0","unresolved":true,"context_lines":[{"line_number":378,"context_line":"            projectname\u003dsystem_meta.get(\u0027owner_project_name\u0027, \u0027N/A\u0027)"},{"line_number":379,"context_line":"        )"},{"line_number":380,"context_line":"        flavor \u003d FlavorMeta("},{"line_number":381,"context_line":"            id\u003dinstance.flavor.id,"},{"line_number":382,"context_line":"            name\u003dinstance.flavor.name,"},{"line_number":383,"context_line":"            memory_mb\u003dinstance.flavor.memory_mb,"},{"line_number":384,"context_line":"            vcpus\u003dinstance.flavor.vcpus,"}],"source_content_type":"text/x-python","patch_set":4,"id":"875a5861_32212289","line":381,"range":{"start_line":381,"start_character":31,"end_line":381,"end_character":33},"in_reply_to":"4b7fb3a6_c8f01961","updated":"2024-09-03 10:05:33.000000000","message":"a flavour has 2 ids\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L208-L214\n\n\n\u0027id\u0027: fields.IntegerField(), is the primary key on the db and is used internally\nit is not visible to a user\n\n\n\u0027flavorid\u0027: fields.StringField(), is the public id\n\nits defiend as a string but we default to genertign a uuid if you do not provide one when creatin the flavor.\n\norther conventions are to set the id equal to the name or to a int\n\nso if you were to store this in ironic you would need to store it as a string and you woudl want the flavorid field.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":true,"context_lines":[{"line_number":378,"context_line":"            projectname\u003dsystem_meta.get(\u0027owner_project_name\u0027, \u0027N/A\u0027)"},{"line_number":379,"context_line":"        )"},{"line_number":380,"context_line":"        flavor \u003d FlavorMeta("},{"line_number":381,"context_line":"            id\u003dinstance.flavor.id,"},{"line_number":382,"context_line":"            name\u003dinstance.flavor.name,"},{"line_number":383,"context_line":"            memory_mb\u003dinstance.flavor.memory_mb,"},{"line_number":384,"context_line":"            vcpus\u003dinstance.flavor.vcpus,"}],"source_content_type":"text/x-python","patch_set":4,"id":"0b9ffe37_1b865f8a","line":381,"range":{"start_line":381,"start_character":31,"end_line":381,"end_character":33},"in_reply_to":"6e0fb549_094dc7da","updated":"2024-08-30 18:18:05.000000000","message":"Looking at the existing libvirt driver, it didn\u0027t deal with the flavor id at all. I think this is a case where dropping this field is likely the more correct move.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"4e6b71efe07c2e82686d8573b5e61fb30c2dabac","unresolved":true,"context_lines":[{"line_number":378,"context_line":"            projectname\u003dsystem_meta.get(\u0027owner_project_name\u0027, \u0027N/A\u0027)"},{"line_number":379,"context_line":"        )"},{"line_number":380,"context_line":"        flavor \u003d FlavorMeta("},{"line_number":381,"context_line":"            id\u003dinstance.flavor.id,"},{"line_number":382,"context_line":"            name\u003dinstance.flavor.name,"},{"line_number":383,"context_line":"            memory_mb\u003dinstance.flavor.memory_mb,"},{"line_number":384,"context_line":"            vcpus\u003dinstance.flavor.vcpus,"}],"source_content_type":"text/x-python","patch_set":4,"id":"4b7fb3a6_c8f01961","line":381,"range":{"start_line":381,"start_character":31,"end_line":381,"end_character":33},"in_reply_to":"e2e7a101_f647566c","updated":"2024-09-03 00:56:35.000000000","message":"If I get specific asks from operators for specific metadata -- such as flavor id, I\u0027ll plumb it through as long as it makes sense as a minor feature addition later. (After making sure I fully understand how flavors are keyed in nova :D)","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"}],"nova/virt/ironic/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1b827909923fdf86646473afc855a9fe0e6487e","unresolved":true,"context_lines":[{"line_number":1176,"context_line":"        node \u003d self._get_node(node_id)"},{"line_number":1177,"context_line":"        flavor \u003d instance.flavor"},{"line_number":1178,"context_line":""},{"line_number":1179,"context_line":"        metadata \u003d self.get_instance_driver_metadata(instance, network_info)"},{"line_number":1180,"context_line":"        self._add_instance_info_to_node(node, instance, image_meta, flavor,"},{"line_number":1181,"context_line":"                                        metadata,"},{"line_number":1182,"context_line":"                                        block_device_info\u003dblock_device_info)"}],"source_content_type":"text/x-python","patch_set":4,"id":"105bf019_7ef531d2","line":1179,"updated":"2024-08-30 00:10:59.000000000","message":"if we look at \n\nhttps://zuul.opendev.org/t/openstack/build/e942e19765584dd2aa7aee4aa7ad6952/log/controller/logs/screen-n-cpu.txt#2127\n\n\nwe can see\n\nAug 27 17:48:23.469201 np0038299972 nova-compute[107400]: DEBUG nova.virt.driver [None req-a34bf360-6fdb-4cd5-891b-d3ecde62e0d9 tempest-BaremetalBasicOpsAndRescue-526084486 tempest-BaremetalBasicOpsAndRescue-526084486-project-member] InstanceDriverMetadata: InstanceDriverMetadata(root_type\u003d\u0027image\u0027, root_id\u003d\u0027e9812601-15d6-4493-bdc7-edad9c7f00c5\u0027, instance_meta\u003dNovaInstanceMeta(name\u003d\u0027tempest-BaremetalBasicOpsAndRescue-server-1661293579\u0027, uuid\u003d\u002767675b07-1a29-4e73-a42a-eea94ea1b8e7\u0027), owner\u003dOwnerMeta(userid\u003d\u002703c8c03bab664a40b61f5b4c3c61d930\u0027, username\u003d\u0027tempest-BaremetalBasicOpsAndRescue-526084486-project-member\u0027, projectid\u003d\u0027b47b271993b3424ca9de785425e13a71\u0027, projectname\u003d\u0027tempest-BaremetalBasicOpsAndRescue-526084486\u0027), image\u003dImageMeta(id\u003d\u0027e9812601-15d6-4493-bdc7-edad9c7f00c5\u0027, name\u003dNone, properties\u003dImageMetaProps(hw_architecture\u003d\u003c?\u003e,hw_auto_disk_config\u003d\u003c?\u003e,hw_boot_menu\u003d\u003c?\u003e,hw_cdrom_bus\u003d\u003c?\u003e,hw_cpu_cores\u003d\u003c?\u003e,hw_cpu_max_cores\u003d\u003c?\u003e,hw_cpu_max_sockets\u003d\u003c?\u003e,hw_cpu_max_threads\u003d\u003c?\u003e,hw_cpu_policy\u003d\u003c?\u003e,hw_cpu_realtime_mask\u003d\u003c?\u003e,hw_cpu_sockets\u003d\u003c?\u003e,hw_cpu_thread_policy\u003d\u003c?\u003e,hw_cpu_threads\u003d\u003c?\u003e,hw_device_id\u003d\u003c?\u003e,hw_disk_bus\u003d\u003c?\u003e,hw_disk_type\u003d\u003c?\u003e,hw_emulation_architecture\u003d\u003c?\u003e,hw_ephemeral_encryption\u003d\u003c?\u003e,hw_ephemeral_encryption_format\u003d\u003c?\u003e,hw_ephemeral_encryption_secret_uuid\u003d\u003c?\u003e,hw_firmware_type\u003d\u003c?\u003e,hw_floppy_bus\u003d\u003c?\u003e,hw_input_bus\u003d\u003c?\u003e,hw_ipxe_boot\u003d\u003c?\u003e,hw_locked_memory\u003d\u003c?\u003e,hw_machine_type\u003d\u003c?\u003e,hw_maxphysaddr_bits\u003d\u003c?\u003e,hw_maxphysaddr_mode\u003d\u003c?\u003e,hw_mem_encryption\u003d\u003c?\u003e,hw_mem_page_size\u003d\u003c?\u003e,hw_numa_cpus\u003d\u003c?\u003e,hw_numa_mem\u003d\u003c?\u003e,hw_numa_nodes\u003d\u003c?\u003e,hw_pci_numa_affinity_policy\u003d\u003c?\u003e,hw_pmu\u003d\u003c?\u003e,hw_pointer_model\u003d\u003c?\u003e,hw_qemu_guest_agent\u003d\u003c?\u003e,hw_rescue_bus\u003d\u003c?\u003e,hw_rescue_device\u003d\u003c?\u003e,hw_rng_model\u003d\u003c?\u003e,hw_scsi_model\u003d\u003c?\u003e,hw_serial_port_count\u003d\u003c?\u003e,hw_time_hpet\u003d\u003c?\u003e,hw_tpm_model\u003d\u003c?\u003e,hw_tpm_version\u003d\u003c?\u003e,hw_video_model\u003d\u003c?\u003e,hw_video_ram\u003d\u003c?\u003e,hw_vif_model\u003d\u003c?\u003e,hw_vif_multiqueue_enabled\u003d\u003c?\u003e,hw_viommu_model\u003d\u003c?\u003e,hw_virtio_packed_ring\u003d\u003c?\u003e,hw_vm_mode\u003d\u003c?\u003e,hw_watchdog_action\u003d\u003c?\u003e,img_bdm_v2\u003d\u003c?\u003e,img_bittorrent\u003d\u003c?\u003e,img_block_device_mapping\u003d\u003c?\u003e,img_cache_in_nova\u003d\u003c?\u003e,img_compression_level\u003d\u003c?\u003e,img_config_drive\u003d\u003c?\u003e,img_hide_hypervisor_id\u003d\u003c?\u003e,img_hv_requested_version\u003d\u003c?\u003e,img_hv_type\u003d\u003c?\u003e,img_linked_clone\u003d\u003c?\u003e,img_mappings\u003d\u003c?\u003e,img_owner_id\u003d\u003c?\u003e,img_root_device_name\u003d\u003c?\u003e,img_signature\u003d\u003c?\u003e,img_signature_certificate_uuid\u003d\u003c?\u003e,img_signature_hash_method\u003d\u003c?\u003e,img_signature_key_type\u003d\u003c?\u003e,img_use_agent\u003d\u003c?\u003e,img_version\u003d\u003c?\u003e,os_admin_user\u003d\u003c?\u003e,os_command_line\u003d\u003c?\u003e,os_distro\u003d\u003c?\u003e,os_require_quiesce\u003d\u003c?\u003e,os_secure_boot\u003d\u003c?\u003e,os_skip_agent_inject_files_at_boot\u003d\u003c?\u003e,os_skip_agent_inject_ssh\u003d\u003c?\u003e,os_type\u003d\u003c?\u003e,traits_required\u003d\u003c?\u003e)), flavor\u003dFlavorMeta(id\u003d11, name\u003d\u0027baremetal\u0027, memory_mb\u003d1024, vcpus\u003d2, root_gb\u003d4, ephemeral_gb\u003d0, extra_specs\u003d{\u0027capabilities:boot_mode\u0027: \u0027bios\u0027, \u0027cpu_arch\u0027: \u0027x86_64\u0027, \u0027resources:CUSTOM_BAREMETAL\u0027: \u00271\u0027, \u0027resources:DISK_GB\u0027: \u00270\u0027, \u0027resources:MEMORY_MB\u0027: \u00270\u0027, \u0027resources:VCPU\u0027: \u00270\u0027, \u0027trait:CUSTOM_GOLD\u0027: \u0027required\u0027}, swap\u003d0), network_info\u003d[{\"id\": \"27055603-4223-4d4a-8cba-0cf7345001cf\", \"address\": \"fa:16:3e:fc:b1:2d\", \"network\": {\"id\": \"c0508f2f-b297-4b5f-9c45-1d6b1cab0355\", \"bridge\": null, \"label\": \"private\", \"subnets\": [{\"cidr\": \"10.1.0.0/26\", \"dns\": [], \"gateway\": {\"address\": \"10.1.0.1\", \"type\": \"gateway\", \"version\": 4, \"meta\": {}}, \"ips\": [{\"address\": \"10.1.0.33\", \"type\": \"fixed\", \"version\": 4, \"meta\": {}, \"floating_ips\": []}], \"routes\": [], \"version\": 4, \"meta\": {\"enable_dhcp\": true, \"dhcp_server\": \"10.1.0.2\"}}, {\"cidr\": \"fd39:3935:fad9::/64\", \"dns\": [], \"gateway\": {\"address\": \"fd39:3935:fad9::1\", \"type\": \"gateway\", \"version\": 6, \"meta\": {}}, \"ips\": [{\"address\": \"fd39:3935:fad9:0:f816:3eff:fefc:b12d\", \"type\": \"fixed\", \"version\": 6, \"meta\": {}, \"floating_ips\": []}], \"routes\": [], \"version\": 6, \"meta\": {\"enable_dhcp\": true, \"ipv6_address_mode\": \"slaac\", \"dhcp_server\": \"fd39:3935:fad9:0:f816:3eff:fe2e:1861\"}}], \"meta\": {\"injected\": false, \"tenant_id\": \"88bbe4ef5852495ba11e029e8153cbd8\", \"mtu\": 1380, \"physical_network\": null, \"tunneled\": true}}, \"type\": \"unbound\", \"details\": {}, \"devname\": \"tap27055603-42\", \"ovs_interfaceid\": null, \"qbh_params\": null, \"qbg_params\": null, \"active\": false, \"vnic_type\": \"normal\", \"profile\": {}, \"preserve_on_delete\": false, \"delegate_create\": true, \"meta\": {}}], nova_package\u003d\u002729.1.0\u0027, creation_time\u003d1724780903.467889) {{(pid\u003d107400) get_instance_driver_metadata /opt/stack/nova/nova/virt/driver.py:405}}\n\nso the generic driver metadtat call is workign as exected.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1b827909923fdf86646473afc855a9fe0e6487e","unresolved":true,"context_lines":[{"line_number":1180,"context_line":"        self._add_instance_info_to_node(node, instance, image_meta, flavor,"},{"line_number":1181,"context_line":"                                        metadata,"},{"line_number":1182,"context_line":"                                        block_device_info\u003dblock_device_info)"},{"line_number":1183,"context_line":""},{"line_number":1184,"context_line":"        try:"},{"line_number":1185,"context_line":"            self._add_volume_target_info(context, instance, block_device_info)"},{"line_number":1186,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"27f257e4_b6a6d28c","line":1183,"updated":"2024-08-30 00:10:59.000000000","message":"we cam see the patch call on the ironic node\n\nhttps://zuul.opendev.org/t/openstack/build/e942e19765584dd2aa7aee4aa7ad6952/log/controller/logs/screen-ir-api.txt#1037\n\nbut i doen belive we will see this actully being used without looking at the ironci patch that depend on thsi one\n\nso if we take \nhttps://zuul.opendev.org/t/openstack/build/3e63f6e212d84fcab924c5a631321021\n\nas an example an instance with uuid  b9f74d01-41d6-4440-990c-25f7e2de4e3a\nwas created and logged here \nhttps://zuul.opendev.org/t/openstack/build/3e63f6e212d84fcab924c5a631321021/log/controller/logs/screen-n-cpu.txt#2117\n\nlookign at the ironci api config we can see the automtic lessee feature is enabeld\nand the source is set to instance\nhttps://zuul.opendev.org/t/openstack/build/3e63f6e212d84fcab924c5a631321021/log/controller/logs/screen-ir-api.txt#370-371\n\n\nsince we are not seeing this debug log message in the logs\n\nhttps://review.opendev.org/c/openstack/ironic/+/924887/3/ironic/conductor/deployments.py#116\n\nwe can infer that the project could be retirved \nas non of the log message printed.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"fef5d7c5d8ea594dbdcaad50d159efbf42c846fe","unresolved":true,"context_lines":[{"line_number":1180,"context_line":"        self._add_instance_info_to_node(node, instance, image_meta, flavor,"},{"line_number":1181,"context_line":"                                        metadata,"},{"line_number":1182,"context_line":"                                        block_device_info\u003dblock_device_info)"},{"line_number":1183,"context_line":""},{"line_number":1184,"context_line":"        try:"},{"line_number":1185,"context_line":"            self._add_volume_target_info(context, instance, block_device_info)"},{"line_number":1186,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"2e643f18_37a69d32","line":1183,"in_reply_to":"27f257e4_b6a6d28c","updated":"2024-08-30 22:27:00.000000000","message":"I am seeing: \n\nAug 27 17:33:36.236046 np0038299834 ironic-conductor[88351]: DEBUG ironic.conductor.deployments [None req-d0ef2fb6-54e1-4692-97df-5acad4a7372a None None] Adding lessee 078ac34cda5f411382d25d00ea76e947 to node db42f060-57f7-4030-94fc-96ac5d9d7746. {{(pid\u003d88351) start_deploy /opt/stack/ironic/ironic/conductor/deployments.py:121}}\n\nin the log here: https://6e13b993ba41e3ae3ac5-67452faa46fddf50e0cf1e389c2c8597.ssl.cf1.rackcdn.com/924887/3/check/ironic-tempest-bios-redfish-pxe/3e63f6e/controller/logs/screen-ir-cond.txt","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28bd053992968007e615aad1ce68ac0f4e8740af","unresolved":true,"context_lines":[{"line_number":1180,"context_line":"        self._add_instance_info_to_node(node, instance, image_meta, flavor,"},{"line_number":1181,"context_line":"                                        metadata,"},{"line_number":1182,"context_line":"                                        block_device_info\u003dblock_device_info)"},{"line_number":1183,"context_line":""},{"line_number":1184,"context_line":"        try:"},{"line_number":1185,"context_line":"            self._add_volume_target_info(context, instance, block_device_info)"},{"line_number":1186,"context_line":"        except Exception:"}],"source_content_type":"text/x-python","patch_set":4,"id":"caf37ed4_54bd03f4","line":1183,"in_reply_to":"2e643f18_37a69d32","updated":"2024-08-31 00:57:22.000000000","message":"ah perfect\n\ni must have missed that in the ironic patch but thats what i was hoping to find.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"}],"nova/virt/ironic/patcher.py":[{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"c805a8fe0dbc5bcad608dac72f19afd1accc36ba","unresolved":true,"context_lines":[{"line_number":73,"context_line":"                      \u0027value\u0027: str(instance.flavor.memory_mb)})"},{"line_number":74,"context_line":"        patch.append({\u0027path\u0027: \u0027/instance_info/local_gb\u0027, \u0027op\u0027: \u0027add\u0027,"},{"line_number":75,"context_line":"                      \u0027value\u0027: str(self.node.properties.get(\u0027local_gb\u0027, 0))})"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        patch.append({\u0027path\u0027: \u0027/instance_info/project_id\u0027, \u0027op\u0027: \u0027add\u0027,"},{"line_number":78,"context_line":"                      \u0027value\u0027: str(metadata.owner.projectid)})"},{"line_number":79,"context_line":"        patch.append({\u0027path\u0027: \u0027/instance_info/project_name\u0027, \u0027op\u0027: \u0027add\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"2f1bfa4c_89ccf4e4","line":76,"updated":"2024-07-11 15:44:27.000000000","message":"whitespace","commit_id":"cf1a8ebec17304c3b232aea8136103a7f4b953cc"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"178fd7ad88e5e27db0aed13b2fb56e69baa92ecd","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                      \u0027value\u0027: str(instance.flavor.memory_mb)})"},{"line_number":74,"context_line":"        patch.append({\u0027path\u0027: \u0027/instance_info/local_gb\u0027, \u0027op\u0027: \u0027add\u0027,"},{"line_number":75,"context_line":"                      \u0027value\u0027: str(self.node.properties.get(\u0027local_gb\u0027, 0))})"},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"        patch.append({\u0027path\u0027: \u0027/instance_info/project_id\u0027, \u0027op\u0027: \u0027add\u0027,"},{"line_number":78,"context_line":"                      \u0027value\u0027: str(metadata.owner.projectid)})"},{"line_number":79,"context_line":"        patch.append({\u0027path\u0027: \u0027/instance_info/project_name\u0027, \u0027op\u0027: \u0027add\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ce2183bd_e03f4079","line":76,"in_reply_to":"2f1bfa4c_89ccf4e4","updated":"2024-08-27 16:50:27.000000000","message":"Done","commit_id":"cf1a8ebec17304c3b232aea8136103a7f4b953cc"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":3094,"context_line":"            guest.set_metadata("},{"line_number":3095,"context_line":"                self._get_guest_config_meta("},{"line_number":3096,"context_line":"                    self.get_instance_driver_metadata("},{"line_number":3097,"context_line":"                        instance, network_info)))"},{"line_number":3098,"context_line":"        except libvirt.libvirtError:"},{"line_number":3099,"context_line":"            LOG.warning(\u0027updating libvirt metadata failed.\u0027, instance\u003dinstance)"},{"line_number":3100,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"a2cea417_b05b5401","line":3097,"updated":"2024-08-30 02:01:38.000000000","message":"As mentioned in a comment below, this will not include the instance `uuid` nor the flavor `extra_specs` in the guest metadata XML.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d48dc54d67975cf840749efea977ea5b3e9d6c32","unresolved":true,"context_lines":[{"line_number":3094,"context_line":"            guest.set_metadata("},{"line_number":3095,"context_line":"                self._get_guest_config_meta("},{"line_number":3096,"context_line":"                    self.get_instance_driver_metadata("},{"line_number":3097,"context_line":"                        instance, network_info)))"},{"line_number":3098,"context_line":"        except libvirt.libvirtError:"},{"line_number":3099,"context_line":"            LOG.warning(\u0027updating libvirt metadata failed.\u0027, instance\u003dinstance)"},{"line_number":3100,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"95392c06_cbe2c6d3","line":3097,"in_reply_to":"a2cea417_b05b5401","updated":"2024-08-30 02:26:42.000000000","message":"yes that actully expected.\n\nthere was ment to be a second patch to extend the libvird dirver to do that that i was going to write after jays patch was merged.\n\norginally i was oging to work on that in parallel before we combined the patches.\n\n\nthe uuid is already included the xml as the xmls uuid, we made that change many years ago.\n\ni would prefer to keep the extra info in the generic object even if its not used curenclty\n\nthe scope of this patch was the extraction and use in the ironic driver whiel maintaining the existing functionality in the libvirt driver.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"e1b827909923fdf86646473afc855a9fe0e6487e","unresolved":true,"context_lines":[{"line_number":6076,"context_line":""},{"line_number":6077,"context_line":"        return dev"},{"line_number":6078,"context_line":""},{"line_number":6079,"context_line":"    def _get_guest_config_meta(self, dmeta: driver.InstanceDriverMetadata):"},{"line_number":6080,"context_line":"        \"\"\"Get metadata config for guest.\"\"\""},{"line_number":6081,"context_line":""},{"line_number":6082,"context_line":"        meta \u003d vconfig.LibvirtConfigGuestMetaNovaInstance()"}],"source_content_type":"text/x-python","patch_set":4,"id":"f670bd52_5c86ea6a","line":6079,"updated":"2024-08-30 00:10:59.000000000","message":"the normal xml geration for libvirt driver also works as it did before.\n\nhttps://zuul.opendev.org/t/openstack/build/343fe3a78b2a4e239b866490be8dc83e/log/controller/logs/screen-n-cpu.txt#4355-4378","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":6082,"context_line":"        meta \u003d vconfig.LibvirtConfigGuestMetaNovaInstance()"},{"line_number":6083,"context_line":"        meta.package \u003d dmeta.nova_package"},{"line_number":6084,"context_line":"        meta.name \u003d dmeta.instance_meta.name"},{"line_number":6085,"context_line":"        meta.uuid \u003d dmeta.instance_meta.uuid"},{"line_number":6086,"context_line":"        meta.creationTime \u003d dmeta.creation_time"},{"line_number":6087,"context_line":"        meta.roottype \u003d dmeta.root_type"},{"line_number":6088,"context_line":"        meta.rootid \u003d dmeta.root_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"5c76974c_02a3b443","line":6085,"updated":"2024-08-30 02:01:38.000000000","message":"There is not a `uuid` attribute in `LibvirtConfigGuestMetaNovaInstance`, so this will not make it into the guest metadata in the XML.\n\nIs this intended to use the libvirt config as a vehicle for passing attributes that will not translate to the guest XML? I\u0027m not sure that\u0027s a good pattern.\n\n(later) It seems like for the libvirt driver it won\u0027t do anything with `uuid` and `extra_specs`, so shouldn\u0027t we leave them out of this method?\n\n[1] https://github.com/openstack/nova/blob/b36f01be63e0374e75f9b6a6678ca314996f6b20/nova/virt/libvirt/config.py#L3745","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":true,"context_lines":[{"line_number":6082,"context_line":"        meta \u003d vconfig.LibvirtConfigGuestMetaNovaInstance()"},{"line_number":6083,"context_line":"        meta.package \u003d dmeta.nova_package"},{"line_number":6084,"context_line":"        meta.name \u003d dmeta.instance_meta.name"},{"line_number":6085,"context_line":"        meta.uuid \u003d dmeta.instance_meta.uuid"},{"line_number":6086,"context_line":"        meta.creationTime \u003d dmeta.creation_time"},{"line_number":6087,"context_line":"        meta.roottype \u003d dmeta.root_type"},{"line_number":6088,"context_line":"        meta.rootid \u003d dmeta.root_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"6eedfa52_a5680867","line":6085,"in_reply_to":"420d0583_3b63ded8","updated":"2024-08-30 18:18:05.000000000","message":"Thanks for the context; will not explicitly set this in the libvirt case.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d48dc54d67975cf840749efea977ea5b3e9d6c32","unresolved":true,"context_lines":[{"line_number":6082,"context_line":"        meta \u003d vconfig.LibvirtConfigGuestMetaNovaInstance()"},{"line_number":6083,"context_line":"        meta.package \u003d dmeta.nova_package"},{"line_number":6084,"context_line":"        meta.name \u003d dmeta.instance_meta.name"},{"line_number":6085,"context_line":"        meta.uuid \u003d dmeta.instance_meta.uuid"},{"line_number":6086,"context_line":"        meta.creationTime \u003d dmeta.creation_time"},{"line_number":6087,"context_line":"        meta.roottype \u003d dmeta.root_type"},{"line_number":6088,"context_line":"        meta.rootid \u003d dmeta.root_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"420d0583_3b63ded8","line":6085,"in_reply_to":"5c76974c_02a3b443","updated":"2024-08-30 02:26:42.000000000","message":"we should not be settign them currently correct.\n\nit wont break anything today btu its not correct until we define the fields.\n\nuuid wont be needed in the libvirt driver in this context as we store the instance uuid in the uuid element of the xml rather then a custom nova field.\n\nthe xml uuid fild is used to coralated metrics with instnace by collectd and other monitoring tools.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28bd053992968007e615aad1ce68ac0f4e8740af","unresolved":false,"context_lines":[{"line_number":6082,"context_line":"        meta \u003d vconfig.LibvirtConfigGuestMetaNovaInstance()"},{"line_number":6083,"context_line":"        meta.package \u003d dmeta.nova_package"},{"line_number":6084,"context_line":"        meta.name \u003d dmeta.instance_meta.name"},{"line_number":6085,"context_line":"        meta.uuid \u003d dmeta.instance_meta.uuid"},{"line_number":6086,"context_line":"        meta.creationTime \u003d dmeta.creation_time"},{"line_number":6087,"context_line":"        meta.roottype \u003d dmeta.root_type"},{"line_number":6088,"context_line":"        meta.rootid \u003d dmeta.root_id"}],"source_content_type":"text/x-python","patch_set":4,"id":"9217a8dd_0d44f1db","line":6085,"in_reply_to":"6eedfa52_a5680867","updated":"2024-08-31 00:57:22.000000000","message":"Done","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"5e601ac2f06de34c189a23e4d2781255a5613b71","unresolved":true,"context_lines":[{"line_number":6101,"context_line":"        fmeta.ephemeral \u003d dmeta.flavor.ephemeral_gb"},{"line_number":6102,"context_line":"        fmeta.disk \u003d dmeta.flavor.root_gb"},{"line_number":6103,"context_line":"        fmeta.swap \u003d dmeta.flavor.swap"},{"line_number":6104,"context_line":"        fmeta.extra_specs \u003d dmeta.flavor.extra_specs"},{"line_number":6105,"context_line":""},{"line_number":6106,"context_line":"        meta.flavor \u003d fmeta"},{"line_number":6107,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"e988fb05_460ed82d","line":6104,"updated":"2024-08-30 02:01:38.000000000","message":"Similarly, I don\u0027t see an `extra_specs` attribute in `LibvirtConfigGuestMetaNovaFlavor` [1]. \n\n[1] https://github.com/openstack/nova/blob/b36f01be63e0374e75f9b6a6678ca314996f6b20/nova/virt/libvirt/config.py#L3790","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"28bd053992968007e615aad1ce68ac0f4e8740af","unresolved":false,"context_lines":[{"line_number":6101,"context_line":"        fmeta.ephemeral \u003d dmeta.flavor.ephemeral_gb"},{"line_number":6102,"context_line":"        fmeta.disk \u003d dmeta.flavor.root_gb"},{"line_number":6103,"context_line":"        fmeta.swap \u003d dmeta.flavor.swap"},{"line_number":6104,"context_line":"        fmeta.extra_specs \u003d dmeta.flavor.extra_specs"},{"line_number":6105,"context_line":""},{"line_number":6106,"context_line":"        meta.flavor \u003d fmeta"},{"line_number":6107,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"69dd8149_3b6a8e89","line":6104,"in_reply_to":"6b666eb6_fb8fde79","updated":"2024-08-31 00:57:22.000000000","message":"Done","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":10342,"name":"Jay Faulkner","display_name":"JayF","email":"jay@jvf.cc","username":"JayF","status":"youtube.com/@oss-gr / podcast.gr-oss.io"},"change_message_id":"b380ac376458e809aa24ae989e9a71339a10a55a","unresolved":true,"context_lines":[{"line_number":6101,"context_line":"        fmeta.ephemeral \u003d dmeta.flavor.ephemeral_gb"},{"line_number":6102,"context_line":"        fmeta.disk \u003d dmeta.flavor.root_gb"},{"line_number":6103,"context_line":"        fmeta.swap \u003d dmeta.flavor.swap"},{"line_number":6104,"context_line":"        fmeta.extra_specs \u003d dmeta.flavor.extra_specs"},{"line_number":6105,"context_line":""},{"line_number":6106,"context_line":"        meta.flavor \u003d fmeta"},{"line_number":6107,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"6b666eb6_fb8fde79","line":6104,"in_reply_to":"9f4fbcf6_cc8c4e10","updated":"2024-08-30 18:18:05.000000000","message":"ack; I\u0027ve removed it.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"d48dc54d67975cf840749efea977ea5b3e9d6c32","unresolved":true,"context_lines":[{"line_number":6101,"context_line":"        fmeta.ephemeral \u003d dmeta.flavor.ephemeral_gb"},{"line_number":6102,"context_line":"        fmeta.disk \u003d dmeta.flavor.root_gb"},{"line_number":6103,"context_line":"        fmeta.swap \u003d dmeta.flavor.swap"},{"line_number":6104,"context_line":"        fmeta.extra_specs \u003d dmeta.flavor.extra_specs"},{"line_number":6105,"context_line":""},{"line_number":6106,"context_line":"        meta.flavor \u003d fmeta"},{"line_number":6107,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"9f4fbcf6_cc8c4e10","line":6104,"in_reply_to":"e988fb05_460ed82d","updated":"2024-08-30 02:26:42.000000000","message":"ya so here we shoudl nto be assigning the extra specs yet\nthat was going to be part of the follow up patch when i extended  LibvirtConfigGuestMetaNovaFlavor to use it.","commit_id":"e52a4968f7ffb4dda8bc07a64491bd22a6e181e2"}]}
