This repository has been archived on 2025-09-14. You can view files and clone it, but cannot push or open issues or pull requests.
Files
pxz-hos-client-cpp-module/support/aws-sdk-cpp-master/CI/trebuchet-release-pipeline/UpdateStatus.py

45 lines
1.7 KiB
Python

import os
import json
import boto3
import argparse
UPDATE_STATUS_LAMBDA_FUNCTION_NAME = os.environ['UPDATE_STATUS_LAMBDA_FUNCTION_NAME']
lambdaClient = boto3.client('lambda', region_name = os.environ['AWS_REGION'])
def main():
parser = argparse.ArgumentParser()
parser.add_argument('-s', '--stage_name', default = 'Unknown')
parser.add_argument('-e', '--internal_message', default = '')
parser.add_argument('-i', '--release_id', default = '')
parser.add_argument('-m', '--status_message', default = '')
parser.add_argument('-b', '--build_succeeding', default = '0')
parser.add_argument('-o', '--internal_only', action = 'store_true')
parser.add_argument('-c', '--release_complete', action = 'store_true')
args = parser.parse_args()
updateStatus({
'stageName': args.stage_name,
'internalMessage': args.internal_message,
'internalOnly': args.internal_only,
'messageToTrebuchet': {
'releaseId' : args.release_id,
'language' : 'CPP',
'releaseState' : 'Success' if args.release_complete else ('InProgress' if args.build_succeeding == '1' else 'Blocked'),
'statusMessage' : args.status_message
}
})
def updateStatus(updateStatusMessage):
print('[Lambda] Triggering Lambda function to update status:', end = ' ')
print(updateStatusMessage)
response = lambdaClient.invoke(
FunctionName = UPDATE_STATUS_LAMBDA_FUNCTION_NAME,
InvocationType = 'RequestResponse',
Payload = json.dumps(updateStatusMessage)
)
print('Response:', end = ' ')
print(response)
if response['ResponseMetadata']['HTTPStatusCode'] != 200:
quit(1)
main()