From de71f38a2c0b37a96970d6b2fd62ea19b20bdf46 Mon Sep 17 00:00:00 2001 From: Dan Mick Date: Fri, 15 Mar 2019 20:05:46 -0700 Subject: [PATCH] mgr/telemetry: check for errors when sending report There was no error checking, and the server has been failing for some time, but no one noticed. Oops. Signed-off-by: Dan Mick --- src/pybind/mgr/telemetry/module.py | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/src/pybind/mgr/telemetry/module.py b/src/pybind/mgr/telemetry/module.py index bdb4c6382bec4..99313a9c01fdc 100644 --- a/src/pybind/mgr/telemetry/module.py +++ b/src/pybind/mgr/telemetry/module.py @@ -263,7 +263,11 @@ class Module(MgrModule): proxies['http'] = self.proxy proxies['https'] = self.proxy - requests.put(url=self.url, json=report, proxies=proxies) + resp = requests.put(url=self.url, json=report, proxies=proxies) + if not resp.ok: + self.log.error("Report send failed: %d %s %s" % + (resp.status_code, resp.reason, resp.text)) + return resp def handle_command(self, inbuf, command): if command['prefix'] == 'telemetry status': @@ -279,8 +283,16 @@ class Module(MgrModule): return 0, '', '' elif command['prefix'] == 'telemetry send': self.last_report = self.compile_report() - self.send(self.last_report) - return 0, 'Report send to {0}'.format(self.url), '' + resp = self.send(self.last_report) + if resp.ok: + return 0, 'Report sent to {0}'.format(self.url), '' + return 1, '', 'Failed to send report to %s: %d %s %s' % ( + self.url, + resp.status_code, + resp.reason, + resp.text + ) + elif command['prefix'] == 'telemetry show': report = self.last_report if not report: @@ -328,9 +340,12 @@ class Module(MgrModule): self.log.exception('Exception while compiling report:') try: - self.send(self.last_report) - self.last_upload = now - self.set_store('last_upload', str(now)) + resp = self.send(self.last_report) + # self.send logs on failure; only update last_upload + # if we succeed + if resp.ok: + self.last_upload = now + self.set_store('last_upload', str(now)) except: self.log.exception('Exception while sending report:') else: -- 2.39.5