From: Dan Mick Date: Sat, 16 Mar 2019 03:05:46 +0000 (-0700) Subject: mgr/telemetry: check for errors when sending report X-Git-Tag: v14.2.0~5^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=de71f38a2c0b37a96970d6b2fd62ea19b20bdf46;p=ceph-ci.git 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 --- diff --git a/src/pybind/mgr/telemetry/module.py b/src/pybind/mgr/telemetry/module.py index bdb4c6382be..99313a9c01f 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: