-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathparser.py
More file actions
executable file
·33 lines (23 loc) · 1.14 KB
/
parser.py
File metadata and controls
executable file
·33 lines (23 loc) · 1.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/usr/bin/env python
import logging
from time import perf_counter
import arculusfireio.utils.config
import arculusfireio.utils.yaml
import arculusfireio.parser
if __name__ == "__main__":
logger = logging.getLogger("root")
timer_start = perf_counter()
config = arculusfireio.utils.config.read_config()
arculusfireio.utils.config.set_loglevel(config)
firewalls = arculusfireio.utils.yaml.read(config["general"]["firewall_definitions"])
# parse the `rules` file
rules = arculusfireio.parser.parse_rules(config)
# prepare data for each configured firewall (written out to `generated_rules/$name`)
for firewall in firewalls["firewalls"]:
fw = firewall["name"]
firewall = arculusfireio.parser.get_firewall(fw, firewalls["firewalls"])
rules_local, rules_forwarding = arculusfireio.parser.prepare_firewall(firewall, rules)
arculusfireio.parser.write_rules(firewall, rules_local, rules_forwarding, config["general"]["workdir"])
timer_finish = perf_counter()
runtime_in_ms = round((timer_finish - timer_start) * 1000, 4)
logger.debug("Script ran for {}ms".format(runtime_in_ms))