tools/Salesforce2OneCRL-scheduler/scheduler.py (39 lines of code) (raw):

#!/usr/bin/env python from base64 import b64decode import boto3 import os, sys import subprocess EXCEPTIONS_URL = 'https://raw.githubusercontent.com/mozilla/OneCRL-Tools/master/salesforce2OneCRL/data/exceptions.json' def kms_decrypt(encrypted_data): """Decrypt KMS variables""" res = boto3.client("kms").decrypt( CiphertextBlob=encrypted_data, ) return res["Plaintext"].decode("utf-8") def kms_decrypt_env(key): """Decrypt environment variable""" return kms_decrypt(b64decode(os.environ[key])) def ccadb_import(event, context): lambda_task_root = "." binary_args = [ '--exceptions', EXCEPTIONS_URL ] env = os.environ.copy() if 'LAMBDA_TASK_ROOT' in os.environ: lambda_task_root = os.environ['LAMBDA_TASK_ROOT'] if 'PROTECTED_KINTO_USER' in os.environ: kinto_user = str(kms_decrypt_env("PROTECTED_KINTO_USER")) env['kintouser'] = kinto_user if 'PROTECTED_KINTO_PASS' in os.environ: kinto_pass = str(kms_decrypt_env("PROTECTED_KINTO_PASS")) env['kintopass'] = kinto_pass if 'PROTECTED_BUGZILLA_KEY' in os.environ: bugzilla_key = str(kms_decrypt_env("PROTECTED_BUGZILLA_KEY")) env['bzapikey'] = bugzilla_key variables = 'PATH="%s" LAMBDA_TASK_ROOT="%s"' % (os.environ['PATH'], lambda_task_root) subprocess_call_args = [lambda_task_root + '/salesforce2OneCRL'] subprocess_call_args.extend(binary_args) print("Calling CCADB import client using: %s and args %s" % (variables, " ".join(subprocess_call_args))) exit_code = subprocess.call(subprocess_call_args, env=env) if exit_code > 0: raise ValueError("CCADB import failed! Check the logs for more information.") if __name__ == '__main__': ccadb_import(None, None)