From bd3dc3510c5edc11322146c6ca364d4244a27730 Mon Sep 17 00:00:00 2001
From: Benjamin Bertrand <benjamin.bertrand@esss.se>
Date: Mon, 20 Nov 2017 23:16:18 +0100
Subject: [PATCH] Fix DataError when getting available IPs

Catch exception when no network exists (null is passed as network_id).
---
 app/main/views.py | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/app/main/views.py b/app/main/views.py
index 1555a66..3b16024 100644
--- a/app/main/views.py
+++ b/app/main/views.py
@@ -158,6 +158,11 @@ def retrieve_hosts():
 @bp.route('/_retrieve_available_ips/<network_id>')
 @login_required
 def retrieve_available_ips(network_id):
-    network = models.Network.query.get(network_id)
-    data = [str(address) for address in network.available_ips()]
+    try:
+        network = models.Network.query.get(network_id)
+    except sa.exc.DataError:
+        current_app.logger.warning(f'Invalid network_id: {network_id}')
+        data = []
+    else:
+        data = [str(address) for address in network.available_ips()]
     return jsonify(data=data)
-- 
GitLab