mirror of
https://github.com/ansible-collections/community.general.git
synced 2026-05-07 13:52:54 +00:00
added timestamps to ios_command module (#50323)
ios_command module now returns timestamps field, which shows command execution time
This commit is contained in:
@@ -129,10 +129,10 @@ def get_config(module, flags=None):
|
||||
return cfg
|
||||
|
||||
|
||||
def run_commands(module, commands, check_rc=True):
|
||||
def run_commands(module, commands, check_rc=True, return_timestamps=False):
|
||||
connection = get_connection(module)
|
||||
try:
|
||||
return connection.run_commands(commands=commands, check_rc=check_rc)
|
||||
return connection.run_commands(commands=commands, check_rc=check_rc, return_timestamps=return_timestamps)
|
||||
except ConnectionError as exc:
|
||||
module.fail_json(msg=to_text(exc))
|
||||
|
||||
|
||||
@@ -198,7 +198,7 @@ def main():
|
||||
match = module.params['match']
|
||||
|
||||
while retries > 0:
|
||||
responses = run_commands(module, commands)
|
||||
responses, timestamps = run_commands(module, commands, return_timestamps=True)
|
||||
|
||||
for item in list(conditionals):
|
||||
if item(responses):
|
||||
@@ -221,6 +221,7 @@ def main():
|
||||
result.update({
|
||||
'stdout': responses,
|
||||
'stdout_lines': list(to_lines(responses)),
|
||||
'timestamps': timestamps
|
||||
})
|
||||
|
||||
module.exit_json(**result)
|
||||
|
||||
@@ -27,6 +27,7 @@ from itertools import chain
|
||||
|
||||
from ansible.errors import AnsibleConnectionFailure
|
||||
from ansible.module_utils._text import to_text
|
||||
from ansible.module_utils.basic import get_timestamp
|
||||
from ansible.module_utils.common._collections_compat import Mapping
|
||||
from ansible.module_utils.six import iteritems
|
||||
from ansible.module_utils.network.common.config import NetworkConfig, dumps
|
||||
@@ -271,11 +272,12 @@ class Cliconf(CliconfBase):
|
||||
|
||||
return resp
|
||||
|
||||
def run_commands(self, commands=None, check_rc=True):
|
||||
def run_commands(self, commands=None, check_rc=True, return_timestamps=False):
|
||||
if commands is None:
|
||||
raise ValueError("'commands' value is required")
|
||||
|
||||
responses = list()
|
||||
timestamps = list()
|
||||
for cmd in to_list(commands):
|
||||
if not isinstance(cmd, Mapping):
|
||||
cmd = {'command': cmd}
|
||||
@@ -286,14 +288,19 @@ class Cliconf(CliconfBase):
|
||||
|
||||
try:
|
||||
out = self.send_command(**cmd)
|
||||
timestamp = get_timestamp()
|
||||
except AnsibleConnectionFailure as e:
|
||||
if check_rc:
|
||||
raise
|
||||
out = getattr(e, 'err', to_text(e))
|
||||
|
||||
responses.append(out)
|
||||
timestamps.append(timestamp)
|
||||
|
||||
return responses
|
||||
if return_timestamps:
|
||||
return responses, timestamps
|
||||
else:
|
||||
return responses
|
||||
|
||||
def get_defaults_flag(self):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user