def sign(self, payload): if isinstance(payload, str): # pragma: nocover payload = payload.encode("utf-8") b64_payload = base64.b64encode(payload) url = urljoin(self.server_url, "/sign/data") resp = requests.post(url, auth=self.auth, json=[{ "input": b64_payload.decode("utf-8") }]) resp.raise_for_status() signature_bundle = resp.json()[0] # Critical fields must be present, will raise if missing. infos = {field: signature_bundle[field] for field in SIGNATURE_FIELDS} # Other fields are returned and will be stored as part of the signature. # but client won't break if they are missing, so don't raise. infos.update( **{ field: signature_bundle[field] for field in EXTRA_SIGNATURE_FIELDS if field in signature_bundle }) logger.info("Obtained %s response from Autograph %s" % (resp.status_code, signature_bundle["ref"])) return infos
def render_template(template, destination, **kwargs): template = os.path.join(HERE, template) folder = os.path.dirname(destination) if folder and not os.path.exists(folder): os.makedirs(folder) logger.info("Created config {}".format(os.path.abspath(destination))) with codecs.open(template, 'r', encoding='utf-8') as f: raw_template = f.read() rendered = raw_template.format(**kwargs) with codecs.open(destination, 'w+', encoding='utf-8') as output: output.write(rendered)
def delete_collection(env, bucket_id, collection_id): registry = env['registry'] settings = registry.settings readonly_mode = asbool(settings.get('readonly', False)) if readonly_mode: message = ('Cannot delete the collection while in readonly mode.') logger.error(message) return 31 bucket = '/buckets/{}'.format(bucket_id) collection = '/buckets/{}/collections/{}'.format(bucket_id, collection_id) try: registry.storage.get(collection_id='bucket', parent_id='', object_id=bucket_id) except storage_exceptions.RecordNotFoundError: logger.error("Bucket '{}' does not exist.".format(bucket)) return 32 try: registry.storage.get(collection_id='collection', parent_id=bucket, object_id=collection_id) except storage_exceptions.RecordNotFoundError: logger.error("Collection '{}' does not exist.".format(collection)) return 33 deleted = registry.storage.delete_all(collection_id='record', parent_id=collection, with_deleted=False) if len(deleted) == 0: logger.info("No records found for '{}'.".format(collection)) else: logger.info('{} record(s) were deleted.'.format(len(deleted))) registry.storage.delete(collection_id='collection', parent_id=bucket, object_id=collection_id, with_deleted=False) logger.info("'{}' collection object was deleted.".format(collection)) record = ('/buckets/{bucket_id}' '/collections/{collection_id}' '/records/{record_id}') registry.permission.delete_object_permissions( collection, *[ record.format(bucket_id=bucket_id, collection_id=collection_id, record_id=r['id']) for r in deleted ]) logger.info('Related permissions were deleted.') current_transaction.commit() return 0
def delete_collection(env, bucket_id, collection_id): registry = env['registry'] settings = registry.settings readonly_mode = asbool(settings.get('readonly', False)) if readonly_mode: message = ('Cannot delete the collection while in readonly mode.') logger.error(message) return 31 bucket = '/buckets/%s' % bucket_id collection = '/buckets/%s/collections/%s' % (bucket_id, collection_id) try: registry.storage.get(collection_id='bucket', parent_id='', object_id=bucket_id) except storage_exceptions.RecordNotFoundError: logger.error("Bucket %r does not exist." % bucket) return 32 try: registry.storage.get(collection_id='collection', parent_id=bucket, object_id=collection_id) except storage_exceptions.RecordNotFoundError: logger.error("Collection %r does not exist." % collection) return 33 deleted = registry.storage.delete_all(collection_id='record', parent_id=collection, with_deleted=False) if len(deleted) == 0: logger.info('No records found for %r.' % collection) else: logger.info('%d record(s) were deleted.' % len(deleted)) registry.storage.delete(collection_id='collection', parent_id=bucket, object_id=collection_id, with_deleted=False) logger.info("%r collection object was deleted." % collection) record = ('/buckets/{bucket_id}' '/collections/{collection_id}' '/records/{record_id}') registry.permission.delete_object_permissions( collection, *[record.format(bucket_id=bucket_id, collection_id=collection_id, record_id=r['id']) for r in deleted]) logger.info('Related permissions were deleted.') current_transaction.commit() return 0