docs: def _load_instance(self, instance_id, force_reload=True):
          """
          Return instance with the given id.
  
          For performance reasons, the instance ID is first searched for in the
          collection of VM instances started by ElastiCluster
          (`self._instances`), then in the list of all instances known to the
          cloud provider at the time of the last update
          (`self._cached_instances`), and finally the cloud provider is directly
          queried.
  
          :param str instance_id: instance identifier
          :param bool force_reload:
            if ``True``, skip searching caches and reload instance from server
            and immediately reload instance data from cloud provider
          :return: py:class:`novaclient.v1_1.servers.Server` - instance
          :raises: `InstanceError` is returned if the instance can't
                   be found in the local cache or in the cloud.
          """
          if force_reload:
              try:
                  # Remove from cache and get from server again
                  vm = self.nova_client.servers.get(instance_id)
              except NotFound:
                  raise InstanceNotFoundError(
                      "Instance `{instance_id}` not found"
                      .format(instance_id=instance_id))
              # update caches
              self._instances[instance_id] = vm
              self._cached_instances[instance_id] = vm
  
          # if instance is known, return it
          if instance_id in self._instances:
              return self._instances[instance_id]
  
          # else, check (cached) list from provider
          if instance_id not in self._cached_instances:
              # Refresh the cache, just in case
              self._cached_instances = dict(
                  (vm.id, vm) for vm in self.nova_client.servers.list())
  
          if instance_id in self._cached_instances:
              inst = self._cached_instances[instance_id]
              self._instances[instance_id] = inst
              return inst
  
          # If we reached this point, the instance was not found neither
          # in the caches nor on the website.
          raise InstanceNotFoundError(
              "Instance `{instance_id}` not found"
              .format(instance_id=instance_id))