def _main(): datadog.initialize(api_key=get_environment_value('DATADOG_API_KEY'), app_key=get_environment_value('DATADOG_APP_KEY')) with contextlib.closing(asyncio.get_event_loop()) as loop: _schedule_backup(loop) try: loop.run_forever() except KeyboardInterrupt: _logger.info('Interrupted') sys.exit(0)
def _main(): datadog.initialize( api_key=get_environment_value('DATADOG_API_KEY'), app_key=get_environment_value('DATADOG_APP_KEY') ) with contextlib.closing(asyncio.get_event_loop()) as loop: _schedule_backup(loop) try: loop.run_forever() except KeyboardInterrupt: _logger.info('Interrupted') sys.exit(0)
def _backup(loop): """Perform actual backup.""" def post_datadog_event(title, text, alert_type): datadog.api.Event.create(title=title, text=text, alert_type=alert_type) success = False error = None for attempt in range(1, 4): now = datetime.now() _logger.info('Backup attempt #{} at {}...'.format( attempt, now.strftime('%Y-%m-%d %H:%M:%S'))) try: backup_rethinkdb( get_environment_value('RETHINKDB_HOST'), get_environment_value('RETHINKDB_BACKUP_S3_BUCKET'), True) except Exception as err: error = err import traceback traceback.print_exc() _logger.warn('Backup attempt #{} failed'.format(attempt)) time.sleep(1) else: success = True break if success: _logger.info('Backed up successfully!') post_datadog_event( 'RethinkDB Backup Success', 'RethinkDB was successfully backed up', 'success') else: _logger.error('Failed to back up!') post_datadog_event( 'RethinkDB Backup Failure', 'Failed to back up RethinkDB: {}'.format(error), 'error') _logger.debug('Scheduling next backup') _schedule_backup(loop)
def _backup(loop): """Perform actual backup.""" def post_datadog_event(title, text, alert_type): datadog.api.Event.create(title=title, text=text, alert_type=alert_type) success = False error = None for attempt in range(1, 4): now = datetime.now() _logger.info('Backup attempt #{} at {}...'.format( attempt, now.strftime('%Y-%m-%d %H:%M:%S'))) try: backup_rethinkdb( get_environment_value('RETHINKDB_HOST'), get_environment_value('RETHINKDB_BACKUP_S3_BUCKET'), True) except Exception as err: error = err import traceback traceback.print_exc() _logger.warn('Backup attempt #{} failed'.format(attempt)) time.sleep(1) else: success = True break if success: _logger.info('Backed up successfully!') post_datadog_event('RethinkDB Backup Success', 'RethinkDB was successfully backed up', 'success') else: _logger.error('Failed to back up!') post_datadog_event('RethinkDB Backup Failure', 'Failed to back up RethinkDB: {}'.format(error), 'error') _logger.debug('Scheduling next backup') _schedule_backup(loop)