'On Xen hypervisors (e.g. Rackspace) the Cinder API reports the correct
device path. On Qemu / virtio_blk the actual device path may be
different. So when we detect ``virtio_blk`` style device paths, we
check the virtual disk serial number, which should match the first
20 characters of the Cinder Volume UUID on platforms that we support.'

def get_device_path(self, blockdevice_id):

    try:
        cinder_volume = self.cinder_volume_manager.get(blockdevice_id)
    except CinderClientNotFound:
        raise UnknownVolume(blockdevice_id)
    device_path = self._get_device_path_api(cinder_volume)
    if _is_virtio_blk(device_path):
        device_path = self._get_device_path_virtio_blk(cinder_volume)
    return device_path
