docs: def boot(self, name, flavor_id=0, image_id=0, timeout=300, **kwargs):
          '''
          Boot a cloud server.
          '''
          nt_ks = self.compute_conn
          kwargs['name'] = name
          kwargs['flavor'] = flavor_id
          kwargs['image'] = image_id or None
          ephemeral = kwargs.pop('ephemeral', [])
          block_device = kwargs.pop('block_device', [])
          boot_volume = kwargs.pop('boot_volume', None)
          snapshot = kwargs.pop('snapshot', None)
          swap = kwargs.pop('swap', None)
          kwargs['block_device_mapping_v2'] = _parse_block_device_mapping_v2(
              block_device=block_device, boot_volume=boot_volume, snapshot=snapshot,
              ephemeral=ephemeral, swap=swap
          )
          response = nt_ks.servers.create(**kwargs)
          self.uuid = response.id
          self.password = getattr(response, 'adminPass', None)
  
          start = time.time()
          trycount = 0
          while True:
              trycount += 1
              try:
                  return self.server_show_libcloud(self.uuid)
              except Exception as exc:
                  log.debug(
                      'Server information not yet available: %s', exc
                  )
                  time.sleep(1)
                  if time.time() - start > timeout:
                      log.error('Timed out after %s seconds '
                                'while waiting for data', timeout)
                      return False
  
                  log.debug(
                      'Retrying server_show() (try %s)', trycount
                  )