Passed
Push — master ( 6525cc...6b94a1 )
by -
01:42
created

spike_init()   A

Complexity

Conditions 3

Size

Total Lines 21

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 3
dl 0
loc 21
rs 9.3142
1
#! /usr/bin/env python
2
3
import os
4
import logging
5
import argparse
6
from os.path import dirname, abspath
7
from time import time, strftime, localtime
8
9
from spike import create_app, seeds, version
10
from spike.model import db
11
from spike.model.naxsi_rulesets import NaxsiRuleSets
12
13
14
def run(debug=False):
15
    app = create_app(__get_config_file())
16
    db.init_app(app)
17
    app.test_request_context().push()
18
19
    try:
20
        host = app.config["APP_HOST"]
21
    except:
22
        host = '127.0.0.1'
23
24
    try:
25
        port = int(app.config["APP_HPOST"])
26
    except:
27
        port = 5555
28
29
    app.run(debug=debug, host=host, port=port)
30
31
32
def spike_init():
33
    logging.info("Initializing Spike")
34
    timestamp = int(time())
35
36
    app = create_app(__get_config_file())
37
38
    app.test_request_context().push()
39
    db.init_app(app)
40
41
    with app.app_context():
42
        db.create_all()
43
44
    logging.info("Filling default_vals")
45
46
    for r in seeds.rulesets_seeds:
47
        logging.info("Adding ruleset: %s", r)
48
        rmks = "Ruleset for %s / auto-created %s" % (r, strftime("%F - %H:%M", localtime(time())))
49
        db.session.add(NaxsiRuleSets(r, rmks, timestamp))
50
51
    db.session.commit()
52
    logging.info('Spike initialization completed')
53
54
55
def __get_config_file():
56
    return os.path.join(dirname(abspath(__name__)), 'config.cfg')
57
58
59
if __name__ == "__main__":
60
    logging.basicConfig(level=logging.DEBUG, format='%(message)s')
61
    parser = argparse.ArgumentParser(description='Spike %s' % version)
62
    parser.add_argument('command', help='Run the spike server', choices=['run', 'init'])
63
    parser.add_argument('-d', '--debug', help='Run server in debug mode', action='store_true')
64
    args = parser.parse_args()
65
66
    if args.command == 'run':
67
        run(args.debug)
68
    elif args.command == 'init':
69
        spike_init()
70