diff -Nru horizon-14.0.2/debian/changelog horizon-14.0.2/debian/changelog --- horizon-14.0.2/debian/changelog 2019-03-29 04:18:12.000000000 -0400 +++ horizon-14.0.2/debian/changelog 2019-04-16 10:19:26.000000000 -0400 @@ -1,3 +1,14 @@ +horizon (3:14.0.2-0ubuntu3) cosmic; urgency=medium + + * d/p/drop-devicename-creating-server-with-image-boot-to-volume.patch: + When creating a server using an image boot source to new volume, + horizon specified device_name 'vda'. If for instance we use an image + with disk_bus type scsi, horizon will name the device_name as 'vda' + when it should be 'sda'. As per BDMv2 documentation, it's best to not + specify device_name. (LP: #1822129) + + -- Eric Desrochers Tue, 16 Apr 2019 10:19:26 -0400 + horizon (3:14.0.2-0ubuntu2) cosmic; urgency=medium [ Karl Williams ] diff -Nru horizon-14.0.2/debian/patches/drop-devicename-creating-server-with-image-boot-to-volume.patch horizon-14.0.2/debian/patches/drop-devicename-creating-server-with-image-boot-to-volume.patch --- horizon-14.0.2/debian/patches/drop-devicename-creating-server-with-image-boot-to-volume.patch 1969-12-31 19:00:00.000000000 -0500 +++ horizon-14.0.2/debian/patches/drop-devicename-creating-server-with-image-boot-to-volume.patch 2019-04-16 10:19:16.000000000 -0400 @@ -0,0 +1,125 @@ +Description: Not implicitly set vol_device_name to vda + Using a scsi decorated image with: + hw_disk_bus='scsi' + hw_scsi_model='virtio-scsi' + + This solve the case where an instance is + launched with 'image' selected as boot + source with a new volume. This will result + in /dev/vda instead of /dev/sda as it + should. + + Not specifying device name in + setFinalSpecBootImageToVolume() leaves the + decision to nova to determine it. + + Example: + ------- + VM boot volume without scsi meta data decoration: + Attached To + 0a0cd660-7ce3-4033-9983-2e1099edc5f0 on /dev/vda + + VM boot volume with scsi meta data decoration: + Attached To + 91f50dbc-8bdf-4293-84ea-fc5df27b5ee4 on /dev/sda + -------- + + Note: This commit doesn't address cases for + where instances are launched using existing + volume and snapshot, this will involve more + work to migrate the code from BDMv1 to BDMv2. + + Closes-Bug #1560965 + + Change-Id: I9d114c2c2e6736a8f1a8092afa568f930b656f09 + +Author: Eric Desrochers +Origin: upstream, https://github.com/openstack/horizon/commit/4788c4d +Bug: https://launchpad.net/bugs/1560965 +Bug-Ubuntu: https://launchpad.net/bugs/1822129 +Index: horizon-14.0.2/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js +=================================================================== +--- horizon-14.0.2.orig/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js ++++ horizon-14.0.2/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.js +@@ -747,11 +747,9 @@ + function setFinalSpecBootImageToVolume(finalSpec) { + if (finalSpec.vol_create) { + // Specify null to get Autoselection (not empty string) +- var deviceName = finalSpec.vol_device_name ? finalSpec.vol_device_name : null; + finalSpec.block_device_mapping_v2 = []; + finalSpec.block_device_mapping_v2.push( + { +- 'device_name': deviceName, + 'source_type': bootSourceTypes.IMAGE, + 'destination_type': bootSourceTypes.VOLUME, + 'delete_on_termination': finalSpec.vol_delete_on_instance_delete, +Index: horizon-14.0.2/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.spec.js +=================================================================== +--- horizon-14.0.2.orig/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.spec.js ++++ horizon-14.0.2/openstack_dashboard/dashboards/project/static/dashboard/project/workflow/launch-instance/launch-instance-model.service.spec.js +@@ -898,7 +898,6 @@ + + it('sets volume options appropriately', function() { + expect(model.newInstanceSpec.vol_create).toBe(false); +- expect(model.newInstanceSpec.vol_device_name).toBe('vda'); + expect(model.newInstanceSpec.vol_delete_on_instance_delete).toBe(false); + expect(model.newInstanceSpec.vol_size).toBe(1); + }); +@@ -921,7 +920,6 @@ + model.newInstanceSpec.scheduler_hints = {}; + model.newInstanceSpec.vol_create = true; + model.newInstanceSpec.vol_delete_on_instance_delete = true; +- model.newInstanceSpec.vol_device_name = "volTestName"; + model.newInstanceSpec.vol_size = 10; + model.newInstanceSpec.server_groups = []; + +@@ -957,7 +955,6 @@ + it('should set final spec in format required for Block Device Mapping v2', function() { + var finalSpec = model.createInstance(); + var expectedBlockDevice = [{ +- device_name: 'volTestName', + source_type: 'image', + destination_type: 'volume', + delete_on_termination: true, +@@ -989,8 +986,6 @@ + model.newInstanceSpec.vol_delete_on_instance_delete = 'yep'; + + var finalSpec = model.createInstance(); +- expect(finalSpec.block_device_mapping.volTestName) +- .toBe('imAnID:vol::yep'); + expect(finalSpec.source_id).toBe(''); + }); + +@@ -1000,7 +995,6 @@ + + var finalSpec = model.createInstance(); + var expectedBlockDevice = [{ +- device_name: 'volTestName', + source_type: 'image', + destination_type: 'volume', + delete_on_termination: true, +@@ -1018,8 +1012,6 @@ + model.newInstanceSpec.vol_delete_on_instance_delete = 'yep'; + + var finalSpec = model.createInstance(); +- expect(finalSpec.block_device_mapping.volTestName) +- .toBe('imAnID:snap::yep'); + expect(finalSpec.source_id).toBe(''); + }); + +@@ -1076,15 +1068,6 @@ + expect(finalSpec.nics).toEqual(finalNetworks); + }); + +- it('provides null for device_name when falsy', function() { +- model.newInstanceSpec.source_type.type = 'image'; +- model.newInstanceSpec.vol_device_name = false; +- model.newInstanceSpec.vol_create = true; +- +- var finalSpec = model.createInstance(); +- expect(finalSpec.block_device_mapping_v2[0].device_name).toBeNull(); +- }); +- + it('should not have meta property if no metadata specified', function() { + metadata = {}; + diff -Nru horizon-14.0.2/debian/patches/series horizon-14.0.2/debian/patches/series --- horizon-14.0.2/debian/patches/series 2019-03-29 04:18:12.000000000 -0400 +++ horizon-14.0.2/debian/patches/series 2019-04-16 10:17:46.000000000 -0400 @@ -3,3 +3,4 @@ fix-dashboard-manage.patch ubuntu_settings.patch embedded-xstatic.patch +drop-devicename-creating-server-with-image-boot-to-volume.patch