예제 #1
0
파일: db.py 프로젝트: rfResearch/udata
def status_label(record):
    if record.ok:
        return green(record.last_date.strftime(DATE_FORMAT))
    elif not record.exists():
        return yellow('Not applied')
    else:
        return red(record.status)
예제 #2
0
def format_output(output, success=True):
    echo('  │')
    for level, msg in output:
        echo('  │ {0}'.format(msg))
    echo('  │')
    echo('  └──[{0}]'.format(green('OK') if success else red('KO')))
    echo('')
예제 #3
0
def get_queues(queue):
    queues = [q.name for q in current_app.config['CELERY_TASK_QUEUES']]
    if queue:
        queues = [q for q in queues if q == queue]
    if not len(queues):
        print(red('Error: no queue found'))
        sys.exit(-1)
    return queues
예제 #4
0
파일: db.py 프로젝트: rfResearch/udata
def format_output(output, success=True, traceback=None):
    echo('  │')
    for level, msg in output:
        echo('  │ {0}'.format(msg))
    echo('  │')
    if traceback:
        for tb in traceback.split('\n'):
            echo('  │ {0}'.format(tb))
    echo('  │')
    echo('  └──[{0}]'.format(green('OK') if success else red('KO')))
    echo('')
예제 #5
0
def status_print_config(queue):
    if not queue:
        print(red('--munin-config called without a --queue parameter'))
        sys.exit(-1)
    tasks = cache.get(TASKS_LIST_CACHE_KEY) or []
    if not tasks:
        registered = inspect().registered_tasks()
        if registered:
            for w, tasks_list in registered.iteritems():
                tasks += [t for t in tasks_list if t not in tasks]
            cache.set(TASKS_LIST_CACHE_KEY,
                      tasks,
                      timeout=TASKS_LIST_CACHE_DURATION)
    print('graph_title Waiting tasks for queue %s' % queue)
    print('graph_vlabel Nb of tasks')
    print('graph_category celery')
    for task in tasks:
        print('%s.label %s' % (format_field_for_munin(task), task))
예제 #6
0
파일: db.py 프로젝트: rfResearch/udata
def migrate(record, dry_run=False):
    '''Perform database migrations'''
    success = True
    for migration in migrations.list_available():
        if migration.record.ok or not success:
            log_status(migration, cyan('Skipped'))
        else:
            status = magenta('Recorded') if record else yellow('Apply')
            log_status(migration, status)
            try:
                output = migration.execute(recordonly=record, dryrun=dry_run)
            except migrations.RollbackError as re:
                format_output(re.migrate_exc.output, False)
                log_status(migration, red('Rollback'))
                format_output(re.output, not re.exc)
                success = False
            except migrations.MigrationError as me:
                format_output(me.output, False, traceback=me.traceback)
                success = False
            else:
                format_output(output, True)
    return success
예제 #7
0
def execute_migration(plugin, filename, script, dryrun=False):
    '''Execute and record a migration'''
    db = get_db(DEFAULT_CONNECTION_NAME)
    js = SCRIPT_WRAPPER.format(script)
    lines = script.splitlines()
    success = True
    if not dryrun:
        try:
            lines = db.eval(js, plugin, filename, script)
        except OperationFailure as e:
            log.error(e.details['errmsg'].replace('\n', '\\n'))
            success = False
        except PyMongoError as e:
            log.error('Unable to apply migration: %s', str(e))
            success = False
    print('│')
    for line in lines:
        print('│ {0}'.format(line))
    print('│')
    print('└──[{0}]'.format(green('OK') if success else red('KO')))
    print('')
    return success
예제 #8
0
파일: db.py 프로젝트: anukat2015/udata
def execute_migration(plugin, filename, script, dryrun=False):
    '''Execute and record a migration'''
    db = get_db(DEFAULT_CONNECTION_NAME)
    js = SCRIPT_WRAPPER.format(script)
    lines = script.splitlines()
    success = True
    if not dryrun:
        try:
            lines = db.eval(js, plugin, filename, script)
        except OperationFailure as e:
            log.error(e.details['errmsg'].replace('\n', '\\n'))
            success = False
        except PyMongoError as e:
            log.error('Unable to apply migration: %s', str(e))
            success = False
    print('│')
    for line in lines:
        print('│ {0}'.format(line))
    print('│')
    print('└──[{0}]'.format(green('OK') if success else red('KO')))
    print('')
    return success
예제 #9
0
파일: info.py 프로젝트: odtvince/udata
def is_active(ep, actives):
    return green(OK) if ep.name in actives else red(KO)
예제 #10
0
def is_active(ep, actives):
    return green(OK) if ep.name in actives else red(KO)