From 9d4c9c1de4fe3d0a68701810f4180fce304e76ca Mon Sep 17 00:00:00 2001 From: Robert Latta <robert.latta@geant.org> Date: Mon, 29 Mar 2021 16:20:18 +0000 Subject: [PATCH] corrected encoding after enabling ignore-cache route param --- inventory_provider/routes/msr.py | 36 +++++++++++++++++--------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/inventory_provider/routes/msr.py b/inventory_provider/routes/msr.py index f168845d..d970e962 100644 --- a/inventory_provider/routes/msr.py +++ b/inventory_provider/routes/msr.py @@ -1,7 +1,7 @@ import itertools import json -from flask import Blueprint, jsonify, Response, request +from flask import Blueprint, Response, request from inventory_provider.routes import common from inventory_provider.routes.common import _ignore_cache_or_retrieve @@ -110,16 +110,18 @@ def access_services(): if not result: result = list(_services()) - # cache this data for the next call - redis.set(cache_key, json.dumps(result).encode('utf-8')) - if not result: - return Response( - response='no access services found', - status=404, - mimetype="text/html") + if not result: + return Response( + response='no access services found', + status=404, + mimetype="text/html") + + # cache this data for the next call + result = json.dumps(result) + redis.set(cache_key, result.encode('utf-8')) - return jsonify(result) + return Response(result, mimetype="application/json") def _handle_peering_group_request(name, cache_key, group_key_base): @@ -163,21 +165,21 @@ def _handle_peering_group_request(name, cache_key, group_key_base): if not items: if name: - items = _load_list_items(f'{group_key_base}:{name}') + items = list(_load_list_items(f'{group_key_base}:{name}')) else: gen_list = list(map(_load_list_items, _get_all_subkeys())) - items = itertools.chain(*gen_list) + items = list(itertools.chain(*gen_list)) - items = list(items) if not items: return Response( response='no peerings found', status=404, mimetype="text/html") + items = json.dumps(items) - r.set(cache_key, json.dumps(items).encode('utf-8')) + r.set(cache_key, items.encode('utf-8')) - return jsonify(items) + return Response(items, mimetype="application/json") @routes.route("/bgp/logical-system-peerings", methods=['GET', 'POST']) @@ -272,11 +274,11 @@ def _handle_peering_group_list_request(cache_key, group_key_base): response='no groups found', status=404, mimetype="text/html") - names = sorted(names) + names = json.dumps(sorted(names)) - r.set(cache_key, json.dumps(names).encode('utf-8')) + r.set(cache_key, names.encode('utf-8')) - return jsonify(names) + return Response(names, mimetype="application/json") @routes.route("/bgp/logical-systems", methods=['GET', 'POST']) -- GitLab