summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ansible/module_utils/netcmd.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/ansible/module_utils/netcmd.py b/lib/ansible/module_utils/netcmd.py
index c5eb197d13..651c437dd0 100644
--- a/lib/ansible/module_utils/netcmd.py
+++ b/lib/ansible/module_utils/netcmd.py
@@ -163,9 +163,23 @@ class CommandRunner(object):
self.retries = 10
self.interval = 1
+ self._cache = dict()
+
def add_command(self, command, output=None):
self.module.cli.add_commands(command, output=output)
+ def get_command(self, command):
+ try:
+ cmdobj = self._cache[command]
+ return cmdobj.response
+ except KeyError:
+ for cmd in self.module.cli.commands:
+ if str(cmd) == command:
+ self._cache[command] = cmd
+ return cmd.response
+ raise ValueError("command '%s' not found" % command)
+
+
def add_conditional(self, condition):
self.conditionals.add(Conditional(condition))