def get_snap_status(self, snap_name, series=None, arch=None): if series is None: series = constants.DEFAULT_SERIES account_info = self.get_account_information() try: snap_id = account_info['snaps'][series][snap_name]['snap-id'] except KeyError: raise errors.SnapNotFoundError(snap_name, series=series, arch=arch) response = self._refresh_if_necessary(self.sca.snap_status, snap_id, series, arch) if not response: raise errors.SnapNotFoundError(snap_name, series=series, arch=arch) return response
def download(self, snap_name, channel, download_path, arch=None): if arch is None: arch = snapcraft.ProjectOptions().deb_arch package = self.cpi.search_package(snap_name, channel, arch) if package is None: raise errors.SnapNotFoundError(snap_name, channel, arch) self._download_snap( snap_name, channel, arch, download_path, package['download_url'], package['download_sha512'])
def get_package(self, snap_name, channel, arch): headers = { 'Accept': 'application/hal+json', 'X-Ubuntu-Architecture': arch, 'X-Ubuntu-Release': constants.DEFAULT_SERIES, } params = { 'channel': channel, 'fields': 'status,download_url,download_sha512', } logger.info('Getting details for {}'.format(snap_name)) url = 'api/v1/snaps/details/{}'.format(snap_name) resp = self.get(url, headers=headers, params=params) if resp.status_code != 200: raise errors.SnapNotFoundError(snap_name, channel, arch) return resp.json()
def get_package(self, snap_name, channel, arch=None): headers = self.get_default_headers() headers.update({ 'Accept': 'application/hal+json', 'X-Ubuntu-Release': constants.DEFAULT_SERIES, }) if arch: headers['X-Ubuntu-Architecture'] = arch params = { 'channel': channel, # FIXME LP: #1662665 'fields': 'status,anon_download_url,download_url,' 'download_sha3_384,download_sha512,snap_id,' 'revision,release', } logger.info('Getting details for {}'.format(snap_name)) url = 'api/v1/snaps/details/{}'.format(snap_name) resp = self.get(url, headers=headers, params=params) if resp.status_code != 200: raise errors.SnapNotFoundError(snap_name, channel, arch) return resp.json()