Return an list of models from the API and caches the result.

        Args:
            model_class (:class:`cinder_data.model.CinderModel`): A subclass of
                :class:`cinder_data.model.CinderModel` of your chosen model.
            params (dict, optional): Description

        Returns:
            list: A list of instances of you model_class or and empty list.

def find_all(self, model_class, params={}):
        """Return an list of models from the API and caches the result.

        Args:
            model_class (:class:`cinder_data.model.CinderModel`): A subclass of
                :class:`cinder_data.model.CinderModel` of your chosen model.
            params (dict, optional): Description

        Returns:
            list: A list of instances of you model_class or and empty list.
        """
        url = '{host}/{namespace}/{model}{params}'.format(
            host=self._host,
            namespace=self._namespace,
            model=self._translate_name(model_class.__name__),
            params=self._build_param_string(params)
        )
        data = self._get_json(url)['data']
        fresh_models = []
        for item in data:
            fresh_model = model_class(item['attributes'])
            fresh_model.id = item['id']
            fresh_model.validate()
            fresh_models.append(fresh_model)
            if self._cache is not None:
                self._cache.set_record(model_class.__name__, fresh_model.id, fresh_model)
        return fresh_models