docs: def volume_detach(self,
                        name,
                        timeout=300):
          '''
          Detach a block device
          '''
          try:
              volume = self.volume_show(name)
          except KeyError as exc:
              raise SaltCloudSystemExit('Unable to find {0} volume: {1}'.format(name, exc))
          if not volume['attachments']:
              return True
          response = self.compute_conn.volumes.delete_server_volume(
              volume['attachments'][0]['server_id'],
              volume['attachments'][0]['id']
          )
          trycount = 0
          start = time.time()
          while True:
              trycount += 1
              try:
                  response = self._volume_get(volume['id'])
                  if response['status'] == 'available':
                      return response
              except Exception as exc:
                  log.debug('Volume is detaching: %s', name)
                  time.sleep(1)
                  if time.time() - start > timeout:
                      log.error('Timed out after %d seconds '
                                'while waiting for data', timeout)
                      return False
  
                  log.debug(
                      'Retrying volume_show() (try %d)', trycount
                  )