)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"94d412b38d7e0e4dd3a0317d1aec4ec5cfcbafb0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"5620e0bf_42c4a28b","updated":"2022-10-20 22:14:47.000000000","message":"This fix works, I was able to successfully boot an instance with two bootable volumes:\n\n openstack server create --flavor m1.tiny --network private  --block-device uuid\u003d0a89ecd8-1fe2-45f0-94da-7789067911c9,source_type\u003dvolume,destination_type\u003dvolume,boot_index\u003d0 --block-device uuid\u003d589266ef-fd88-46e9-b7b2-94503ce8f88f,source_type\u003dvolume,destination_type\u003dvolume,boot_index\u003d1 two_volumes_bd_fix\n\nI note that I had to add source_type and destination_type ^ to avoid a 400 from nova. (In case someone else tries this).\n\nThere is a minor issue inline causing the unit test jobs to fail.","commit_id":"59b9a764c08826c9e340b0e1cf73d4ec5ec46ec1"},{"author":{"_account_id":13252,"name":"Dr. Jens Harbott","display_name":"Jens Harbott (frickler)","email":"frickler@offenerstapel.de","username":"jrosenboom"},"change_message_id":"2d34d336674fff75e4cbd5341e6eaa714c04f84e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c65ece3e_053938bf","updated":"2022-12-02 14:28:10.000000000","message":"Good one, this has affected me, too, thx.","commit_id":"91277e7e51849d197554b633a579c92116a5afc4"},{"author":{"_account_id":16137,"name":"Tobias Urdin","email":"tobias.urdin@binero.com","username":"tobasco"},"change_message_id":"65a025e845910392e921a55b0db704ddb63d7a47","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"c03ebed2_2abe8e03","updated":"2022-12-02 13:12:55.000000000","message":"Note that this fixes the use-case that you can create a BFV instance with --block-device which is otherwise impossible.","commit_id":"91277e7e51849d197554b633a579c92116a5afc4"}],"openstackclient/compute/v2/server.py":[{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"94d412b38d7e0e4dd3a0317d1aec4ec5cfcbafb0","unresolved":true,"context_lines":[{"line_number":1541,"context_line":""},{"line_number":1542,"context_line":"        if not image and not any("},{"line_number":1543,"context_line":"            [bdm[\u0027boot_index\u0027] \u003d\u003d 0 for bdm in block_device_mapping_v2]"},{"line_number":1544,"context_line":"        ):"},{"line_number":1545,"context_line":"            msg \u003d _("},{"line_number":1546,"context_line":"                \u0027An image (--image, --image-property) or bootable volume \u0027"},{"line_number":1547,"context_line":"                \u0027(--volume, --snapshot, --block-device) is required\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"fbd8e1f9_a603f299","line":1544,"updated":"2022-10-20 22:14:47.000000000","message":"It took me awhile to find what\u0027s wrong with this 😆 but it\u0027s that those options are using the string \u00270\u0027 instead of an int. Other options are using -1 the int and in the loop above it\u0027s doing int(mapping[\u0027boot_index\u0027]) at L1473 for example.","commit_id":"59b9a764c08826c9e340b0e1cf73d4ec5ec46ec1"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"3cebb3e7cb13a0ad8488630012df08b7cb54ac77","unresolved":false,"context_lines":[{"line_number":1541,"context_line":""},{"line_number":1542,"context_line":"        if not image and not any("},{"line_number":1543,"context_line":"            [bdm[\u0027boot_index\u0027] \u003d\u003d 0 for bdm in block_device_mapping_v2]"},{"line_number":1544,"context_line":"        ):"},{"line_number":1545,"context_line":"            msg \u003d _("},{"line_number":1546,"context_line":"                \u0027An image (--image, --image-property) or bootable volume \u0027"},{"line_number":1547,"context_line":"                \u0027(--volume, --snapshot, --block-device) is required\u0027"}],"source_content_type":"text/x-python","patch_set":1,"id":"e7ace1cf_dfad331a","line":1544,"in_reply_to":"fbd8e1f9_a603f299","updated":"2022-10-21 11:47:16.000000000","message":"Indeed. Done","commit_id":"59b9a764c08826c9e340b0e1cf73d4ec5ec46ec1"},{"author":{"_account_id":4690,"name":"melanie witt","display_name":"melwitt","email":"melwittt@gmail.com","username":"melwitt"},"change_message_id":"85c3128e93041a548bc128da296a66640fb049ea","unresolved":true,"context_lines":[{"line_number":1465,"context_line":"                ).id"},{"line_number":1466,"context_line":"                mapping[\u0027uuid\u0027] \u003d image_id"},{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"            block_device_mapping_v2.append(mapping)"},{"line_number":1469,"context_line":""},{"line_number":1470,"context_line":"        for mapping in parsed_args.block_devices:"},{"line_number":1471,"context_line":"            if \u0027boot_index\u0027 in mapping:"}],"source_content_type":"text/x-python","patch_set":2,"id":"f81bda12_079c3c2d","line":1468,"updated":"2022-10-21 17:13:59.000000000","message":"The error message in the functional job is weird:\n\n tempest.lib.exceptions.CommandFailed: Command \u0027openstack --os-cloud\u003ddevstack-admin server create -f json --flavor m1.tiny --volume 9459c7e34ce54a89866ea0af45b82a74 --block-device-mapping vdb\u003df737411d0e524ed19f330d41e09e851f --nic net-id\u003d0161fa3b-6679-4c6b-ae70-38cfdcc502e3 --wait ee07d59bad4041bd9c06bacbb57472ab\u0027 returned non-zero exit status 1.\n stdout:\n\n stderr:\n b\"\u0027boot_index\u0027\\n\"\n\nbut I guess it\u0027s because with --block-device-mapping we now need to add mapping[\u0027boot_index\u0027] in these bc it\u0027s now required by L1543?","commit_id":"29f6074612b355fce8740535a9a81d1c94a90f0d"},{"author":{"_account_id":15334,"name":"Stephen Finucane","display_name":"stephenfin","email":"stephenfin@redhat.com","username":"sfinucan"},"change_message_id":"ffa25662a51246567cc87f9d9d3e295fc2c1ec4f","unresolved":false,"context_lines":[{"line_number":1465,"context_line":"                ).id"},{"line_number":1466,"context_line":"                mapping[\u0027uuid\u0027] \u003d image_id"},{"line_number":1467,"context_line":""},{"line_number":1468,"context_line":"            block_device_mapping_v2.append(mapping)"},{"line_number":1469,"context_line":""},{"line_number":1470,"context_line":"        for mapping in parsed_args.block_devices:"},{"line_number":1471,"context_line":"            if \u0027boot_index\u0027 in mapping:"}],"source_content_type":"text/x-python","patch_set":2,"id":"2134f5ac_e8dc631e","line":1468,"in_reply_to":"f81bda12_079c3c2d","updated":"2022-12-01 15:25:17.000000000","message":"Ah, indeed. I changed this to:\n\n  mapping.get(\u0027boot_index\u0027)\n\nTo avoid insisting on something nova itself doesn\u0027t insist on","commit_id":"29f6074612b355fce8740535a9a81d1c94a90f0d"}]}
