Exemple #1
0
def setup_database():
    """ Create an empty database and structure """
    DBSession.remove()
    engine = create_engine('sqlite://')
    Base.metadata.create_all(engine)
    DBSession.configure(bind=engine)
    return DBSession
Exemple #2
0
def setup_database():
    """ Create an empty database and structure """
    DBSession.remove()
    engine = create_engine('sqlite://')
    Base.metadata.create_all(engine)
    DBSession.configure(bind=engine)
    return DBSession
Exemple #3
0
def main(argv=sys.argv):
    parser = ArgumentParser(description=__doc__,
                            formatter_class=RawTextHelpFormatter)
    parser.add_argument('-v', '--verbose', action='count')
    parser.add_argument('-S', '--send', action='store_true', default=False)
    parser.add_argument('--active', action='store_true', default=True)
    parser.add_argument('-s', '--subject', action='store')
    parser.add_argument('config')
    parser.add_argument('textfile')

    args = parser.parse_args()

    log_level = logging.WARNING
    if args.verbose is not None:
        verbose = int(args.verbose)
        if verbose == 1:
            log_level = logging.INFO
        elif verbose >= 2:
            log_level = logging.DEBUG
    logging.basicConfig(level=log_level)

    config_uri = args.config
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)

    mailer = mailer_factory_from_settings(settings)

    if not args.subject:
        print('Require a subject.')
        exit(1)

    message_in = open(args.textfile, 'r').read()
    if not message_in:
        print('Require a message.')
        exit(1)

    q = DBSession.query(User)
    q = q.filter(User.email != '')
    q = q.filter(User.email is not None)
    if args.active:
        q = q.filter_by(is_paid=True)
    users = list(q.all())

    print('Sending to: %d users.' % (len(users)))
    if args.verbose:
        for u in users:
            print('- %s [%s]' % (u.email, u.username))

    for u in users:
        if not args.send:
            print('Not sending message to %s.' % u.email)
            continue
        message = Message(subject=args.subject,
                          recipients=[u.email],
                          body=message_in)
        mailer.send_immediately(message)
Exemple #4
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    checkbtcorders(settings)
Exemple #5
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    initialize_db()
Exemple #6
0
def main(argv=sys.argv):
    if len(argv) != 2:
        usage(argv)
    config_uri = argv[1]
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)
    with transaction.manager:
        checkbtcorders(settings)
Exemple #7
0
def main(argv=sys.argv):
    parser = ArgumentParser(description=__doc__,
                            formatter_class=RawTextHelpFormatter)
    parser.add_argument('-v', '--verbose', action='count')
    parser.add_argument('-s', '--send', action='store_true', default=False)
    parser.add_argument('config')

    args = parser.parse_args()

    log_level = logging.WARNING
    if args.verbose is not None:
        verbose = int(args.verbose)
        if verbose == 1:
            log_level = logging.INFO
        elif verbose >= 2:
            log_level = logging.DEBUG
    logging.basicConfig(level=log_level)

    config_uri = args.config
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)

    if 'mako.directories' not in settings:
        settings['mako.directories'] = 'ccvpn:templates/'
    if 'mako.imports' not in settings:
        settings['mako.imports'] = 'from ccvpn.filters import check'
    config = Configurator(settings=settings)
    config.include('pyramid_mako')
    config.commit()
    config.begin()

    mailer = mailer_factory_from_settings(settings)

    try:
        days = int(settings.get('expire_mail_days', 3))
    except ValueError:
        log.warning('Invalid integer value for expire_mail_days. Using default')
        days = 3

    users = get_future_expire(days) + get_expired()

    if args.send:
        for u in users:
            print('sending notice to %s (%s)' % (u.username, u.email))
            send_notice(u, mailer)
        transaction.commit()
    else:
        for u in users:
            print('not sending notice to %s (%s)' % (u.username, u.email))
        print('Use -s to send messages')
Exemple #8
0
def main(argv=sys.argv):
    parser = ArgumentParser(description=__doc__,
                            formatter_class=RawTextHelpFormatter)
    parser.add_argument('-v', '--verbose', action='count',
                        help='Increase verbosity')
    parser.add_argument('config')

    subparsers = parser.add_subparsers(title='subcommands')
    parser_add = subparsers.add_parser('add', help='add API access token')
    parser_add.set_defaults(func=add)
    parser_add.add_argument('label')
    parser_add.add_argument('-t', '--token', default='')
    parser_add.add_argument('-r', '--remote-addr', default='')

    parser_rev = subparsers.add_parser('rev', help='revoke API access token')
    parser_rev.set_defaults(func=revoke)
    parser_rev.add_argument('-n', '--label', default='')
    parser_rev.add_argument('-t', '--token', default='')
    parser_rev.add_argument('-r', '--remote-addr', default='')
    parser_rev.add_argument('-y', '--yes', default=False, action='store_true',
                            help='Dont ask for confirmation')
    parser_rev.add_argument('-f', '--force', default=False,
                            action='store_true',
                            help='Revoke even if multiple found')

    args = parser.parse_args()

    log_level = logging.WARNING
    if args.verbose is not None:
        verbose = int(args.verbose)
        if verbose == 1:
            log_level = logging.INFO
        elif verbose >= 2:
            log_level = logging.DEBUG
    logging.basicConfig(level=log_level)

    config_uri = args.config
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)

    args.func(args)
Exemple #9
0
def main(argv=sys.argv):
    parser = ArgumentParser(description=__doc__,
                            formatter_class=RawTextHelpFormatter)
    parser.add_argument('-v', '--verbose', action='count',
                        help='Increase verbosity')
    parser.add_argument('config')

    subparsers = parser.add_subparsers(title='subcommands')
    parser_add = subparsers.add_parser('add', help='add API access token')
    parser_add.set_defaults(func=add)
    parser_add.add_argument('label')
    parser_add.add_argument('-t', '--token', default='')
    parser_add.add_argument('-r', '--remote-addr', default='')

    parser_rev = subparsers.add_parser('rev', help='revoke API access token')
    parser_rev.set_defaults(func=revoke)
    parser_rev.add_argument('-n', '--label', default='')
    parser_rev.add_argument('-t', '--token', default='')
    parser_rev.add_argument('-r', '--remote-addr', default='')
    parser_rev.add_argument('-y', '--yes', default=False, action='store_true',
                            help='Dont ask for confirmation')
    parser_rev.add_argument('-f', '--force', default=False,
                            action='store_true',
                            help='Revoke even if multiple found')

    args = parser.parse_args()

    log_level = logging.WARNING
    if args.verbose is not None:
        verbose = int(args.verbose)
        if verbose == 1:
            log_level = logging.INFO
        elif verbose >= 2:
            log_level = logging.DEBUG
    logging.basicConfig(level=log_level)

    config_uri = args.config
    setup_logging(config_uri)
    settings = get_appsettings(config_uri)
    engine = engine_from_config(settings, 'sqlalchemy.')
    DBSession.configure(bind=engine)

    args.func(args)
Exemple #10
0
    def setUp(self):
        if not 'mako.directories' in self.settings:
            self.settings['mako.directories'] = 'ccvpn:templates/'
        if not 'mako.imports' in self.settings:
            self.settings['mako.imports'] = 'from ccvpn.filters import check'

        self.config = testing.setUp(settings=self.settings)
        self.config.include('pyramid_mailer.testing')
        self.config.include('pyramid_mako')
        self.config.include('pyramid_beaker')
        self.config.include('pyramid_mailer.testing')
        setup_routes(self.config)

        DBSession.remove()

        #self.engine = engine_from_config(settings, 'sqlalchemy.')
        self.conn = self.engine.connect()
        self.trans = self.conn.begin()

        DBSession.configure(bind=self.conn)
        Base.metadata.create_all(self.engine)
        self.session = DBSession
Exemple #11
0
    def setUp(self):
        if not 'mako.directories' in self.settings:
            self.settings['mako.directories'] = 'ccvpn:templates/'
        if not 'mako.imports' in self.settings:
            self.settings['mako.imports'] = 'from ccvpn.filters import check'

        self.config = testing.setUp(settings=self.settings)
        self.config.include('pyramid_mailer.testing')
        self.config.include('pyramid_mako')
        self.config.include('pyramid_beaker')
        self.config.include('pyramid_mailer.testing')
        setup_routes(self.config)

        DBSession.remove()

        #self.engine = engine_from_config(settings, 'sqlalchemy.')
        self.conn = self.engine.connect()
        self.trans = self.conn.begin()

        DBSession.configure(bind=self.conn)
        Base.metadata.create_all(self.engine)
        self.session = DBSession
Exemple #12
0
 def setUp(self):
     self.config = testing.setUp()
     engine = create_engine('sqlite://')
     DBSession.configure(bind=engine)
Exemple #13
0
 def setUp(self):
     self.config = testing.setUp()
     engine = create_engine('sqlite://')
     DBSession.configure(bind=engine)