From 6d02b2a1a276c98dd3f9881d3e113f1db14fee04 Mon Sep 17 00:00:00 2001 From: John Spray Date: Thu, 9 Nov 2017 07:33:10 -0500 Subject: [PATCH] mgr/dashboard: fix audit log loading Signed-off-by: John Spray (cherry picked from commit 85e1dadb287ee5216985b16b4a144dfe148d6a60) --- src/pybind/mgr/dashboard/module.py | 51 ++++++++++++++++-------------- 1 file changed, 28 insertions(+), 23 deletions(-) diff --git a/src/pybind/mgr/dashboard/module.py b/src/pybind/mgr/dashboard/module.py index 074103a5a4b05..659d808b0e261 100644 --- a/src/pybind/mgr/dashboard/module.py +++ b/src/pybind/mgr/dashboard/module.py @@ -433,35 +433,40 @@ class Module(MgrModule): "versions": mds_versions } + def _prime_log(self): + def load_buffer(buf, channel_name): + result = CommandResult("") + self.send_command(result, "mon", "", json.dumps({ + "prefix": "log last", + "format": "json", + "channel": channel_name, + "num": LOG_BUFFER_SIZE + }), "") + r, outb, outs = result.wait() + if r != 0: + # Oh well. We won't let this stop us though. + self.log.error("Error fetching log history (r={0}, \"{1}\")".format( + r, outs)) + else: + try: + lines = json.loads(outb) + except ValueError: + self.log.error("Error decoding log history") + else: + for l in lines: + buf.appendleft(l) + + load_buffer(self.log_buffer, "cluster") + load_buffer(self.audit_buffer, "audit") + self.log_primed = True + def serve(self): current_dir = os.path.dirname(os.path.abspath(__file__)) jinja_loader = jinja2.FileSystemLoader(current_dir) env = jinja2.Environment(loader=jinja_loader) - result = CommandResult("") - self.send_command(result, "mon", "", json.dumps({ - "prefix":"log last", - "format": "json" - }), "") - r, outb, outs = result.wait() - if r != 0: - # Oh well. We won't let this stop us though. - self.log.error("Error fetching log history (r={0}, \"{1}\")".format( - r, outs)) - else: - try: - lines = json.loads(outb) - except ValueError: - self.log.error("Error decoding log history") - else: - for l in lines: - if l['channel'] == 'audit': - self.audit_buffer.appendleft(l) - else: - self.log_buffer.appendleft(l) - - self.log_primed = True + self._prime_log() class EndPoint(object): def _health_data(self): -- 2.39.5