コード例 #1
0
ファイル: models_index_base.py プロジェクト: joejulian/appr
 def releases_data(self):
     path = self.releases_key
     if self._releases is None:
         try:
             self._releases = self._fetch_data(path)
         except ResourceNotFound:
             raise_package_not_found(self.package)
     return self._releases
コード例 #2
0
ファイル: package_base.py プロジェクト: joejulian/appr
 def get_release(cls, package, release_query, stable=False):
     releases = cls.all_releases(package)
     if not releases:
         raise_package_not_found(package, release=release_query)
     if release_query is None or release_query == 'default':
         return last_version(releases, stable)
     else:
         try:
             return select_version(releases, str(release_query), stable)
         except ValueError as e:
             raise InvalidRelease(e.message, {"release": release_query})
コード例 #3
0
ファイル: models_index_base.py プロジェクト: joejulian/appr
 def delete_release(self, release, media_type):
     try:
         self.get_lock(self.releases_key)
         data = self.releases_data
         if release not in data['releases'] or media_type not in data[
                 'releases'][release]['manifests']:
             raise_package_not_found(self.package)
         data['releases'][release]['manifests'].pop(media_type)
         if not data['releases'][release]['manifests']:
             data['releases'].pop(release)
         if not data['releases']:
             self.delete_package(self.package)
         self._write_data(self.releases_key, data)
         return True
     finally:
         self.release_lock(self.releases_key)
コード例 #4
0
ファイル: models_index_base.py プロジェクト: joejulian/appr
 def get_blob(self, digest):
     try:
         path = self.blob_key(digest)
         return self._fetch_raw_data(path)
     except ResourceNotFound:
         raise_package_not_found(self.package, digest)
コード例 #5
0
ファイル: models_index_base.py プロジェクト: joejulian/appr
 def release_channels(self, release):
     if release not in self.releases_data['releases']:
         raise_package_not_found(self.package, release)
     return self.releases_data['releases'][release]['channels']
コード例 #6
0
ファイル: models_index_base.py プロジェクト: joejulian/appr
 def _check_channel_release(self, channel, release):
     if not self.ischannel_exists(channel):
         raise_channel_not_found(channel)
     if release not in self.releases_data['releases']:
         raise_package_not_found(self.package, release)
コード例 #7
0
ファイル: models_index_base.py プロジェクト: joejulian/appr
 def release(self, release, media_type):
     try:
         return self.release_manifests(release)[media_type]
     except KeyError:
         raise_package_not_found(self.package, release, media_type)
コード例 #8
0
ファイル: models_index_base.py プロジェクト: joejulian/appr
 def release_manifests(self, release):
     try:
         manifests = self.releases_data['releases'][release]['manifests']
         return manifests
     except KeyError:
         raise_package_not_found(self.package, release)