'Detach Cinder volume identified by blockdevice_id.
It will loop listing the volume until it is no longer there.
if the volume is still there after the defined timeout,
the function will just raise an exception and do nothing.
:raises TimeoutException: If the volume is not deleted
within the expected time. If that happens, it will be because after
the timeout, the volume can still be listed. The volume will not
be deleted unless further action is taken.'

def destroy_volume(self, blockdevice_id):

    try:
        self.cinder_volume_manager.delete(blockdevice_id)
    except CinderClientNotFound:
        raise UnknownVolume(blockdevice_id)
    start_time = self._time.time()
    while ((self._time.time() - start_time) < self._timeout):
        try:
            self.cinder_volume_manager.get(blockdevice_id)
        except CinderClientNotFound:
            return
        self._time.sleep(1.0)
    raise TimeoutException(blockdevice_id, None, (self._time.time() - start_time))
