Read disk identifier after config drive setup

If original disk image has ID of 0x00000000 it's overwritten by parted
with a non-zero value. The original ID is stored in pxelinux.cfg/* config
file and the node fails to boot.

Reading the ID was moved to after config drive setup so that the final ID
is returned.

Change-Id: Icbfa3e93bf6252177a0baa5f89bf4565ff331520
Closes-Bug: #1685093
This commit is contained in:
Jacek Tomasiak 2017-04-21 08:56:25 +02:00
parent d27d22c701
commit cbc29a9b7b
2 changed files with 7 additions and 1 deletions

View File

@ -417,12 +417,13 @@ def deploy_disk_image(address, port, iqn, lun,
with _iscsi_setup_and_handle_errors(address, port, iqn, with _iscsi_setup_and_handle_errors(address, port, iqn,
lun) as dev: lun) as dev:
disk_utils.populate_image(image_path, dev) disk_utils.populate_image(image_path, dev)
disk_identifier = disk_utils.get_disk_identifier(dev)
if configdrive: if configdrive:
disk_utils.create_config_drive_partition(node_uuid, dev, disk_utils.create_config_drive_partition(node_uuid, dev,
configdrive) configdrive)
disk_identifier = disk_utils.get_disk_identifier(dev)
return {'disk identifier': disk_identifier} return {'disk identifier': disk_identifier}

View File

@ -0,0 +1,5 @@
---
fixes:
- Fix handling of whole disk images with 0x00000000 disk identifier.
Instances failed to boot as the identifier in boot config was overwritten
during config drive creation. See https://bugs.launchpad.net/ironic/+bug/1685093