)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9d2eb59452f42a0a7f81bb226ec8db02b72592c","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":1,"id":"4830b0fa_41bce0a6","updated":"2026-03-09 16:54:50.000000000","message":"not agaisnt this in genreal but i dont think doing it as a config option is the right approch\n\ni think doing it as a falvor/image/volume property is more approcate","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"39747817_ca412347","updated":"2026-06-05 11:43:57.000000000","message":"this is much impoved over the previous version\n\n\ni think the core of the proposal is sound\n\nwe need to resolve the dicssion quetion but im supprotive of the feature over all.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"}],"specs/2026.2/approved/default-ssd-rotation-rate.rst":[{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9d2eb59452f42a0a7f81bb226ec8db02b72592c","unresolved":true,"context_lines":[{"line_number":24,"context_line":"rotational (HDD) device and apply suboptimal I/O scheduling policies"},{"line_number":25,"context_line":"(e.g., ``mq-deadline`` instead of ``none``)."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently, operators can set the rotation rate per image via the image property"},{"line_number":28,"context_line":"``hw_disk_rotation_rate`` or per flavor via the extra spec"},{"line_number":29,"context_line":"``hw:disk_rotation_rate``, but there is no way to define a global default."},{"line_number":30,"context_line":"This forces operators to tag every image or flavor individually, which is"},{"line_number":31,"context_line":"tedious and error-prone."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Use Cases"},{"line_number":34,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"56860ddd_391abc60","line":31,"range":{"start_line":27,"start_character":0,"end_line":31,"end_character":24},"updated":"2026-03-09 16:54:50.000000000","message":"actully they cant\n\nhw:ddisk_rotation_rate is not a vlaid flavor extra spec or image property\n\nhttps://github.com/openstack/nova/blob/master/nova/api/validation/extra_specs/hw.py\n\nhttps://github.com/openstack/nova/blob/master/nova/objects/image_meta.py#L330-L644\n\nthere was a proposal to add it but it was never implemtned\n\nso this is incorrect\n\nthat is either an other of tree extnetion in your cloud or an invalid value that is ignored by nova today\n\nhttps://blueprints.launchpad.net/nova/+spec/rotation-rate\nhttps://review.opendev.org/c/openstack/nova/+/920818\n\nwas never merged","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":false,"context_lines":[{"line_number":24,"context_line":"rotational (HDD) device and apply suboptimal I/O scheduling policies"},{"line_number":25,"context_line":"(e.g., ``mq-deadline`` instead of ``none``)."},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"Currently, operators can set the rotation rate per image via the image property"},{"line_number":28,"context_line":"``hw_disk_rotation_rate`` or per flavor via the extra spec"},{"line_number":29,"context_line":"``hw:disk_rotation_rate``, but there is no way to define a global default."},{"line_number":30,"context_line":"This forces operators to tag every image or flavor individually, which is"},{"line_number":31,"context_line":"tedious and error-prone."},{"line_number":32,"context_line":""},{"line_number":33,"context_line":"Use Cases"},{"line_number":34,"context_line":"---------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"42b5cb3d_1aa27aa8","line":31,"range":{"start_line":27,"start_character":0,"end_line":31,"end_character":24},"in_reply_to":"56860ddd_391abc60","updated":"2026-06-05 11:43:57.000000000","message":"Done","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9d2eb59452f42a0a7f81bb226ec8db02b72592c","unresolved":true,"context_lines":[{"line_number":48,"context_line":"Proposed change"},{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Add a new configuration option ``[libvirt] default_disk_rotation_rate`` that"},{"line_number":52,"context_line":"specifies the default ``\u003crotation_rate\u003e`` value to apply to all instance disks"},{"line_number":53,"context_line":"when no explicit value is set via image properties or flavor extra specs."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The option accepts an integer value:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* ``0`` — Do not add a ``\u003crotation_rate\u003e`` element (preserves current"},{"line_number":58,"context_line":"  behavior)."},{"line_number":59,"context_line":"* ``1`` — Non-rotational device (SSD/NVMe). This is the proposed default."},{"line_number":60,"context_line":"* ``\u003e 1`` — Rotational device, value represents RPM (e.g., 7200, 10000,"},{"line_number":61,"context_line":"  15000). Maximum value is 65534."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The precedence order for determining the rotation rate of a disk is:"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"1. Flavor extra spec ``hw:disk_rotation_rate`` (highest priority)"},{"line_number":66,"context_line":"2. Image property ``hw_disk_rotation_rate``"},{"line_number":67,"context_line":"3. Configuration option ``[libvirt] default_disk_rotation_rate``"},{"line_number":68,"context_line":"4. No ``\u003crotation_rate\u003e`` element (if all above are unset or 0)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The change applies to all disk devices generated by the libvirt driver,"},{"line_number":71,"context_line":"including boot disks, ephemeral disks, and swap disks. It does not apply to"},{"line_number":72,"context_line":"attached Cinder volumes, which are managed by the volume driver."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Alternatives"},{"line_number":75,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"34df5226_30cb2cfa","line":72,"range":{"start_line":51,"start_character":0,"end_line":72,"end_character":64},"updated":"2026-03-09 16:54:50.000000000","message":"This is genreally an anti pattern\n\nper host config option that change the xml cause issues on live migration and for scudling\n\nim not against supprot hw_disk_rotation_rate on the image or hw:disk_rotation_rate in the flavor\n\nor supproting it on the cinder volume to do it on a per volume basis\n\nim not conviced this shoudl be a config option.\n\nit woudl be similar to the rx_queue_size and tx_queusize options\n\nhttps://docs.openstack.org/nova/latest/configuration/config.html#libvirt.rx_queue_size\nhttps://docs.openstack.org/nova/latest/configuration/config.html#libvirt.tx_queue_size\n\nbut in hindsight we proably shoudl have made those flavor extra specs not config option so im not sure we should add this as an option.","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":false,"context_lines":[{"line_number":48,"context_line":"Proposed change"},{"line_number":49,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":50,"context_line":""},{"line_number":51,"context_line":"Add a new configuration option ``[libvirt] default_disk_rotation_rate`` that"},{"line_number":52,"context_line":"specifies the default ``\u003crotation_rate\u003e`` value to apply to all instance disks"},{"line_number":53,"context_line":"when no explicit value is set via image properties or flavor extra specs."},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"The option accepts an integer value:"},{"line_number":56,"context_line":""},{"line_number":57,"context_line":"* ``0`` — Do not add a ``\u003crotation_rate\u003e`` element (preserves current"},{"line_number":58,"context_line":"  behavior)."},{"line_number":59,"context_line":"* ``1`` — Non-rotational device (SSD/NVMe). This is the proposed default."},{"line_number":60,"context_line":"* ``\u003e 1`` — Rotational device, value represents RPM (e.g., 7200, 10000,"},{"line_number":61,"context_line":"  15000). Maximum value is 65534."},{"line_number":62,"context_line":""},{"line_number":63,"context_line":"The precedence order for determining the rotation rate of a disk is:"},{"line_number":64,"context_line":""},{"line_number":65,"context_line":"1. Flavor extra spec ``hw:disk_rotation_rate`` (highest priority)"},{"line_number":66,"context_line":"2. Image property ``hw_disk_rotation_rate``"},{"line_number":67,"context_line":"3. Configuration option ``[libvirt] default_disk_rotation_rate``"},{"line_number":68,"context_line":"4. No ``\u003crotation_rate\u003e`` element (if all above are unset or 0)"},{"line_number":69,"context_line":""},{"line_number":70,"context_line":"The change applies to all disk devices generated by the libvirt driver,"},{"line_number":71,"context_line":"including boot disks, ephemeral disks, and swap disks. It does not apply to"},{"line_number":72,"context_line":"attached Cinder volumes, which are managed by the volume driver."},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"Alternatives"},{"line_number":75,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"c04bf9e9_c1226b56","line":72,"range":{"start_line":51,"start_character":0,"end_line":72,"end_character":64},"in_reply_to":"34df5226_30cb2cfa","updated":"2026-06-05 11:43:57.000000000","message":"Acknowledged","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9d2eb59452f42a0a7f81bb226ec8db02b72592c","unresolved":true,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* **Do nothing**: Operators continue to set rotation rate per image or per"},{"line_number":78,"context_line":"  flavor. This is the status quo and does not scale well for large"},{"line_number":79,"context_line":"  deployments."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* **Set rotation rate at the hypervisor/host level**: Some hypervisors or"},{"line_number":82,"context_line":"  storage backends may expose hints, but this is not consistently available"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9958746a_0c60c3a1","line":79,"updated":"2026-03-09 16:54:50.000000000","message":"again this is not possible today.\n\nthat woudl be an improvment and what i had assumed this spec was propsoaing as that is what was propsoed the last time we dicussed this in the ptg.","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":false,"context_lines":[{"line_number":76,"context_line":""},{"line_number":77,"context_line":"* **Do nothing**: Operators continue to set rotation rate per image or per"},{"line_number":78,"context_line":"  flavor. This is the status quo and does not scale well for large"},{"line_number":79,"context_line":"  deployments."},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"* **Set rotation rate at the hypervisor/host level**: Some hypervisors or"},{"line_number":82,"context_line":"  storage backends may expose hints, but this is not consistently available"}],"source_content_type":"text/x-rst","patch_set":1,"id":"e284a9f4_b0bb2013","line":79,"in_reply_to":"9958746a_0c60c3a1","updated":"2026-06-05 11:43:57.000000000","message":"Done","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9d2eb59452f42a0a7f81bb226ec8db02b72592c","unresolved":true,"context_lines":[{"line_number":82,"context_line":"  storage backends may expose hints, but this is not consistently available"},{"line_number":83,"context_line":"  and not controllable by Nova."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* **Default in os-vif or libvirt itself**: This is outside Nova\u0027s control"},{"line_number":86,"context_line":"  and would not provide per-deployment configurability."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Data model impact"},{"line_number":89,"context_line":"-----------------"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"2f54e668_16cd37ca","line":87,"range":{"start_line":85,"start_character":0,"end_line":87,"end_character":1},"updated":"2026-03-09 16:54:50.000000000","message":"this is not in the scope of os-vif\n\nlibvirt likely does have a default for this but i suspect its default behaicvor is to not set it an leave it to qemu whihc likly present it as a hdd","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":false,"context_lines":[{"line_number":82,"context_line":"  storage backends may expose hints, but this is not consistently available"},{"line_number":83,"context_line":"  and not controllable by Nova."},{"line_number":84,"context_line":""},{"line_number":85,"context_line":"* **Default in os-vif or libvirt itself**: This is outside Nova\u0027s control"},{"line_number":86,"context_line":"  and would not provide per-deployment configurability."},{"line_number":87,"context_line":""},{"line_number":88,"context_line":"Data model impact"},{"line_number":89,"context_line":"-----------------"},{"line_number":90,"context_line":""}],"source_content_type":"text/x-rst","patch_set":1,"id":"6ee1f494_95ab5d82","line":87,"range":{"start_line":85,"start_character":0,"end_line":87,"end_character":1},"in_reply_to":"2f54e668_16cd37ca","updated":"2026-06-05 11:43:57.000000000","message":"Done","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9d2eb59452f42a0a7f81bb226ec8db02b72592c","unresolved":true,"context_lines":[{"line_number":99,"context_line":"---------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None. The rotation rate is an informational hint to the guest and does not"},{"line_number":102,"context_line":"affect access control or data integrity."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Notifications impact"},{"line_number":105,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"d4bbd397_3adcd5df","line":102,"updated":"2026-03-09 16:54:50.000000000","message":"this is correct although it will potrially cause the guest to issue or not issue trim/discard commands if im not mistaken\n and it chagne the behvior fo some software like ceph osd to enabele/disabel ssd optimiastions.\n \nthat not really a security concer but it is a perfroamce consdierty i guess.","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":false,"context_lines":[{"line_number":99,"context_line":"---------------"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"None. The rotation rate is an informational hint to the guest and does not"},{"line_number":102,"context_line":"affect access control or data integrity."},{"line_number":103,"context_line":""},{"line_number":104,"context_line":"Notifications impact"},{"line_number":105,"context_line":"--------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"9438f820_9a733eb3","line":102,"in_reply_to":"d4bbd397_3adcd5df","updated":"2026-06-05 11:43:57.000000000","message":"Done","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"f9d2eb59452f42a0a7f81bb226ec8db02b72592c","unresolved":true,"context_lines":[{"line_number":112,"context_line":"Guests will automatically see their disks as SSDs (by default) and may"},{"line_number":113,"context_line":"select different I/O schedulers. This is generally beneficial but could"},{"line_number":114,"context_line":"theoretically change behavior for workloads that depend on the default"},{"line_number":115,"context_line":"HDD assumption."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Performance Impact"},{"line_number":118,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"8bf2eeea_7dad8f92","line":115,"updated":"2026-03-09 16:54:50.000000000","message":"ya this is why in the past the suggestion was to have ti be an image property, flavor extra spec of volume porperty\n\n\nso that end user who knwo what the workload is can selelct the approate volume type flavor or image for there desired bevhior.\n\nthis is also an arguemnt against having ti be a config option unless its assocated with a trait so that we can schdule based on if the nova provisioned sotrage is ssd abcked or not.","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":false,"context_lines":[{"line_number":112,"context_line":"Guests will automatically see their disks as SSDs (by default) and may"},{"line_number":113,"context_line":"select different I/O schedulers. This is generally beneficial but could"},{"line_number":114,"context_line":"theoretically change behavior for workloads that depend on the default"},{"line_number":115,"context_line":"HDD assumption."},{"line_number":116,"context_line":""},{"line_number":117,"context_line":"Performance Impact"},{"line_number":118,"context_line":"------------------"}],"source_content_type":"text/x-rst","patch_set":1,"id":"f83680c5_c6c00b90","line":115,"in_reply_to":"8bf2eeea_7dad8f92","updated":"2026-06-05 11:43:57.000000000","message":"Done","commit_id":"35fd4e6927ff2859cbcd321aecc8c3c443c59348"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":false,"context_lines":[{"line_number":18,"context_line":"host-level config option as the lowest-priority fallback. The resolved"},{"line_number":19,"context_line":"value is persisted in instance system_metadata to ensure stability"},{"line_number":20,"context_line":"across live migrations and other move operations."},{"line_number":21,"context_line":""},{"line_number":22,"context_line":"Problem description"},{"line_number":23,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"0c9e8307_ac0ff213","line":21,"updated":"2026-06-05 11:43:57.000000000","message":"+1 good into to the feature","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":62,"context_line":"1. Flavor extra spec hw:disk_rotation_rate (NEW)"},{"line_number":63,"context_line":"2. Image property hw_disk_rotation_rate (NEW)"},{"line_number":64,"context_line":"3. Host config option [libvirt] disk_rotation_rate (NEW, lowest)"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"Flavor extra spec"},{"line_number":67,"context_line":"-----------------"},{"line_number":68,"context_line":""}],"source_content_type":"text/x-rst","patch_set":5,"id":"ef64e343_54dc5acd","line":65,"updated":"2026-06-05 11:43:57.000000000","message":"+1\n\nin general we perfer to rasie an image falvor confict exption of both the falvor and image set a tunable to 2 differnet values\n\nso inste of precidence we basiclly only allow the image ot set it if its not set in the flavor.\nwe do however give the flavor and image precidence over the host config options and treat those as a fallback.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":72,"context_line":"specification, values 2-1024 are reserved). The validator enforces"},{"line_number":73,"context_line":"a minimum of 1 (rejects 0 and negative values). Values in the"},{"line_number":74,"context_line":"2-1024 range pass validation but are reserved by libvirt and their"},{"line_number":75,"context_line":"behaviour is undefined; operators should avoid them."},{"line_number":76,"context_line":""},{"line_number":77,"context_line":"Image property"},{"line_number":78,"context_line":"--------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"991d618e_47b6e107","line":75,"updated":"2026-06-05 11:43:57.000000000","message":"that is the correct behavior\n\nwhile we are implmenting this ffor the libvirt driver we shoudl try an avoid encodeign libvirt semantics in the api\n\nso we can designate 1 as ssd and then accpate any other value but we do not need to enfoce the semantics of the other values at teh api level as they may change if saw vmware wanted to implemtn this in the future.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":134,"context_line":"  the guest aware of the underlying storage type."},{"line_number":135,"context_line":""},{"line_number":136,"context_line":"Scheduling based on the rotation rate is therefore considered out of"},{"line_number":137,"context_line":"scope for this blueprint."},{"line_number":138,"context_line":""},{"line_number":139,"context_line":"Why a host config option at all?"},{"line_number":140,"context_line":"^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^"}],"source_content_type":"text/x-rst","patch_set":5,"id":"fb5b91aa_5fadefe6","line":137,"updated":"2026-06-05 11:43:57.000000000","message":"hum i would perfer to brign it in scope but i can be conviced to deferr it\n\nmy propsoal would be as follows\n\nadd 2 new trati for ssd and hdd storage\nif the new host config option is not set report both\nif it is set repeort the relevent one\n\nif the if the image property or extraspec is defiend translate that into a a required traits\n\ni think that woudl be a good baseline\n\nwhat im unsure about is if we want to encode the value form the host config option as an atribute on the isntance in the instance_system_metadata or not\n\nbasiclly if the vm has not express a prefference it woudl be valid to say it can run on either and the operator can chosoe to migrate the vm as they see fit.\n\nso im inclinet to not enfoce the requirement that it stay only on the same type of storage if its not in teh flavor or image. that will mean if you cange the value in the xml wont update until the next vm reboot but i think that is proably ok.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":178,"context_line":""},{"line_number":179,"context_line":"Some disk images may already contain a \u003crotation_rate\u003e element in"},{"line_number":180,"context_line":"their backing XML (typically passed through by libvirt from the source"},{"line_number":181,"context_line":"volume). In that case:"},{"line_number":182,"context_line":""},{"line_number":183,"context_line":" If Nova resolves a value via flavor / image property / host config,"},{"line_number":184,"context_line":"  Nova\u0027s value is emitted on the \u003ctarget\u003e element and takes"}],"source_content_type":"text/x-rst","patch_set":5,"id":"f196afbb_833a32df","line":181,"updated":"2026-06-05 11:43:57.000000000","message":"that is not a thing we support\n\nwe do nto allowthe data fo an image to modify the xml\n\ninfact if that actully works today i woudl consider that a now public CVE\nas that would be interintly unsafe.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":205,"context_line":"in libvirt 7.8.0 (QEMU \u003e\u003d 6.2). The driver emits the attribute for these"},{"line_number":206,"context_line":"bus types only; for unsupported buses (e.g., usb), the attribute is"},{"line_number":207,"context_line":"silently skipped to avoid generating XML that libvirt would reject."},{"line_number":208,"context_line":"Older libvirt versions silently ignore the attribute on supported buses."},{"line_number":209,"context_line":""},{"line_number":210,"context_line":"Alternatives"},{"line_number":211,"context_line":"------------"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9a8a97e0_ba44d573","line":208,"updated":"2026-06-05 11:43:57.000000000","message":"our min libvirt version is 8.0.0 so this is supproted by all supproted libvits today","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":224,"context_line":" Do nothing: The earlier per-volume proposal"},{"line_number":225,"context_line":"  (https://review.opendev.org/c/openstack/nova/+/920818) would only"},{"line_number":226,"context_line":"  cover Cinder volumes, leaving Nova-managed disks (boot, ephemeral,"},{"line_number":227,"context_line":"  swap) without any rotation rate hint."},{"line_number":228,"context_line":""},{"line_number":229,"context_line":" Hypervisor-level hints: Some hypervisors or storage backends"},{"line_number":230,"context_line":"  expose block device characteristics, but this is not consistently"}],"source_content_type":"text/x-rst","patch_set":5,"id":"9024312d_f1cf5d69","line":227,"updated":"2026-06-05 11:43:57.000000000","message":"if we supprot image proeprteis we can trivaly extend that to volume properies later so this si more complementary then an alternitive","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":348,"context_line":""},{"line_number":349,"context_line":"This ensures a smooth upgrade path: operators who explicitly opt in"},{"line_number":350,"context_line":"by setting disk_rotation_rate see the new behaviour immediately;"},{"line_number":351,"context_line":"operators who do nothing see no surprise change for existing workloads."},{"line_number":352,"context_line":""},{"line_number":353,"context_line":"Implementation"},{"line_number":354,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"09a45dad_05dfb306","line":351,"updated":"2026-06-05 11:43:57.000000000","message":"im inclidned to say we shoudl intoduce a new compute service version for this\nand reject the creation fo vms that use it until there si at least 1 host with the required compute and perhasp be stricter adn require a min compute service bump\nbefore a flavor or image with the request can be used.\n\nim ok to make the host option work imideatly but nova should never allow a vm to boot if it rquest a feature that the compute node does not supprot\n\nso it is never ok to set a flavor extra spec that specifies the rotation rate as 1 and have the vm boot if that is not implmented.\n\nthat why we usaly gate these feature beind a min compute service check.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":451,"context_line":""},{"line_number":452,"context_line":" libvirt \u003e\u003d 7.3.0 for SCSI/IDE/SATA buses; libvirt \u003e\u003d 7.8.0 for"},{"line_number":453,"context_line":"  virtio-blk/vhost-user-blk. Older versions silently ignore the"},{"line_number":454,"context_line":"  attribute."},{"line_number":455,"context_line":""},{"line_number":456,"context_line":"Testing"},{"line_number":457,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"d14b47b9_cf9b1ebb","line":454,"updated":"2026-06-05 11:43:57.000000000","message":"our min version is 8.0.0 and we are 2 release overdue to bump that to 10.0.0 so this is met\n\nwe dont need to remove but ignorign the atribute would not be a valid approch for nova. if you request a feature and its ignored that is alwasy a bug.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"2c7244afcf779b21f766377074382965bb8635dd","unresolved":true,"context_lines":[{"line_number":489,"context_line":"-------------"},{"line_number":490,"context_line":""},{"line_number":491,"context_line":"No new tempest tests are required. The change is internal to the"},{"line_number":492,"context_line":"libvirt driver and does not affect the API."},{"line_number":493,"context_line":""},{"line_number":494,"context_line":"Documentation Impact"},{"line_number":495,"context_line":"\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d"}],"source_content_type":"text/x-rst","patch_set":5,"id":"c78c7e4f_a7912f94","line":492,"updated":"2026-06-05 11:43:57.000000000","message":"we shoudl still add tempest test for this either in the whitebox-tempest-plugin or in core tempest but that is more  a nice to have if you have already proice the functionla test coverage.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"}]}
