fix: prevent double creation of icinga services on modify

This commit is contained in:
2023-07-25 00:46:45 +02:00
parent 5b49bb2b37
commit c93ab82119

View File

@@ -110,7 +110,7 @@ class EntryForm(FlaskForm):
service_hidden = HiddenField("service_hidden") service_hidden = HiddenField("service_hidden")
timeout = DecimalField("Timeout in days", default=30) timeout = DecimalField("Timeout in days", default=30)
def create_entry(form, user): def create_entry(form, user, create_icinga_service=False):
token = secrets.token_urlsafe(16) token = secrets.token_urlsafe(16)
@@ -120,6 +120,7 @@ def create_entry(form, user):
service = Service(service=service_name, timeout=day_delta.total_seconds(), service = Service(service=service_name, timeout=day_delta.total_seconds(),
owner=user, token=token) owner=user, token=token)
if create_icinga_service:
icingatools.create_service(user, service_name, app) icingatools.create_service(user, service_name, app)
db.session.merge(service) db.session.merge(service)
@@ -184,8 +185,9 @@ def create_interface():
form.process() form.process()
else: else:
return ("Not a valid service to modify", 404) return ("Not a valid service to modify", 404)
elif flask.request.method == "POST":
create_entry(form, user) if flask.request.method == "POST":
create_entry(form, user, create_icinga_service=not bool(modify_service_name))
service_name = form.service.data or form.service_hidden.data service_name = form.service.data or form.service_hidden.data
return flask.redirect('/service-details?service={}'.format(service_name)) return flask.redirect('/service-details?service={}'.format(service_name))
else: else: