From 66de70c84c67c95b3b679020e0cb9a344e46cf0d Mon Sep 17 00:00:00 2001
From: Erik Reid <erik.reid@geant.org>
Date: Wed, 14 Nov 2018 13:18:20 +0100
Subject: [PATCH] added a simple resource for launching the router update
 process

---
 README.md                         |  8 ++++++--
 inventory_provider/__init__.py    |  3 +++
 inventory_provider/data_routes.py |  5 ++---
 inventory_provider/job_routes.py  | 12 ++++++++++++
 4 files changed, 23 insertions(+), 5 deletions(-)
 create mode 100644 inventory_provider/job_routes.py

diff --git a/README.md b/README.md
index ec85814e..4c0efb8a 100644
--- a/README.md
+++ b/README.md
@@ -116,9 +116,9 @@ configuration are beyond the scope of this document.
 
 The following resources can be requested from the webservice.
 
-### synchronous resources
+### resources
 
-All responses are JSON formatted messages.
+Any non-empty responses are JSON formatted messages.
 
 * `/data/version`
 
@@ -158,3 +158,7 @@ All responses are JSON formatted messages.
       "items": {"type": "string"}
   }
   ```
+
+* /jobs/update
+
+  This resource updates the inventory network data.
\ No newline at end of file
diff --git a/inventory_provider/__init__.py b/inventory_provider/__init__.py
index 44220ddd..3eb45924 100644
--- a/inventory_provider/__init__.py
+++ b/inventory_provider/__init__.py
@@ -20,6 +20,9 @@ def create_app():
     from inventory_provider import data_routes
     app.register_blueprint(data_routes.routes, url_prefix='/data')
 
+    from inventory_provider import job_routes
+    app.register_blueprint(job_routes.routes, url_prefix='/jobs')
+
     if "SETTINGS_FILENAME" not in os.environ:
         assert False, \
             "environment variable SETTINGS_FILENAME' must be defined"
diff --git a/inventory_provider/data_routes.py b/inventory_provider/data_routes.py
index 804cbceb..25518cdc 100644
--- a/inventory_provider/data_routes.py
+++ b/inventory_provider/data_routes.py
@@ -2,10 +2,9 @@ import functools
 import json
 
 from flask import Blueprint, request, Response, current_app
-# render_template, url_for
 import redis
 
-routes = Blueprint("python-utils-ui-routes", __name__)
+routes = Blueprint("inventory-data-query-routes", __name__)
 
 VERSION = {
     "api": "0.1",
@@ -43,7 +42,7 @@ def version():
 
 @routes.route("/routers", methods=['GET', 'POST'])
 @require_accepts_json
-def abc():
+def routers():
     redis_config = current_app.config["INVENTORY_PROVIDER_CONFIG"]["redis"]
     r = redis.StrictRedis(
         host=redis_config["hostname"],
diff --git a/inventory_provider/job_routes.py b/inventory_provider/job_routes.py
new file mode 100644
index 00000000..41f8b7a0
--- /dev/null
+++ b/inventory_provider/job_routes.py
@@ -0,0 +1,12 @@
+from flask import Blueprint, Response, current_app
+
+from inventory_provider import router_details
+
+routes = Blueprint("inventory-data-job-routes", __name__)
+
+
+@routes.route("/update", methods=['GET', 'POST'])
+def update():
+    router_details.update_network_details(
+        current_app.config["INVENTORY_PROVIDER_CONFIG"])
+    return Response("OK")
-- 
GitLab