Test Setup Failed
Push — master ( 9fdcd8...5b10e8 )
by -
01:16
created

spike_init()   B

Complexity

Conditions 5

Size

Total Lines 25

Duplication

Lines 0
Ratio 0 %
Metric Value
cc 5
dl 0
loc 25
rs 8.0894
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,  NaxsiRuleSets
11
from spike.model.naxsi_rules import ValueTemplates
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
    for v in seeds.vtemplate_seeds:
46
        logging.info("Adding templates: %s" , v)
47
        for val in seeds.vtemplate_seeds[v]:
48
            db.session.add(ValueTemplates(v, val))
49
50
    for r in seeds.rulesets_seeds:
51
        logging.info("Adding ruleset: %s / %s", r, seeds.rulesets_seeds[r])
52
        rmks = "Ruleset for %s / auto-created %s" % (r, strftime("%F - %H:%M", localtime(time())))
53
        db.session.add(NaxsiRuleSets(seeds.rulesets_seeds[r], r, rmks, timestamp))
54
55
    db.session.commit()
56
    logging.info('Spike initialization completed')
57
58
59
def __get_config_file():
60
    return os.path.join(dirname(abspath(__name__)), 'config.cfg')
61
62
63
if __name__ == "__main__":
64
    logging.basicConfig(level=logging.DEBUG, format='%(message)s')
65
    parser = argparse.ArgumentParser(description='Spike %s' % version)
66
    parser.add_argument('command', help='Run the spike server', choices=['run', 'init'])
67
    parser.add_argument('-d', '--debug', help='Run server in debug mode', action='store_true')
68
    args = parser.parse_args()
69
70
    if args.command == 'run':
71
        run(args.debug)
72
    elif args.command == 'init':
73
        spike_init()
74