Source code for swimlane.core.resources.app_revision

from swimlane.core.resources.app import App
from swimlane.core.resources.revision_base import RevisionBase


[docs]class AppRevision(RevisionBase): """ Encapsulates a single revision returned from a History lookup. Attributes: Attributes: modified_date: The date this app revision was created. revision_number: The revision number of this app revision. status: Indicates whether this revision is the current revision or a historical revision. user: The user that saved this revision of the record. version: The App corresponding to the data contained in this app revision. """ # Separator for unique ids. Unlikely to be found in application ids. Although technically we do not currently # validate app ids in the backend for specific characters so this sequence could be found. SEPARATOR = ' --- '
[docs] @staticmethod def get_unique_id(app_id, revision_number): """Returns the unique identifier for the given AppRevision.""" return '{0}{1}{2}'.format(app_id, AppRevision.SEPARATOR, revision_number)
[docs] @staticmethod def parse_unique_id(unique_id): """Returns an array containing two items: the app_id and revision number parsed from the given unique_id.""" return unique_id.split(AppRevision.SEPARATOR)
@property def version(self): """Returns an App from the _raw_version info in this app revision. Lazy loaded. Overridden from base class.""" if not self._version: self._version = App(self._swimlane, self._raw_version) return self._version
[docs] def get_cache_index_keys(self): """Returns cache index keys for this AppRevision.""" return { 'app_id_revision': self.get_unique_id(self.version.id, self.revision_number) }