"""Store Availability Report ETL runner.""" import raven from availability_etl import config from availability_etl import extract from availability_etl import load from availability_etl import transform from availability_etl import utils def main(): """Perform ETL process. Each function used here is expected to raise an exception in the case of fatal failure. It is the responsibility of all underlying utility functions to check individual operation status and fail loudly. """ sentry_client = raven.Client(config.SENTRY) try: load.load( transform.transformed( extract.extracted())) except: # Send exception information to Sentry and fail loudly. sentry_client.captureException() raise finally: utils.cleanup() if __name__ == '__main__': main()