in functions/source/KubeGet/lambda_function.py [0:0]
def create_handler(event, _):
print('Received event: %s' % json.dumps(event))
create_kubeconfig(event['ResourceProperties']['ClusterName'])
name = event['ResourceProperties']['Name']
retry_timeout = 0
if "Timeout" in event['ResourceProperties']:
retry_timeout = int(event['ResourceProperties']["Timeout"])
if retry_timeout > 600:
retry_timeout = 600
namespace = event['ResourceProperties']['Namespace']
json_path = event['ResourceProperties']['JsonPath']
while True:
try:
outp = run_command('kubectl get %s -o jsonpath="%s" --namespace %s' % (name, json_path, namespace))
break
except Exception as e:
if retry_timeout < 1:
raise
else:
logging.error('Exception: %s' % e, exc_info=True)
print("retrying until timeout...")
time.sleep(5)
retry_timeout = retry_timeout - 5
response_data = {}
if "ResponseKey" in event['ResourceProperties']:
response_data[event['ResourceProperties']["ResponseKey"]] = outp
if len(outp.encode('utf-8')) > 1000:
outp = 'MD5-' + str(md5(outp.encode('utf-8')).hexdigest())
helper.Data.update(response_data)
return outp