Source code for swimlane.core.adapters.app_revision

import math

from swimlane.core.cache import check_cache
from swimlane.core.resolver import AppResolver
from swimlane.core.resources.app_revision import AppRevision
from swimlane.utils import one_of_keyword_only


[docs]class AppRevisionAdapter(AppResolver): """Handles retrieval of Swimlane App Revision resources"""
[docs] def get_all(self): """ Gets all app revisions. Returns: AppRevision[]: Returns all AppRevisions for this Adapter's app. """ raw_revisions = self._swimlane.request('get', 'app/{0}/history'.format(self._app.id)).json() return [AppRevision(self._swimlane, raw) for raw in raw_revisions]
[docs] def get(self, revision_number): """ Gets a specific app revision. Supports resource cache Keyword Args: revision_number (float): App revision number Returns: AppRevision: The AppRevision for the given revision number. Raises: When revision is not an integer, a float NOT ending in ".0", or is less than 1 """ if isinstance(revision_number, (int, float)): if revision_number > 0 and revision_number % math.floor(revision_number) == 0: key_value = AppRevision.get_unique_id(self._app.id, revision_number) return self.__get(app_id_revision=key_value) raise ValueError('The revision number must be a positive whole number greater than 0')
@check_cache(AppRevision) @one_of_keyword_only('app_id_revision') def __get(self, key, value): """Underlying get method supporting resource cache.""" app_id, revision_number = AppRevision.parse_unique_id(value) app_revision_raw = self._swimlane.request('get', 'app/{0}/history/{1}'.format(app_id, revision_number)).json() return AppRevision(self._swimlane, app_revision_raw)