Exemple #1
0
    def snap_push_metadata(self,
                           snap_name,
                           updown_data,
                           delta_format=None,
                           delta_hash=None,
                           source_hash=None,
                           target_hash=None):
        data = {
            'name': snap_name,
            'series': constants.DEFAULT_SERIES,
            'updown_id': updown_data['upload_id'],
            'binary_filesize': updown_data['binary_filesize'],
            'source_uploaded': updown_data['source_uploaded'],
        }
        if delta_format:
            data['delta_format'] = delta_format
            data['delta_hash'] = delta_hash
            data['source_hash'] = source_hash
            data['target_hash'] = target_hash
        auth = _macaroon_auth(self.conf)
        response = self.post('snap-push/',
                             data=json.dumps(data),
                             headers={
                                 'Authorization': auth,
                                 'Content-Type': 'application/json',
                                 'Accept': 'application/json'
                             })
        if not response.ok:
            raise errors.StorePushError(data['name'], response)

        return StatusTracker(response.json()['status_details_url'])
Exemple #2
0
 def snap_push_precheck(self, snap_name):
     data = {
         'name': snap_name,
         'dry_run': True,
     }
     auth = _macaroon_auth(self.conf)
     response = self.post(
         'snap-push/', data=json.dumps(data),
         headers={'Authorization': auth,
                  'Content-Type': 'application/json',
                  'Accept': 'application/json'})
     if not response.ok:
         raise errors.StorePushError(data['name'], response)