)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f60aae7d812979cd66835ee338655f32acd8d7af","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"bb5d71ba_1795e5fa","updated":"2025-05-21 08:25:50.000000000","message":"+1 over all, i think i would be ok to +2 once the blueprint is actully accpated.","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"d6e551e7d5866bbf011399a132e0c2c4fbb337e7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"b3128438_7c651bfc","updated":"2025-05-21 07:24:02.000000000","message":"Are there any news on whether this is going to be merged in Flamingo? This is critical for CloudKitty, as the most useful use case for rating and billing is to set a different price per Flavor, as it is what the public cloud providers usually do for computing.","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"fd162778f409439363a6fcc1fe1b27d9a0326ea0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2dcf3d2a_1fb126ca","updated":"2025-03-05 08:32:13.000000000","message":"Ceilometer change that requires this patch: https://review.opendev.org/c/openstack/ceilometer/+/943365","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"3260d5e63ae2455503bc35deb1aba989fe93d922","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f839b35e_0fe32d8f","updated":"2025-03-26 08:34:02.000000000","message":"This will be utterly useful to be able to integrate chargeback in an efficient way, especially when the backend metric storage is Prometheus-based.","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"3b33f707c84d2c0b110902f2d2f6b58700577788","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"9b640d3d_cafcb8fc","in_reply_to":"575bd9b1_55b4fbe0","updated":"2025-05-21 18:41:37.000000000","message":"Hi Sean, apologies for the inactivity on this change, been a bit busy with work.\n\nIn the meantime we\u0027ve been doing some real world testing of this change on our production OpenStack environments, and it looks like it\u0027s working great (though we\u0027ve uncovered another, unrelated, bug with Nova that we\u0027ll raise separately), so I\u0027d be happy to attend the next Nova meeting so we can discuss this change.\n\nI\u0027ll put it into the agenda for the next meeting.","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":32968,"name":"Juan Larriba","email":"jlarriba@redhat.com","username":"jlarriba"},"change_message_id":"28d49771b2c2002440ecf2736d44aa90797b0088","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"dabf6b9f_0d0d51ac","in_reply_to":"9b640d3d_cafcb8fc","updated":"2025-05-22 08:06:14.000000000","message":"Thank you very much Sean and Callum!","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f60aae7d812979cd66835ee338655f32acd8d7af","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":2,"id":"575bd9b1_55b4fbe0","in_reply_to":"b3128438_7c651bfc","updated":"2025-05-21 08:25:50.000000000","message":"procedurlly the propsoe still has not ask for this to be apprves as a specless bluepriont\n\nthey are ment to attend the nova irc meeting and ask for it to be formally appoved\nto obviate teh need for a spec.\n\nhttps://blueprints.launchpad.net/nova/+spec/xml-image-meta\n\nhas never actually be raised in the Nova IRC meetings.\n\nSo technically this should have a procedure -2 since since someone is advocating for merging it when it procedurally not allowed.\nI\u0027m not setting that because I think this is a relatively easy win and i would like to see it merge.\n\nright now this is waiting on Callum asking for it to be accepted and \nOnce it is approved, it will be updated in Launchpad and added to https://etherpad.opendev.org/p/nova-2025.2-status#L20\n\nwe discuss requests for specless bluepirnt in the open diescusion section of the irc meeting each week\n\nhttps://wiki.openstack.org/wiki/Meetings/Nova#Weekly_Nova_team_meeting\n\nIf @callum.dickinson.nz@gmail.com can\u0027t attend the IRC meeting, then they can ask for the approval via the mailing list async instead.","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"7ad5a456f06f9b058b335b488eea292073f3f347","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2cc41e39_9b405cd8","in_reply_to":"dabf6b9f_0d0d51ac","updated":"2025-05-27 20:52:22.000000000","message":"The spec-less blueprint has now been approved for inclusion as of the Nova Meeting held at May 27 16:00.\n\nThis change should now be able to be merged.","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6c6daed554355a091dd9d4b6f32445b2e0dff2d1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"9285a63d_c9dab404","updated":"2025-08-07 11:17:39.000000000","message":"We should expose the flavor ID as `id`, not `uuid`, since it\u0027s not required to be an `id` and won\u0027t be in a DevStack deployment.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":20733,"name":"Rajesh Tailor","email":"ratailor@redhat.com","username":"rajesht"},"change_message_id":"9883963e8b119b9508a5cd0a14da17f47d46029c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"a3cedd23_e12e60bc","updated":"2025-08-08 10:56:09.000000000","message":"LGTM","commit_id":"619cd0a9c733125d8c2bac10c8b0b40e00bd2594"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"81f6f491f29f56c0286ecad4b430db56898c43f1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"158a2dcd_16a36f52","updated":"2025-08-08 23:53:40.000000000","message":"recheck nova-ceph-multistore transient failure","commit_id":"619cd0a9c733125d8c2bac10c8b0b40e00bd2594"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"ff8c854d437422b6313e78919a3fd6ecd46b4033","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"78f7ff37_84acdf8d","updated":"2025-08-09 03:18:13.000000000","message":"recheck nova-ceph-multistore transient failure","commit_id":"619cd0a9c733125d8c2bac10c8b0b40e00bd2594"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"7a41faf7b6a37c99971b6e6c6a0a98736e68d981","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"56a5a934_0d991d6f","updated":"2025-08-08 20:54:53.000000000","message":"recheck tempest timeout","commit_id":"619cd0a9c733125d8c2bac10c8b0b40e00bd2594"}],"nova/tests/unit/virt/libvirt/test_config.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f60aae7d812979cd66835ee338655f32acd8d7af","unresolved":true,"context_lines":[{"line_number":4146,"context_line":"        \u003cnova:swap\u003e10\u003c/nova:swap\u003e"},{"line_number":4147,"context_line":"        \u003cnova:ephemeral\u003e10\u003c/nova:ephemeral\u003e"},{"line_number":4148,"context_line":"        \u003cnova:vcpus\u003e8\u003c/nova:vcpus\u003e"},{"line_number":4149,"context_line":"        \u003cnova:extraSpecs\u003e\u003c/nova:extraSpecs\u003e"},{"line_number":4150,"context_line":"      \u003c/nova:flavor\u003e"},{"line_number":4151,"context_line":"      \u003cnova:owner\u003e"},{"line_number":4152,"context_line":"        \u003cnova:user"}],"source_content_type":"text/x-python","patch_set":2,"id":"ae85d3e8_0e857f55","line":4149,"range":{"start_line":4149,"start_character":8,"end_line":4149,"end_character":43},"updated":"2025-05-21 08:25:50.000000000","message":"in reallity you only really add this and the uuid above. but the way the diff renders it looks like more changed then it actully had","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"cf61245db002122bafb07886c2a50e158fbb9b0c","unresolved":false,"context_lines":[{"line_number":4146,"context_line":"        \u003cnova:swap\u003e10\u003c/nova:swap\u003e"},{"line_number":4147,"context_line":"        \u003cnova:ephemeral\u003e10\u003c/nova:ephemeral\u003e"},{"line_number":4148,"context_line":"        \u003cnova:vcpus\u003e8\u003c/nova:vcpus\u003e"},{"line_number":4149,"context_line":"        \u003cnova:extraSpecs\u003e\u003c/nova:extraSpecs\u003e"},{"line_number":4150,"context_line":"      \u003c/nova:flavor\u003e"},{"line_number":4151,"context_line":"      \u003cnova:owner\u003e"},{"line_number":4152,"context_line":"        \u003cnova:user"}],"source_content_type":"text/x-python","patch_set":2,"id":"0575a8a0_ec5d8cc6","line":4149,"range":{"start_line":4149,"start_character":8,"end_line":4149,"end_character":43},"in_reply_to":"ae85d3e8_0e857f55","updated":"2025-05-29 22:01:09.000000000","message":"Yeah, that\u0027s unfortunate.","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f60aae7d812979cd66835ee338655f32acd8d7af","unresolved":true,"context_lines":[{"line_number":4234,"context_line":"        \u003cnova:vcpus\u003e8\u003c/nova:vcpus\u003e"},{"line_number":4235,"context_line":"        \u003cnova:extraSpecs\u003e"},{"line_number":4236,"context_line":"          \u003cnova:extraSpec name\u003d\"hw_rng:allowed\"\u003etrue\u003c/nova:extraSpec\u003e"},{"line_number":4237,"context_line":"        \u003c/nova:extraSpecs\u003e"},{"line_number":4238,"context_line":"      \u003c/nova:flavor\u003e"},{"line_number":4239,"context_line":"      \u003cnova:owner\u003e"},{"line_number":4240,"context_line":"        \u003cnova:user"}],"source_content_type":"text/x-python","patch_set":2,"id":"a1b6d5a3_e53f27f2","line":4237,"updated":"2025-05-21 08:25:50.000000000","message":"+1 this looks like i woudl expect based on our pass converstaion","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"cf61245db002122bafb07886c2a50e158fbb9b0c","unresolved":false,"context_lines":[{"line_number":4234,"context_line":"        \u003cnova:vcpus\u003e8\u003c/nova:vcpus\u003e"},{"line_number":4235,"context_line":"        \u003cnova:extraSpecs\u003e"},{"line_number":4236,"context_line":"          \u003cnova:extraSpec name\u003d\"hw_rng:allowed\"\u003etrue\u003c/nova:extraSpec\u003e"},{"line_number":4237,"context_line":"        \u003c/nova:extraSpecs\u003e"},{"line_number":4238,"context_line":"      \u003c/nova:flavor\u003e"},{"line_number":4239,"context_line":"      \u003cnova:owner\u003e"},{"line_number":4240,"context_line":"        \u003cnova:user"}],"source_content_type":"text/x-python","patch_set":2,"id":"e9f5b49b_5a04e316","line":4237,"in_reply_to":"a1b6d5a3_e53f27f2","updated":"2025-05-29 22:01:09.000000000","message":"Done","commit_id":"e0034f6658dace147b2d5616fd29361ec683d8de"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6c6daed554355a091dd9d4b6f32445b2e0dff2d1","unresolved":true,"context_lines":[{"line_number":4182,"context_line":"        \u003c/nova:port\u003e"},{"line_number":4183,"context_line":"      \u003c/nova:ports\u003e"},{"line_number":4184,"context_line":"    \u003c/nova:instance\u003e"},{"line_number":4185,"context_line":"        \"\"\")"},{"line_number":4186,"context_line":""},{"line_number":4187,"context_line":"    def test_config_metadata_flavor_extra_specs(self):"},{"line_number":4188,"context_line":"        meta \u003d config.LibvirtConfigGuestMetaNovaInstance()"}],"source_content_type":"text/x-python","patch_set":5,"id":"4feb44a5_b23f8e12","line":4185,"updated":"2025-08-07 11:17:39.000000000","message":"nit: I\u0027d personally add `noqa: E501` to avoid having to wrap some lines","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"ba783fb458b503639dacf7c62f5ad6329791a938","unresolved":true,"context_lines":[{"line_number":4182,"context_line":"        \u003c/nova:port\u003e"},{"line_number":4183,"context_line":"      \u003c/nova:ports\u003e"},{"line_number":4184,"context_line":"    \u003c/nova:instance\u003e"},{"line_number":4185,"context_line":"        \"\"\")"},{"line_number":4186,"context_line":""},{"line_number":4187,"context_line":"    def test_config_metadata_flavor_extra_specs(self):"},{"line_number":4188,"context_line":"        meta \u003d config.LibvirtConfigGuestMetaNovaInstance()"}],"source_content_type":"text/x-python","patch_set":5,"id":"a277d8d0_daaecd9e","line":4185,"in_reply_to":"4feb44a5_b23f8e12","updated":"2025-08-07 12:19:18.000000000","message":"For simplicity\u0027s sake I\u0027ve left it using the same formatting as the other tests (I figured if you\u0027d like to change how these are formatted, it\u0027d be better to do them all at once). Hopefully that\u0027s okay.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c8c3e760aae56c1589be57cb25ae0979d585093e","unresolved":false,"context_lines":[{"line_number":4182,"context_line":"        \u003c/nova:port\u003e"},{"line_number":4183,"context_line":"      \u003c/nova:ports\u003e"},{"line_number":4184,"context_line":"    \u003c/nova:instance\u003e"},{"line_number":4185,"context_line":"        \"\"\")"},{"line_number":4186,"context_line":""},{"line_number":4187,"context_line":"    def test_config_metadata_flavor_extra_specs(self):"},{"line_number":4188,"context_line":"        meta \u003d config.LibvirtConfigGuestMetaNovaInstance()"}],"source_content_type":"text/x-python","patch_set":5,"id":"4c1a6a50_ee272800","line":4185,"in_reply_to":"a277d8d0_daaecd9e","updated":"2025-08-08 09:22:43.000000000","message":"Ack, that\u0027s a-okay.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"}],"nova/tests/unit/virt/libvirt/test_driver.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6c6daed554355a091dd9d4b6f32445b2e0dff2d1","unresolved":false,"context_lines":[{"line_number":3099,"context_line":"            swap\u003d33550336,"},{"line_number":3100,"context_line":"            extra_specs\u003d{},"},{"line_number":3101,"context_line":"            id\u003d42,"},{"line_number":3102,"context_line":"            flavorid\u003d\u0027someflavor\u0027,"},{"line_number":3103,"context_line":"        )"},{"line_number":3104,"context_line":"        instance_ref \u003d objects.Instance(**test_instance)"},{"line_number":3105,"context_line":"        instance_ref.flavor \u003d flavor"}],"source_content_type":"text/x-python","patch_set":5,"id":"8a58d05b_94754372","line":3102,"updated":"2025-08-07 11:17:39.000000000","message":"~~These are expected to be UUIDs in real life, right? Can we do that here if so. I\u0027ve had to fix up a load of these in the OpenAPI series and would like to avoid introducing new ones.~~\n\nNope, this is the column actually exposed as ID to users. This is fine as-is.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"}],"nova/virt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"a293cb9c822729726a2b9097a564f9c310fd1eea","unresolved":true,"context_lines":[{"line_number":55,"context_line":"    root_gb: int"},{"line_number":56,"context_line":"    ephemeral_gb: int"},{"line_number":57,"context_line":"    extra_specs: dict"},{"line_number":58,"context_line":"    swap: int"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"@dataclasses.dataclass"}],"source_content_type":"text/x-python","patch_set":1,"id":"d2479550_77202cda","line":58,"updated":"2025-02-28 10:55:58.000000000","message":"if you doing this can you also add the falvor extra specs\nin the same patch and embed them in the flavor the same way you are doing for the image properties","commit_id":"3df1f1657a2ac3d52f6801a4de9892ba4ac76c36"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f60aae7d812979cd66835ee338655f32acd8d7af","unresolved":false,"context_lines":[{"line_number":55,"context_line":"    root_gb: int"},{"line_number":56,"context_line":"    ephemeral_gb: int"},{"line_number":57,"context_line":"    extra_specs: dict"},{"line_number":58,"context_line":"    swap: int"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"@dataclasses.dataclass"}],"source_content_type":"text/x-python","patch_set":1,"id":"b1eff764_e6c23fc2","line":58,"in_reply_to":"80a0dcdc_d067ae4b","updated":"2025-05-21 08:25:50.000000000","message":"Done","commit_id":"3df1f1657a2ac3d52f6801a4de9892ba4ac76c36"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"2cd303428e5979a6d5e98582d98618e76ea84a97","unresolved":true,"context_lines":[{"line_number":55,"context_line":"    root_gb: int"},{"line_number":56,"context_line":"    ephemeral_gb: int"},{"line_number":57,"context_line":"    extra_specs: dict"},{"line_number":58,"context_line":"    swap: int"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":""},{"line_number":61,"context_line":"@dataclasses.dataclass"}],"source_content_type":"text/x-python","patch_set":1,"id":"80a0dcdc_d067ae4b","line":58,"in_reply_to":"d2479550_77202cda","updated":"2025-03-03 05:04:40.000000000","message":"Thanks for the suggested. Added extra_specs to libvirt XML as well.","commit_id":"3df1f1657a2ac3d52f6801a4de9892ba4ac76c36"}],"nova/virt/libvirt/config.py":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6c6daed554355a091dd9d4b6f32445b2e0dff2d1","unresolved":true,"context_lines":[{"line_number":3804,"context_line":"                             ns_uri\u003dNOVA_NS)"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"        self.name \u003d None"},{"line_number":3807,"context_line":"        self.uuid \u003d None"},{"line_number":3808,"context_line":"        self.memory \u003d None"},{"line_number":3809,"context_line":"        self.disk \u003d None"},{"line_number":3810,"context_line":"        self.swap \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"bdda9fc5_3644bfe2","line":3807,"updated":"2025-08-07 11:17:39.000000000","message":"This isn\u0027t a UUID:\n\n```\n❯ openstack flavor list -f value -c id -c name\n1 m1.tiny\n2 m1.small\n3 m1.medium\n4 m1.large\n42 m1.nano\n5 m1.xlarge\n84 m1.micro\nc1 cirros256\nd1 ds512M\nd2 ds1G\nd3 ds2G\nd4 ds4G\n```\n\nCan we call this `id` instead?","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"ba783fb458b503639dacf7c62f5ad6329791a938","unresolved":true,"context_lines":[{"line_number":3804,"context_line":"                             ns_uri\u003dNOVA_NS)"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"        self.name \u003d None"},{"line_number":3807,"context_line":"        self.uuid \u003d None"},{"line_number":3808,"context_line":"        self.memory \u003d None"},{"line_number":3809,"context_line":"        self.disk \u003d None"},{"line_number":3810,"context_line":"        self.swap \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"f835a139_9c5a9150","line":3807,"in_reply_to":"0aca95d4_b9e04e47","updated":"2025-08-07 12:19:18.000000000","message":"Renamed `uuid` to `id`.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"2103a8f606f7bdabe0292e14fcde59f5820be5ce","unresolved":true,"context_lines":[{"line_number":3804,"context_line":"                             ns_uri\u003dNOVA_NS)"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"        self.name \u003d None"},{"line_number":3807,"context_line":"        self.uuid \u003d None"},{"line_number":3808,"context_line":"        self.memory \u003d None"},{"line_number":3809,"context_line":"        self.disk \u003d None"},{"line_number":3810,"context_line":"        self.swap \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"6b9e0113_e751921e","line":3807,"in_reply_to":"bdda9fc5_3644bfe2","updated":"2025-08-07 11:32:04.000000000","message":"Ah, that\u0027s interesting. We use UUIDs in our deployment, so I guess I assumed only UUIDs were valid here. Yes, I can change it to `id`.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"55c9ed9f469fa4bfa053516c2c5836eb4c6992d9","unresolved":true,"context_lines":[{"line_number":3804,"context_line":"                             ns_uri\u003dNOVA_NS)"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"        self.name \u003d None"},{"line_number":3807,"context_line":"        self.uuid \u003d None"},{"line_number":3808,"context_line":"        self.memory \u003d None"},{"line_number":3809,"context_line":"        self.disk \u003d None"},{"line_number":3810,"context_line":"        self.swap \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"0aca95d4_b9e04e47","line":3807,"in_reply_to":"bdda9fc5_3644bfe2","updated":"2025-08-07 11:37:31.000000000","message":"oh right the flavor id field is a sting,\n\nwe default to a uuid when we generate it but it can be any string that maghes the api schema constraits.\n\ni shoudl have rememebr that since  still use 42 to boot cirros iamge in devstack by default.\n\ngood catch.\n\nlets call it id or flavorid since that what it is in the falvor object.\n\nthere is a seperate id filed in the flavor object too but that just the db primary key and not waht we want to use.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c8c3e760aae56c1589be57cb25ae0979d585093e","unresolved":false,"context_lines":[{"line_number":3804,"context_line":"                             ns_uri\u003dNOVA_NS)"},{"line_number":3805,"context_line":""},{"line_number":3806,"context_line":"        self.name \u003d None"},{"line_number":3807,"context_line":"        self.uuid \u003d None"},{"line_number":3808,"context_line":"        self.memory \u003d None"},{"line_number":3809,"context_line":"        self.disk \u003d None"},{"line_number":3810,"context_line":"        self.swap \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"ea64c2de_50d14fc3","line":3807,"in_reply_to":"f835a139_9c5a9150","updated":"2025-08-08 09:22:43.000000000","message":"Done","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"13721d9f119d21c11411890c22d2d6a13c0f586c","unresolved":true,"context_lines":[{"line_number":3835,"context_line":""},{"line_number":3836,"context_line":"class LibvirtConfigGuestMetaNovaFlavorExtraSpecs(LibvirtConfigObject):"},{"line_number":3837,"context_line":""},{"line_number":3838,"context_line":"    def __init__(self):"},{"line_number":3839,"context_line":"        super(LibvirtConfigGuestMetaNovaFlavorExtraSpecs,"},{"line_number":3840,"context_line":"              self).__init__(root_name\u003d\"extraSpecs\","},{"line_number":3841,"context_line":"                             ns_prefix\u003d\"nova\","},{"line_number":3842,"context_line":"                             ns_uri\u003dNOVA_NS)"},{"line_number":3843,"context_line":"        self.extra_specs \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"0aac14ef_92de83a2","line":3840,"range":{"start_line":3838,"start_character":23,"end_line":3840,"end_character":52},"updated":"2025-08-07 11:25:25.000000000","message":"nit:\n\n```suggestion\n    def __init__(self):\n        super().__init__(root_name\u003d\"extraSpecs\",\n```\n\nsame below","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"daea1a2ab6037ef40848de1549764d0736ed97ff","unresolved":true,"context_lines":[{"line_number":3835,"context_line":""},{"line_number":3836,"context_line":"class LibvirtConfigGuestMetaNovaFlavorExtraSpecs(LibvirtConfigObject):"},{"line_number":3837,"context_line":""},{"line_number":3838,"context_line":"    def __init__(self):"},{"line_number":3839,"context_line":"        super(LibvirtConfigGuestMetaNovaFlavorExtraSpecs,"},{"line_number":3840,"context_line":"              self).__init__(root_name\u003d\"extraSpecs\","},{"line_number":3841,"context_line":"                             ns_prefix\u003d\"nova\","},{"line_number":3842,"context_line":"                             ns_uri\u003dNOVA_NS)"},{"line_number":3843,"context_line":"        self.extra_specs \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"7fb198f6_14431bae","line":3840,"range":{"start_line":3838,"start_character":23,"end_line":3840,"end_character":52},"in_reply_to":"0aac14ef_92de83a2","updated":"2025-08-07 12:22:07.000000000","message":"Removed old-style `super()` syntax as suggested.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c8c3e760aae56c1589be57cb25ae0979d585093e","unresolved":false,"context_lines":[{"line_number":3835,"context_line":""},{"line_number":3836,"context_line":"class LibvirtConfigGuestMetaNovaFlavorExtraSpecs(LibvirtConfigObject):"},{"line_number":3837,"context_line":""},{"line_number":3838,"context_line":"    def __init__(self):"},{"line_number":3839,"context_line":"        super(LibvirtConfigGuestMetaNovaFlavorExtraSpecs,"},{"line_number":3840,"context_line":"              self).__init__(root_name\u003d\"extraSpecs\","},{"line_number":3841,"context_line":"                             ns_prefix\u003d\"nova\","},{"line_number":3842,"context_line":"                             ns_uri\u003dNOVA_NS)"},{"line_number":3843,"context_line":"        self.extra_specs \u003d None"}],"source_content_type":"text/x-python","patch_set":5,"id":"f9e8e2ff_1b82c478","line":3840,"range":{"start_line":3838,"start_character":23,"end_line":3840,"end_character":52},"in_reply_to":"7fb198f6_14431bae","updated":"2025-08-08 09:22:43.000000000","message":"Done","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"}],"nova/virt/libvirt/driver.py":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"55c9ed9f469fa4bfa053516c2c5836eb4c6992d9","unresolved":true,"context_lines":[{"line_number":6250,"context_line":""},{"line_number":6251,"context_line":"        fmeta \u003d vconfig.LibvirtConfigGuestMetaNovaFlavor()"},{"line_number":6252,"context_line":"        fmeta.name \u003d dmeta.flavor.name"},{"line_number":6253,"context_line":"        fmeta.uuid \u003d dmeta.flavor.flavorid"},{"line_number":6254,"context_line":"        fmeta.memory \u003d dmeta.flavor.memory_mb"},{"line_number":6255,"context_line":"        fmeta.vcpus \u003d dmeta.flavor.vcpus"},{"line_number":6256,"context_line":"        fmeta.ephemeral \u003d dmeta.flavor.ephemeral_gb"}],"source_content_type":"text/x-python","patch_set":5,"id":"344a6d2a_dfaf2e8e","line":6253,"updated":"2025-08-07 11:37:31.000000000","message":"this is the correct public id for the flavor to use\nbut as stephen noted its not actully a uuid that just what nova generates if you do not provide one.\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/flavor.py#L214","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"ba783fb458b503639dacf7c62f5ad6329791a938","unresolved":true,"context_lines":[{"line_number":6250,"context_line":""},{"line_number":6251,"context_line":"        fmeta \u003d vconfig.LibvirtConfigGuestMetaNovaFlavor()"},{"line_number":6252,"context_line":"        fmeta.name \u003d dmeta.flavor.name"},{"line_number":6253,"context_line":"        fmeta.uuid \u003d dmeta.flavor.flavorid"},{"line_number":6254,"context_line":"        fmeta.memory \u003d dmeta.flavor.memory_mb"},{"line_number":6255,"context_line":"        fmeta.vcpus \u003d dmeta.flavor.vcpus"},{"line_number":6256,"context_line":"        fmeta.ephemeral \u003d dmeta.flavor.ephemeral_gb"}],"source_content_type":"text/x-python","patch_set":5,"id":"77fcbbe8_2ab73ba9","line":6253,"in_reply_to":"344a6d2a_dfaf2e8e","updated":"2025-08-07 12:19:18.000000000","message":"Thanks for clarifying, the relevant field has been renamed.","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"c8c3e760aae56c1589be57cb25ae0979d585093e","unresolved":false,"context_lines":[{"line_number":6250,"context_line":""},{"line_number":6251,"context_line":"        fmeta \u003d vconfig.LibvirtConfigGuestMetaNovaFlavor()"},{"line_number":6252,"context_line":"        fmeta.name \u003d dmeta.flavor.name"},{"line_number":6253,"context_line":"        fmeta.uuid \u003d dmeta.flavor.flavorid"},{"line_number":6254,"context_line":"        fmeta.memory \u003d dmeta.flavor.memory_mb"},{"line_number":6255,"context_line":"        fmeta.vcpus \u003d dmeta.flavor.vcpus"},{"line_number":6256,"context_line":"        fmeta.ephemeral \u003d dmeta.flavor.ephemeral_gb"}],"source_content_type":"text/x-python","patch_set":5,"id":"83405c56_0b5e92d6","line":6253,"in_reply_to":"77fcbbe8_2ab73ba9","updated":"2025-08-08 09:22:43.000000000","message":"Done","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"}],"releasenotes/notes/bp-xml-image-meta-add-flavor-meta-037f4eba59f0121e.yaml":[{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"6c6daed554355a091dd9d4b6f32445b2e0dff2d1","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    has been added to the libvirt domain metadata for instances."},{"line_number":7,"context_line":"    This allows downstream clients that queries libvirt domain metadata,"},{"line_number":8,"context_line":"    such as Ceilometer, to avoid performing additional Nova API queries"},{"line_number":9,"context_line":"    to get this information."},{"line_number":10,"context_line":"    To expose the new attributes in the libvirt domain metadata, instances"},{"line_number":11,"context_line":"    will need to be shutdown, restarted, cold migrated or"},{"line_number":12,"context_line":"    shelved-and-unshelved."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"239ea3ab_5389fd26","line":12,"range":{"start_line":9,"start_character":28,"end_line":12,"end_character":26},"updated":"2025-08-07 11:17:39.000000000","message":"```suggestion\n    to get this information.\n    To expose the new attributes in the libvirt domain metadata in an\n    upgraded environment, instances will need to be shutdown, restarted,\n    cold migrated or shelved and unshelved.\n```","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"ba783fb458b503639dacf7c62f5ad6329791a938","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    has been added to the libvirt domain metadata for instances."},{"line_number":7,"context_line":"    This allows downstream clients that queries libvirt domain metadata,"},{"line_number":8,"context_line":"    such as Ceilometer, to avoid performing additional Nova API queries"},{"line_number":9,"context_line":"    to get this information."},{"line_number":10,"context_line":"    To expose the new attributes in the libvirt domain metadata, instances"},{"line_number":11,"context_line":"    will need to be shutdown, restarted, cold migrated or"},{"line_number":12,"context_line":"    shelved-and-unshelved."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"64f33ac4_996c853d","line":12,"range":{"start_line":9,"start_character":28,"end_line":12,"end_character":26},"in_reply_to":"239ea3ab_5389fd26","updated":"2025-08-07 12:19:18.000000000","message":"Thanks for the suggested, now changed (along with some other improvements to make it easier to integrate the release note for the next commit in the chain).","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"},{"author":{"_account_id":36393,"name":"Callum Dickinson","email":"callum.dickinson@catalystcloud.nz","username":"Callum027","status":"Catalyst Cloud"},"change_message_id":"29eb717727449084496848b55a5bab97f98f07a0","unresolved":false,"context_lines":[{"line_number":6,"context_line":"    has been added to the libvirt domain metadata for instances."},{"line_number":7,"context_line":"    This allows downstream clients that queries libvirt domain metadata,"},{"line_number":8,"context_line":"    such as Ceilometer, to avoid performing additional Nova API queries"},{"line_number":9,"context_line":"    to get this information."},{"line_number":10,"context_line":"    To expose the new attributes in the libvirt domain metadata, instances"},{"line_number":11,"context_line":"    will need to be shutdown, restarted, cold migrated or"},{"line_number":12,"context_line":"    shelved-and-unshelved."}],"source_content_type":"text/x-yaml","patch_set":5,"id":"e99ac3a0_a7ba4563","line":12,"range":{"start_line":9,"start_character":28,"end_line":12,"end_character":26},"in_reply_to":"64f33ac4_996c853d","updated":"2025-08-09 06:17:17.000000000","message":"Done","commit_id":"9d94a94489df7efdfdd6ac6dc69a42b72c7427f8"}]}
