From: John Spray Date: Thu, 9 Nov 2017 12:33:10 +0000 (-0500) Subject: mgr/dashboard: fix audit log loading X-Git-Tag: v12.2.3~250^2^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F19001%2Fhead;p=ceph.git mgr/dashboard: fix audit log loading Signed-off-by: John Spray (cherry picked from commit 85e1dadb287ee5216985b16b4a144dfe148d6a60) --- diff --git a/src/pybind/mgr/dashboard/module.py b/src/pybind/mgr/dashboard/module.py index 074103a5a4b0..659d808b0e26 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):