From 4eda0fb5cc2c41a735619dc3e34f21c4e27fd112 Mon Sep 17 00:00:00 2001 From: William Luke Date: Tue, 5 Jul 2022 11:12:54 +0300 Subject: [PATCH] fix: add auth headers to HTTPWriter --- cic/contract/contract.py | 11 +++++------ cic/contract/processor.py | 1 + cic/writers.py | 8 +++++--- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/cic/contract/contract.py b/cic/contract/contract.py index 5c22dd2..467b624 100644 --- a/cic/contract/contract.py +++ b/cic/contract/contract.py @@ -7,8 +7,6 @@ from typing import List # External imports from chainlib.chain import ChainSpec from chainlib.cli.config import Config -from cic_types.ext.metadata import MetadataRequestsHandler -from cic_types.ext.metadata.signer import Signer as MetadataSigner # Local Modules from cic.contract.components.attachment import Attachment @@ -19,7 +17,8 @@ from cic.contract.helpers import init_writers_from_config from cic.contract.network import Network from cic.contract.processor import ContractProcessor from cic.writers import HTTPWriter, KeyedWriterFactory, MetadataWriter - +from cic_types.ext.metadata import MetadataRequestsHandler +from cic_types.ext.metadata.signer import Signer as MetadataSigner log = logging.getLogger(__name__) @@ -149,7 +148,7 @@ def deploy_contract( metadata_endpoint = config.get("META_URL") metadata_auth_token = config.get("META_AUTH_TOKEN") - + headers = {"Authorization": f"Basic {metadata_auth_token}"} if metadata_endpoint is not None: MetadataRequestsHandler.base_url = metadata_endpoint MetadataRequestsHandler.auth_token = metadata_auth_token @@ -168,12 +167,12 @@ def deploy_contract( ) ca = Attachment( path=contract_directory, - writer=writers["attachment"](path=output_writer_path_meta), + writer=writers["attachment"](path=output_writer_path_meta, headers=headers), ) cp = Proof( path=contract_directory, attachments=ca, - writer=writers["proof"](path=output_writer_path_meta), + writer=writers["proof"](path=output_writer_path_meta, headers=headers), ) cn = Network(path=contract_directory) diff --git a/cic/contract/processor.py b/cic/contract/processor.py index c95238e..4e2b36e 100644 --- a/cic/contract/processor.py +++ b/cic/contract/processor.py @@ -84,6 +84,7 @@ class ContractProcessor: if a is None: logg.debug(f'skipping missing task receiver "{task}"') continue + logg.debug(f'Processing "{ext}:{task}"') v = a.process( token_address=token_address, token_symbol=token_symbol, diff --git a/cic/writers.py b/cic/writers.py index a4b1295..acaef20 100644 --- a/cic/writers.py +++ b/cic/writers.py @@ -5,7 +5,7 @@ import logging import os import sys import urllib.request -from typing import Type, Union +from typing import Dict, Type, Union from cic_types.ext.metadata import MetadataPointer, MetadataRequestsHandler @@ -33,6 +33,7 @@ class KVWriter(OutputWriter): os.makedirs(path) self.path = path super().__init__(*args, **kwargs) + def write(self, k, v): fp = os.path.join(self.path, str(k)) logg.debug(f"path write {fp} {str(v)}") @@ -42,16 +43,17 @@ class KVWriter(OutputWriter): class HTTPWriter(OutputWriter): - def __init__(self, path=None, *args, **kwargs): + def __init__(self, path=None, headers: Dict[str, str] = None, *args, **kwargs): super(HTTPWriter, self).__init__(*args, **kwargs) self.path = path + self.headers = headers def write(self, k, v): path = self.path if k is not None: path = os.path.join(path, k) logg.debug(f"http writer post {path} \n key: {k}, value: {v}") - rq = urllib.request.Request(path, method="POST", data=v) + rq = urllib.request.Request(path, method="POST", data=v, headers=self.headers) r = urllib.request.urlopen(rq) logg.info(f"http writer submitted at {r.read()}")