From ab21a417489f98b3da4b3d680d3396e3d5194121 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 24 Aug 2017 18:14:41 +0200 Subject: [PATCH] library: allow logging of general messages, not tied to a connection Mainly for printf debugging of the module, where we don't have a connection index handy. --- library/network_connections.py | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/library/network_connections.py b/library/network_connections.py index 92850e6..68f075a 100755 --- a/library/network_connections.py +++ b/library/network_connections.py @@ -1693,7 +1693,7 @@ class _AnsibleUtil: c = self._run_results if c is None: c = [] - for cc in self.connections: + for cc in range(0, len(self.connections) + 1): c.append({ 'changed': False, 'log': [], @@ -1703,11 +1703,13 @@ class _AnsibleUtil: return c def run_results_changed(self, idx, changed = None): + assert(idx >= 0 and idx < len(self.run_results) - 1) if changed is None: changed = True self.run_results[idx]['changed'] = bool(changed) def run_results_rc(self, idx, rc, msg): + assert(idx >= 0 and idx < len(self.run_results) - 1) self.run_results[idx]['rc'].append((rc, msg)) self.log(idx, LogLevel.INFO, 'command: %s (rc=%s)' % (msg, rc)) @@ -1728,6 +1730,10 @@ class _AnsibleUtil: def log(self, idx, severity, msg, warn_traceback = False, force_fail = False): self._log_idx += 1 + if idx == -1: + idx = len(self.run_results) - 1 + else: + assert(idx >= 0 and idx < len(self.run_results) - 1) self.run_results[idx]['log'].append((severity, msg, self._log_idx)) if severity == LogLevel.ERROR: # ignore_errors can be specified per profile. In absense of a @@ -1745,12 +1751,15 @@ class _AnsibleUtil: self.fail_json('error: %s' % (msg), warn_traceback = warn_traceback) def _complete_kwargs_loglines(self, rr, idx): - c = self.connections[idx] - prefix = 'state:%s' % (c['state']) - if c['state'] != 'wait': - prefix = prefix + (', "%s"' % (c['name'])) + if idx == len(self.connections): + prefix = '#' + else: + c = self.connections[idx] + prefix = '#%s, state:%s' % (idx, c['state']) + if c['state'] != 'wait': + prefix = prefix + (', "%s"' % (c['name'])) for r in rr['log']: - yield (r[2], '[%03d] %s #%s, %s: %s' % (r[2], LogLevel.fmt(r[0]), idx, prefix, r[1])) + yield (r[2], '[%03d] %s %s: %s' % (r[2], LogLevel.fmt(r[0]), prefix, r[1])) def _complete_kwargs(self, kwargs, traceback_msg = None): if 'warnings' in kwargs: