'Determines the instance a blockdevice is attached to.
:param unicode blockdevice_id: The blockdevice_id of the blockdevice to
query.
:returns unicode: The name of the instance.
:raises UnknownVolume: If there is no volume with the given id in the
cluster.
:raises UnattachedVolume: If the volume is not attached to any
instance.'

def _get_attached_to(self, blockdevice_id):

    with start_action(action_type=u'flocker:node:agents:gce:get_attached_to', blockdevice_id=blockdevice_id) as action:
        try:
            disk = self._operations.get_disk_details(blockdevice_id)
        except HttpError as e:
            if (e.resp.status == 404):
                raise UnknownVolume(blockdevice_id)
            else:
                raise
        attached_to = _extract_attached_to(disk)
        if (not attached_to):
            raise UnattachedVolume(blockdevice_id)
        action.add_success_fields(attached_to=attached_to)
        return attached_to
