Comment 4 for bug 867627

Revision history for this message
Mark McLoughlin (markmc) wrote : Re: Failure while rebuilding an instance with livirt

Apparently this is already fixed in essex. See https://review.openstack.org/2414

I'm not sure I buy that, though

https://github.com/openstack/nova/blob/a5e73ffe/nova/compute/manager.py#L724

        bd_mapping = self._setup_block_device_mapping(context, instance)
        ....
        self.driver.spawn(context, instance, image_meta,
                          network_info, bd_mapping)

https://github.com/openstack/nova/blob/a5e73ffe/nova/compute/manager.py#L275

    def _setup_block_device_mapping(self, context, instance):
        ...
        return (swap, ephemerals, block_device_mapping)

https://github.com/openstack/nova/blob/a5e73ffe/nova/virt/libvirt/connection.py#L670

    def spawn(self, context, instance, image_meta, network_info,
              block_device_info=None):
        xml = self.to_xml(instance, network_info, image_meta, False,
                          block_device_info=block_device_info)

https://github.com/openstack/nova/blob/a5e73ffe/nova/virt/libvirt/connection.py#L1201

    def to_xml(self, instance, network_info, image_meta=None, rescue=False,
               block_device_info=None):
        ...
        xml_info = self._prepare_xml_info(instance, network_info, image_meta,
                                          rescue, block_device_info)

https://github.com/openstack/nova/blob/a5e73ffe/nova/virt/libvirt/connection.py#L1087

    def _prepare_xml_info(self, instance, network_info, image_meta, rescue,
                          block_device_info=None):
        block_device_mapping = driver.block_device_info_get_mapping(
            block_device_info)

https://github.com/openstack/nova/blob/a5e73ffe/nova/virt/driver.py#L56

    def block_device_info_get_mapping(block_device_info):
        block_device_info = block_device_info or {}
        block_device_mapping = block_device_info.get('block_device_mapping') or []
        return block_device_mapping

Looks obvious to me that the bug is still there. But https://review.openstack.org/2414 didn't fix the issue either