Not adding a image block device mapping causes some valid boot requests to fail
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
High
|
jichenjc | ||
Kilo |
Fix Released
|
High
|
Unassigned | ||
python-novaclient |
Fix Released
|
Medium
|
Unassigned |
Bug Description
The following commit removed the code in the python nova client that would add an image block device mapping entry (source_type: image, destination_type: local) in preparation for fixing https:/
However this makes some valid instance boot requests not work as expected as they will not pass the block device mapping validation because of this. An example would be:
nova boot test-vm --flavor m1.medium --image centos-vm-32 --nic net-id=
Which would be a valid boot request previously since the client would add a block device with boot_index=0 that would not fail.
Changed in nova: | |
importance: | Undecided → High |
Changed in nova: | |
status: | New → Confirmed |
Changed in nova: | |
assignee: | nobody → jichenjc (jichenjc) |
tags: | added: kilo-backport-potential |
tags: | added: kilo-rc-potential |
tags: | removed: kilo-backport-potential kilo-rc-potential |
Changed in nova: | |
milestone: | none → liberty-1 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | liberty-1 → 12.0.0 |
It seems to me that fixing this will actually require putting back the code that was removed by https:/ /review. openstack. org/#/c/ 153203/ and heavily modifying the original fix to https:/ /bugs.launchpad .net/nova/ +bug/1377958 (https:/ /review. openstack. org/#/c/ 126303 - already landed on master)
The reasoning behind is: first of all changing what the API expects is tricky and we would need to make sure we version it correctly. Also the API as it stands now is consistent - it will expect you to specify block devices in the API request with the proper boot sequence, and it's up to the client to translate the well known CLI syntax into the correct request.
Since we still want to reject any other sourec=image, dest=local block device mapping as per bug https:/ /bugs.launchpad .net/nova/ +bug/1377958 - this can be done by comparing compare it with what is passed as 'imageRef' and reject it if it's not a known special case of a "boot image" that all drivers handle independently of the block device mapping data anyway.
For a discussion that initiated this bug report see as it may contain some more detials:
http:// lists.openstack .org/pipermail/ openstack- dev/2015- March/059173. html