Description =========== nova boot fails while using bootable cinder volume as a backend when that cinder volume is created from a volume-based image. Steps to reproduce ================== 1. Create a bootable volume. [root@zhuljbj-mgt ~]# cinder list +--------------------------------------+-----------+------------------+------+--------------------------------------------------------------------------------------+----------+--------------------------------------+ | ID | Status | Name | Size | Volume Type | Bootable | Attached to | +--------------------------------------+-----------+------------------+------+--------------------------------------------------------------------------------------+----------+--------------------------------------+ | 5228a250-e541-434f-af7d-e583aed58c4c | available | zlj-vol | 10 | fl63 base template | true | | +--------------------------------------+-----------+------------------+------+--------------------------------------------------------------------------------------+----------+--------------------------------------+ 2. Create a glance image with the volume 'zlj-vol' [root@zhuljbj-mgt ~]# glance image-list +--------------------------------------+-----------------+ | ID | Name | +--------------------------------------+-----------------+ | 3f3eff5f-33b6-490f-ae08-f4dbc048b178 | zlj-vol-img | +--------------------------------------+-----------------+ [root@zhuljbj-mgt ~]# glance image-show 3f3eff5f-33b6-490f-ae08-f4dbc048b178 +----------------------+----------------------------------------------------------------------------------+ | Property | Value | +----------------------+----------------------------------------------------------------------------------+ | architecture | s390x | | base_image_ref | | | bdm_v2 | True | | block_device_mapping | [{"guest_format":null,"boot_index":0,"no_device":null,"image_id":null,"volume_id | | | ":"5228a250-e541-434f-af7d-e583aed58c4c","volume_type":"fl63 base template","dis | | | k_bus":null,"device_name":"/dev/vda","volume_size":10,"source_type":"volume","sn | | | apshot_id":null,"destination_type":"volume","delete_on_termination":false}] | | checksum | d41d8cd98f00b204e9800998ecf8427e | | container_format | bare | | created_at | 2024-04-11T09:06:27Z | | disk_format | raw | | disk_type | SCSI | | hypervisor_type | zvm | | id | 3f3eff5f-33b6-490f-ae08-f4dbc048b178 | | min_disk | 0 | | min_ram | 0 | | name | zlj-vol-img | | os_distro | Rhel9 | | os_hash_algo | sha512 | | os_hash_value | cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0 | | | ff8318d2877eec2f63b931bd47417a81a538327af927da3e | | os_hidden | False | | owner | 6f9ee43b492f40efa3506a9f45a59665 | | protected | False | | secure_execution | False | | size | 0 | | status | active | | tags | [] | | updated_at | 2024-04-11T09:06:28Z | | virtual_size | Not available | | visibility | private | +----------------------+----------------------------------------------------------------------------------+ 3. Create a bootable cinder volume using the image [root@zhuljbj-mgt ~]# cinder create --image zlj-vol-img --display-name zlj-vt-from-img 20 +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ | Property | Value | +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ | attachments | [] | | availability_zone | Default_Group | | bootable | false | | consistencygroup_id | None | | created_at | 2024-04-11T09:07:02.000000 | | description | None | | encrypted | False | | group_id | None | | health_status | {'id': '72aa9955-a0db-4352-b702-9a93e120de5f', 'health_value': 'PENDING', 'updated_at': '2024-04-11T09:07:02.842989', 'value_reason': 'PENDING'} | | host | None | | id | 72aa9955-a0db-4352-b702-9a93e120de5f | | metadata | {} | | migration_status | None | | multiattach | False | | name | zlj-vt-from-img | | os-vol-host-attr:host | None | | os-vol-tenant-attr:tenant_id | 6f9ee43b492f40efa3506a9f45a59665 | | provider_id | None | | replication_status | None | | service_uuid | None | | shared_targets | True | | size | 20 | | snapshot_id | None | | source_volid | None | | status | creating | | updated_at | None | | user_id | 0688b01e6439ca32d698d20789d52169126fb41fb1a4ddafcebb97d854e836c9 | | volume_type | None | +------------------------------+--------------------------------------------------------------------------------------------------------------------------------------------------+ 4. Boot a vm instance using the bootable cinder volume [root@zhuljbj-mgt ~]# nova boot --poll --flavor tiny --nic net-name=zvmnet --block-device-mapping vda=72aa9955-a0db-4352-b702-9a93e120de5f:::0 inst4 nova CLI is deprecated and will be a removed in a future release ERROR (BadRequest): Invalid image metadata. Error: A list is required in field img_block_device_mapping, not a str (HTTP 400) (Request-ID: req-0b66590b-e421-4b58-b1cf-62c6199470ba) Expected result =============== nova boot command should complete successfully without any errors. Actual result ============= Below error is reported. ERROR (BadRequest): Invalid image metadata. Error: A list is required in field img_block_device_mapping, not a str (HTTP 400) (Request-ID: req-0b66590b-e421-4b58-b1cf-62c6199470ba) Environment =========== 1. Exact version of OpenStack you are running. See the following list for all releases: http://docs.openstack.org/releases/ [root@zhuljbj-mgt ~]# rpm -qa | grep nova openstack-nova-api-27.0.0-122.0.202404060250.ibm.el8.noarch openstack-nova-common-27.0.0-122.0.202404060250.ibm.el8.noarch openstack-nova-27.0.0-122.0.202404060250.ibm.el8.noarch python3-nova-27.0.0-122.0.202404060250.ibm.el8.noarch openstack-nova-conductor-27.0.0-122.0.202404060250.ibm.el8.noarch openstack-nova-scheduler-27.0.0-122.0.202404060250.ibm.el8.noarch openstack-nova-compute-27.0.0-122.0.202404060250.ibm.el8.noarch openstack-nova-novncproxy-27.0.0-122.0.202404060250.ibm.el8.noarch openstack-nova-compute-prereqs-2013.1-122.0.202401180005.ibm.el8.s390x python3-novaclient-18.3.0-122.0.202401181402.ibm.el8.noarch openstack-nova-network-27.0.0-122.0.202404060250.ibm.el8.noarch openstack-nova-console-27.0.0-122.0.202404060250.ibm.el8.noarch 2. Which hypervisor did you use? z/VM 2. Which storage type did you use? IBM Flashsystem 3. Which networking type did you use? nova-network Logs & Configs ==============