def main():
    """Remove invalid auth data."""
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument(
        '-c', '--commit',
        action='store_true',
        dest='commit',
        default=False,
        help='Actually remove the invalid auth data.'
    )

    Cerebrum.logutils.options.install_subparser(parser)
    args = parser.parse_args()
    Cerebrum.logutils.autoconf('cronjob', args)

    logger.info('START {0}'.format(parser.prog))
    db = Factory.get('Database')()
    db.cl_init(change_program='clean_invalid_bofh_auth_data.py')

    baot = BofhdAuthOpTarget(db)
    bar = BofhdAuthRole(db)
    bar_count = bar.count_invalid()
    baot_count = baot.count_invalid()

    try:
        bar.remove_invalid()
        baot.remove_invalid()

    except DatabaseError as e:
        db.rollback()
        logger.error(
            'Error removing invalid auth data {0}. Rolling back any changes'
            .format(e))
        raise

    bar_count_after = bar.count_invalid()
    baot_count_after = baot.count_invalid()

    logger.info('Removing {0} invalid entries in auth_roles'.format(
        bar_count - bar_count_after))
    logger.info('Removing {0} invalid entries in auth_op_targets'.format(
        baot_count - baot_count_after))

    if args.commit:
        logger.info('Committing changes.')
        db.commit()
    else:
        logger.info('Rolling back changes.')
        db.rollback()

    logger.info('DONE {0}'.format(parser.prog))
def main():
    """Remove invalid auth data."""
    parser = argparse.ArgumentParser(description=__doc__)
    parser.add_argument(
        '-c', '--commit',
        action='store_true',
        dest='commit',
        default=False,
        help='Actually remove the invalid auth data.'
    )

    Cerebrum.logutils.options.install_subparser(parser)
    args = parser.parse_args()
    Cerebrum.logutils.autoconf('cronjob', args)

    logger.info('START {0}'.format(parser.prog))
    db = Factory.get('Database')()
    db.cl_init(change_program='clean_invalid_bofh_auth_data.py')

    baot = BofhdAuthOpTarget(db)
    bar = BofhdAuthRole(db)
    bar_count = bar.count_invalid()
    baot_count = baot.count_invalid()

    try:
        bar.remove_invalid()
        baot.remove_invalid()

    except DatabaseError as e:
        db.rollback()
        logger.error(
            'Error removing invalid auth data {0}. Rolling back any changes'
            .format(e))
        raise

    bar_count_after = bar.count_invalid()
    baot_count_after = baot.count_invalid()

    logger.info('Removing {0} invalid entries in auth_roles'.format(
        bar_count - bar_count_after))
    logger.info('Removing {0} invalid entries in auth_op_targets'.format(
        baot_count - baot_count_after))

    if args.commit:
        logger.info('Committing changes.')
        db.commit()
    else:
        logger.info('Rolling back changes.')
        db.rollback()

    logger.info('DONE {0}'.format(parser.prog))