test.py
author Tero Marttila <terom@paivola.fi>
Wed, 10 Oct 2012 22:10:16 +0300
changeset 2 b0659c867226
parent 0 91c739202f06
child 14 02c21749cb4f
permissions -rwxr-xr-x
fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
0
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     1
#!/usr/bin/python
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     2
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     3
from werkzeug.serving import run_simple
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     4
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     5
from pvl import __version__
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     6
import pvl.args
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     7
import pvl.verkko.wsgi
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     8
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
     9
import optparse
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    10
import logging; log = logging.getLogger('main')
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    11
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    12
def parse_argv (argv, doc = __doc__) :
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    13
    """
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    14
        Parse command-line argv, returning (options, args).
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    15
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    16
        Use pvl.ldap.args.apply() to get the LDAPClient
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    17
    """
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    18
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    19
    prog = argv.pop(0)
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    20
    args = argv
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    21
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    22
    # optparse
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    23
    parser = optparse.OptionParser(
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    24
        prog        = prog,
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    25
        usage       = '%prog: [options] [<user> [...]]',
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    26
        version     = __version__,
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    27
        description = doc,
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    28
    )
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    29
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    30
    # common
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    31
    parser.add_option_group(pvl.args.parser(parser))
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    32
2
b0659c867226 fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents: 0
diff changeset
    33
    parser.add_option('-d', '--database-read', default='sqlite:///var/verkko.db',
b0659c867226 fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents: 0
diff changeset
    34
        help="Database to use (readonly)")
b0659c867226 fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents: 0
diff changeset
    35
0
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    36
    # parse
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    37
    options, args = parser.parse_args(args)
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    38
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    39
    # apply
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    40
    pvl.args.apply(options)
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    41
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    42
    return options, args
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    43
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    44
def main (argv) :
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    45
    """
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    46
        Manage LDAP user dirs/symlinks/quotas on system.
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    47
    """
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    48
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    49
    # parse cmdline
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    50
    options, args = parse_argv(argv, doc=__doc__)
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    51
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    52
    # app
2
b0659c867226 fixup pvl.verkko.wsgi.Application + test.py/wsgi to remove default path from pvl.verkko.db
Tero Marttila <terom@paivola.fi>
parents: 0
diff changeset
    53
    application = pvl.verkko.wsgi.Application(options.database_read)
0
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    54
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    55
    # wsgi wrapper
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    56
    run_simple('0.0.0.0', 8080, application,
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    57
            #use_reloader    = True, 
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    58
            use_debugger    = (options.loglevel == logging.DEBUG),
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    59
            static_files    = {
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    60
                '/static':      'static',
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    61
            },
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    62
    )
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    63
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    64
if __name__ == '__main__' :
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    65
    import sys
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    66
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    67
    sys.exit(main(sys.argv))
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    68
91c739202f06 initial code for dhcp hosts
Tero Marttila <terom@paivola.fi>
parents:
diff changeset
    69