I upgraded my cloud env to Mitaka and was facing the same issue as described. Unfortunately, my first patch mentioned here had no effect. I started digging once again and noticed that the respective code in create_instance.py is not executed anymore. So it seems that now it's the code in /srv/www/openstack-dashboard/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js which is responsible for the faulty device names. Here's what I did to let nova choose the device name:
I upgraded my cloud env to Mitaka and was facing the same issue as described. Unfortunately, my first patch mentioned here had no effect. I started digging once again and noticed that the respective code in create_instance.py is not executed anymore. So it seems that now it's the code in /srv/www/ openstack- dashboard/ static/ dashboard/ project/ workflow/ launch- instance/ launch- instance- model.service. js which is responsible for the faulty device names. Here's what I did to let nova choose the device name:
---cut here--- openstack- dashboard/ static/ dashboard/ project/ workflow/ launch- instance/ launch- instance- model.service. js.dist /srv/www/ openstack- dashboard/ static/ dashboard/ project/ workflow/ launch- instance/ launch- instance- model.service. js openstack- dashboard/ static/ dashboard/ project/ workflow/ launch- instance/ launch- instance- model.service. js.dist 2016-04-24 00:57:26.000000000 +0200 openstack- dashboard/ static/ dashboard/ project/ workflow/ launch- instance/ launch- instance- model.service. js 2016-05-13 16:12:39.915755258 +0200
vol_create: false,
vol_delete_ on_instance_ delete: false, vol_device_ name ? finalSpec. vol_device_ name : null;
finalSpec. block_device_ mapping_ v2 = []; block_device_ mapping_ v2.push( on_termination' : finalSpec. vol_delete_ on_instance_ delete, source_ id, vol_device_ name==' NOTSET' ) { block_device_ mapping_ v2.push( on_termination' : finalSpec. vol_delete_ on_instance_ delete, source_ id, block_device_ mapping_ v2.push( on_termination' : finalSpec. vol_delete_ on_instance_ delete, source_ id,
finalSpec. source_ id = null;
control1:~ # diff -u /srv/www/
--- /srv/www/
+++ /srv/www/
@@ -164,8 +164,8 @@
source: [],
// REQUIRED for JS logic
- // May be null
- vol_device_name: 'vda',
+ // Not set by default to let nova choose autom.
+ vol_device_name: 'NOTSET',
vol_size: 1
};
@@ -546,17 +546,32 @@
// Specify null to get Autoselection (not empty string)
var deviceName = finalSpec.
- finalSpec.
- {
- 'device_name': deviceName,
- 'source_type': SOURCE_TYPE_IMAGE,
- 'destination_type': SOURCE_TYPE_VOLUME,
- 'delete_
- 'uuid': finalSpec.
- 'boot_index': '0',
- 'volume_size': finalSpec.vol_size
- }
- );
+ if (finalSpec.
+ finalSpec.
+ {
+// 'device_name': deviceName,
+ 'source_type': SOURCE_TYPE_IMAGE,
+ 'destination_type': SOURCE_TYPE_VOLUME,
+ 'delete_
+ 'uuid': finalSpec.
+ 'boot_index': '0',
+ 'volume_size': finalSpec.vol_size
+ }
+ );
+ }
+ else {
+ finalSpec.
+ {
+ 'device_name': deviceName,
+ 'source_type': SOURCE_TYPE_IMAGE,
+ 'destination_type': SOURCE_TYPE_VOLUME,
+ 'delete_
+ 'uuid': finalSpec.
+ 'boot_index': '0',
+ 'volume_size': finalSpec.vol_size
+ }
+ );
+ }
}
}
---cut here---
I also added horizon to the affected projects of this bug, I'm not sure if nova is correct anymore.