aws/hhvm1/lambdas/check_for_failures.py (16 lines of code) (raw):
# Copyright (c) 2017-present, Facebook, Inc.
# All rights reserved.
#
# This source code is licensed under the MIT license found in the
# LICENSE file in the root directory of this source tree.
from common import Config
def lambda_handler(event, context=None):
failures = get_failures(event)
if failures:
raise Exception('The following steps have failed:\n' + '\n'.join(failures))
return event
def get_failures(results, context=[]):
failures = []
for state_name, result in results.items():
if state_name in Config.map_states:
for key, inner_results in result.items():
failures += get_failures(inner_results, context + [key])
elif 'failure' in result:
words = [state_name] + context + [result['failure'].get('Cause', '')]
failures += [' '.join(words)]
return failures