# HG changeset patch # User Sean Wilcox # Date 1462835566 21600 # Node ID bfd525bc0bf2708a7ab062fab79b515a2fa30f96 # Parent d9fcc08e98bf3083d37138f11b126bf7fd984f87 22991692 instance rebuild failed with Exception during message handling: 'serial' diff -r d9fcc08e98bf -r bfd525bc0bf2 components/openstack/nova/files/solariszones/driver.py --- a/components/openstack/nova/files/solariszones/driver.py Mon May 09 14:33:25 2016 -0700 +++ b/components/openstack/nova/files/solariszones/driver.py Mon May 09 17:12:46 2016 -0600 @@ -842,6 +842,23 @@ if entry['device_name'] == rootmp: root_ci = jsonutils.loads(entry['connection_info']) + # Let's make sure this is a well formed connection_info, by + # checking if it has a serial key that represents the volume_id. + # If not check to see if the block device has a volume_id, if so + # then assign this to the root_ci.serial. + # + # If we cannot repair the connection_info then simply do not + # return a root_ci and let the caller decide if they want to + # fail or not. + if root_ci.get('serial') is None: + if entry.get('volume_id') is not None: + root_ci['serial'] = entry['volume_id'] + else: + LOG.debug(_("Unable to determine the volume id for " + "the connection info for the root device " + "for instance '%s'") % instance['name']) + root_ci = None + continue if not recreate: