<div dir="ltr">Hi.<div><br></div><div>Since that bdm v2 was introduced for Havana, it requires a caller to specify bdm for an image together with imageRef to boot an instance in a case of using bdm v2 to attach additional volumes.</div><div><br></div><div><font face="monospace, monospace">{"server": {"imageRef": "xxx",</font></div><div>                       "block_device_mapping_v2": [</div><div>                           {"uuid": "xxx",</div><div>                            "source_type": "image",</div><div>                            "destination_type": "local",</div><div>                            "boot_index": 0,</div><div>                           },</div><div>                           <other_mappings></div><div>                       ],</div><div>                       ...}}</div><div><br></div><div>If we specify imageRef or the bdm record only, the launch will be failed.</div><div><br></div><div>Novaclient does it [1] for shell invokes like</div><div><span style="font-family:monospace,monospace">nova boot --image xxx --block_device <other mappings> ...</span><br></div><div>, but does nothing for client API calls.<br></div><div><br></div><div>Such feature of usage is unclear. I've not found any documentation for the usage. Wiki [2] doesn't mention this feature, but refers to a deleted API sample [3]. Before deleting [4] that sample didn't consider the feature, so it was wrong.</div><div><br></div><div>As a result the need to specify an image in two arguments seems a temprary workaround for some problems. And whole bdm v2 conception looks not well designed, not finished.</div><div><br></div><div>The question is: is this feature correct? Shall we specify an image twice for the long term? Otherwise which manner should be established finally: by imageRef or by an bdm record?</div><div><br></div><div>ps. There are a review [5] and a linked bug [6] which require clarification of this question.</div><div><br></div><div>[1] <a href="https://github.com/openstack/python-novaclient/commit/6a85c954c53f868251413db51cc1d9616acd4d02#diff-4812fe2b8b37d18cf9498f9fbbab17beR125">https://github.com/openstack/python-novaclient/commit/6a85c954c53f868251413db51cc1d9616acd4d02#diff-4812fe2b8b37d18cf9498f9fbbab17beR125</a></div><div>[2] <a href="https://wiki.openstack.org/wiki/BlockDeviceConfig#API_data_model_and_backwards_compat_issues">https://wiki.openstack.org/wiki/BlockDeviceConfig#API_data_model_and_backwards_compat_issues</a></div><div>[3] <a href="https://github.com/openstack/nova/tree/master/doc/api_samples/os-block-device-mapping-v2-boot">https://github.com/openstack/nova/tree/master/doc/api_samples/os-block-device-mapping-v2-boot</a></div><div>[4] <a href="https://github.com/openstack/nova/blob/2f32996c3e5625245a4d0588ab32880d41400b9e/doc/api_samples/os-block-device-mapping-v2-boot/server-post-req.json">https://github.com/openstack/nova/blob/2f32996c3e5625245a4d0588ab32880d41400b9e/doc/api_samples/os-block-device-mapping-v2-boot/server-post-req.json</a></div><div>[5] <a href="https://review.openstack.org/#/c/171984/">https://review.openstack.org/#/c/171984/</a></div><div>[6] <a href="https://bugs.launchpad.net/nova/+bug/1441990">https://bugs.launchpad.net/nova/+bug/1441990</a></div><div><br></div></div>