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