)]}'
{"/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":"7599c853acdb48093d555000a81faf7073884162","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":"56d60080_14e7f715","line":65,"in_reply_to":"2cf7075f_6849249c","updated":"2026-06-08 14:29:51.000000000","message":"normally if both the image and flavor have a value set and they are not the same we raise a conflict exception that would be my presence for simplicity\n\nwhen neither the  image or flavor is set fall back to the config option which shoudl default to None meing nothing is set in the xml","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"23ab0268b091fc715ab23f2df749350b23365121","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":"c9c44479_fc47b02e","line":65,"in_reply_to":"56d60080_14e7f715","updated":"2026-06-08 15:27:43.000000000","message":"we normally add a get_\u003cfeature\u003e_constrits function to hardware.py for implementing this check \n\nhttps://github.com/openstack/nova/blob/master/nova/virt/hardware.py#L2019-L2067\n\nand hten check that in _validate_flavor_image_nostatus or one of its subffuciton\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L777","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"7856691a315e684ab64f7aadfc50907b194af849","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":"2cf7075f_6849249c","line":65,"in_reply_to":"ef64e343_54dc5acd","updated":"2026-06-08 14:23:08.000000000","message":"Would you mind sharing what you think would be the best behavior to replace the current one?","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":"23ab0268b091fc715ab23f2df749350b23365121","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":"39dd2bd8_d2382ce2","line":75,"in_reply_to":"11517702_4a7b9642","updated":"2026-06-08 15:27:43.000000000","message":"the correct approch is just ot enforce that its \u003e\u003d1 in the api schema and that its an integer then in teh api refe note that its driver dependent and in the libvirt docs expalin what the semantics ar for the livert driver.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"d4637af545c3bdc2f056e41b00c6d52e991e25da","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":"11517702_4a7b9642","line":75,"in_reply_to":"991d618e_47b6e107","updated":"2026-06-08 14:34:20.000000000","message":"In that case, what would be the right approach?","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":"23ab0268b091fc715ab23f2df749350b23365121","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":"cbfea858_135358f0","line":137,"in_reply_to":"21983816_df29d75c","updated":"2026-06-08 15:27:43.000000000","message":"i would add trait reportign based on if the config option is set.\nroation_rate\u003d1 HW_STROAGE_SSD\nroation_rate\u003e1 HW_STORAGE_HDD\nrotation_rate\u003dNene(unset)  report both.\n\ni would add a new compute service version and auto translate the image/flavor request if an only if the min compute service version is above the version that adds the reproting\n\nand i woudl leave it at that.\n\nso insatnce with no prefence expressed in teh image or flavor can float across ssd/hdd hosts and if they do express a prenece we schdule to the relvent hosts.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"d4637af545c3bdc2f056e41b00c6d52e991e25da","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":"21983816_df29d75c","line":137,"in_reply_to":"fb5b91aa_5fadefe6","updated":"2026-06-08 14:34:20.000000000","message":"Given the different options discussed, what would be the recommended approach to document in the spec ? Should we go with the traits-based approach you proposed, and if so, could you elaborate on how you would like to see it formalized ?","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":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"d4637af545c3bdc2f056e41b00c6d52e991e25da","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":"ec30e6fb_f7297053","line":181,"in_reply_to":"f196afbb_833a32df","updated":"2026-06-08 14:34:20.000000000","message":"That is probably my mistake.","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":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"d4637af545c3bdc2f056e41b00c6d52e991e25da","unresolved":false,"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":"57398310_d9c2384d","line":208,"in_reply_to":"9a8a97e0_ba44d573","updated":"2026-06-08 14:34:20.000000000","message":"Acknowledged","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":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"d4637af545c3bdc2f056e41b00c6d52e991e25da","unresolved":false,"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":"c866b0ea_addd1bc2","line":227,"in_reply_to":"9024312d_f1cf5d69","updated":"2026-06-08 14:34:20.000000000","message":"Acknowledged","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":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"d4637af545c3bdc2f056e41b00c6d52e991e25da","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":"e5c68d33_f9ec9e10","line":351,"in_reply_to":"09a45dad_05dfb306","updated":"2026-06-08 14:34:20.000000000","message":"agree that gating the feature behind a minimum compute service version is the right approach. However, I\u0027m not very familiar with how Nova handles compute service version bumps and the associated checks. Could you point me to an example of a similar feature that used this pattern, or give some guidance on how to implement it properly? That would help me update the spec accordingly.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"23ab0268b091fc715ab23f2df749350b23365121","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":"0c896cf7_537883bc","line":351,"in_reply_to":"e5c68d33_f9ec9e10","updated":"2026-06-08 15:27:43.000000000","message":"sure so we have a bunch of feature that have done this over the years\n\nin the comptue api.py we have constant for the min compute verion requried for diffent features \n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L108-L132\n\nthen we have decorators for checkign this \n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L273-L296\n\nwhich we apply to the relevnet operation\n\nhttps://github.com/openstack/nova/blob/master/nova/compute/api.py#L5561-L5623\n\n\nin this case you woud need to guard spawn/create, rebuild and resize.\n\nthost ar ethe 3 optiorts tha could use the new version depent feature.\n\nwe are pretty bad ad removing thos decoroats but in theory we can do it after 2 releases since that is the backward comaptiy we supprt for odler compute service versions","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":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"d4637af545c3bdc2f056e41b00c6d52e991e25da","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":"15b180c2_42f3166a","line":454,"in_reply_to":"d14b47b9_cf9b1ebb","updated":"2026-06-08 14:34:20.000000000","message":"Should I just remove this comment?","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"},{"author":{"_account_id":11604,"name":"sean mooney","email":"smooney@redhat.com","username":"sean-k-mooney"},"change_message_id":"23ab0268b091fc715ab23f2df749350b23365121","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":"503422a3_7ff7a3d3","line":492,"in_reply_to":"04a5441a_4ebd1fdb","updated":"2026-06-08 15:27:43.000000000","message":"i think we can basiclly have the test create a flaovr/image with the fearue turned on and off and boot a vm with it then ssh in and just assrt if teh block device for the root disk has the expected state i.e. the sysfs flag that indicate it shoudl be threaded as a ssd or hdd.\n\nsometrhing simple like that with a comptue_feautr flag in the tempst.conf to opt into the test.\n\nif we were doing it in the whitebox-tempest-pluygin it woudl more or less do the same excption we woudl be sshing to the compute node ad asserting the rotation rate is in the domain xml\n\ni dont think we need that in this case sicne we can just cover that with a fucntional test.\n\nwe could also tweadk 2 of our josb to reprot the sroage as an ssd or hdd. seperatly via the config option.","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"},{"author":{"_account_id":38909,"name":"Thibaut Démaret","display_name":"Thibaut Démaret","email":"thidem@worteks.com","username":"worteks-thidem"},"change_message_id":"d4637af545c3bdc2f056e41b00c6d52e991e25da","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":"04a5441a_4ebd1fdb","line":492,"in_reply_to":"c78c7e4f_a7912f94","updated":"2026-06-08 14:34:20.000000000","message":"How do you envision this test and in what way could I help implement it?","commit_id":"3b531264117e03847032bb62af5c2bbd8ec5082a"}]}
