diff --git a/src/resources.py b/src/resources.py index bcf7a67..b3dfe42 100755 --- a/src/resources.py +++ b/src/resources.py @@ -6,6 +6,7 @@ import signal import sys import traceback +import json from collections import defaultdict from multiprocessing import Process from time import sleep @@ -54,6 +55,14 @@ def signal_handler(signum, frame): signal.signal(signal.SIGTERM, signal_handler) +def prepare_payload(payload): + """Prepare payload as dict for request.""" + try: + payload_dict = json.loads(payload) + return payload_dict + except ValueError as err: + logger.warning(f"Payload will be posted as quoted json") + return payload def _get_file_data_and_name(full_filename, content, enable_5xx, content_type=CONTENT_TYPE_TEXT): if content_type == CONTENT_TYPE_BASE64_BINARY: diff --git a/src/sidecar.py b/src/sidecar.py index 4810fee..a3b169b 100755 --- a/src/sidecar.py +++ b/src/sidecar.py @@ -60,7 +60,10 @@ def main(): request_method = os.getenv(REQ_METHOD) request_url = os.getenv(REQ_URL) + request_payload = os.getenv(REQ_PAYLOAD) + if request_payload: + request_payload = prepare_payload(os.getenv(REQ_PAYLOAD)) script = os.getenv(SCRIPT) _initialize_kubeclient_configuration()