Always combine IP set data with static network definitions from NetBox
Before we relied on the combined data being present in ipsets.json when generating a new config, but ipsets.json is only updated through the form at /ipsets. So submitting any other form after changing NetBox definitions might crash when trying to find an entry from networks.json in ipsets.json. Now we introduce a helper functon to always read both files and combine the prefixes fron networks.json with ipsets.json. This way it is not necessary to save a new ipsets.json before other changes. Also don’t crash when enumerating networks for each VPN group.
This commit is contained in:
parent
b6c191e2ce
commit
048195c45c
5 changed files with 41 additions and 26 deletions
|
@ -2,6 +2,7 @@ import flask
|
|||
import flask_login
|
||||
|
||||
from . import db
|
||||
from . import ipsets
|
||||
from . import system
|
||||
|
||||
blueprint = flask.Blueprint('rules', __name__)
|
||||
|
@ -45,8 +46,7 @@ def edit(index):
|
|||
system.run(system.save_config)
|
||||
|
||||
with db.locked():
|
||||
ipsets = db.read('ipsets')
|
||||
return flask.render_template('rules/edit.html', index=index, rule=db.load('rules')[index], ipsets=ipsets)
|
||||
return flask.render_template('rules/edit.html', index=index, rule=db.load('rules')[index], ipsets=ipsets.read())
|
||||
except IndexError as e:
|
||||
return flask.Response(f'invalid rule: {index}', status=400, mimetype='text/plain')
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue