in github-runner-ami/packer/files/runner-supervisor.py [0:0]
def complete_asg_lifecycle_hook(hook_name='WaitForInstanceReportReady', retry=False):
global OWN_ASG, INSTANCE_ID
# Notify the ASG LifeCycle hook that we are now InService and ready to
# process requests/safe to be shut down
asg_client = boto3.client('autoscaling')
try:
asg_client.complete_lifecycle_action(
AutoScalingGroupName=OWN_ASG,
InstanceId=INSTANCE_ID,
LifecycleHookName=hook_name,
LifecycleActionResult='CONTINUE',
)
log.info("LifeCycle hook %s set to CONTINUE instance=%s", hook_name, INSTANCE_ID)
except asg_client.exceptions.ClientError as e:
# If the script fails for whatever reason and we re-run, the lifecycle hook may have already be
# completed, so this would fail. That is not an error
# We don't want the stacktrace here, just the message
log.warning("Failed to complete lifecycle hook %s: %s", hook_name, str(e))
pass