Merge pull request #4481 from privateip/ios_facts

fixes issue with duplicated commands in CommandRunner
reviewable/pr18780/r1
Peter Sprygada 8 years ago committed by GitHub
commit 9e241129fe

@ -118,10 +118,18 @@ ansible_net_memtotal_mb:
import re
from ansible.module_utils.basic import get_exception
from ansible.module_utils.netcmd import CommandRunner
from ansible.module_utils.netcli import CommandRunner, AddCommandError
from ansible.module_utils.ios import NetworkModule
def add_command(runner, command):
try:
runner.add_command(command)
except AddCommandError:
# AddCommandError is raised for any issue adding a command to
# the runner. Silently ignore the exception in this case
pass
class FactsBase(object):
def __init__(self, runner):
@ -133,7 +141,7 @@ class FactsBase(object):
class Default(FactsBase):
def commands(self):
self.runner.add_command('show version')
add_command(self.runner, 'show version')
def populate(self):
data = self.runner.get_command('show version')
@ -173,9 +181,9 @@ class Default(FactsBase):
class Hardware(FactsBase):
def commands(self):
self.runner.add_command('dir all-filesystems | include Directory')
self.runner.add_command('show version')
self.runner.add_command('show memory statistics | include Processor')
add_command(self.runner, 'dir all-filesystems | include Directory')
add_command(self.runner, 'show version')
add_command(self.runner, 'show memory statistics | include Processor')
def populate(self):
data = self.runner.get_command('dir all-filesystems | include Directory')
@ -194,7 +202,7 @@ class Hardware(FactsBase):
class Config(FactsBase):
def commands(self):
self.runner.add_command('show running-config')
add_command(self.runner, 'show running-config')
def populate(self):
self.facts['config'] = self.runner.get_command('show running-config')
@ -203,10 +211,10 @@ class Config(FactsBase):
class Interfaces(FactsBase):
def commands(self):
self.runner.add_command('show interfaces')
self.runner.add_command('show ipv6 interface')
self.runner.add_command('show lldp')
self.runner.add_command('show lldp neighbors detail')
add_command(self.runner, 'show interfaces')
add_command(self.runner, 'show ipv6 interface')
add_command(self.runner, 'show lldp')
add_command(self.runner, 'show lldp neighbors detail')
def populate(self):
self.facts['all_ipv4_addresses'] = list()
@ -417,7 +425,7 @@ def main():
for key in runable_subsets:
instances.append(FACT_SUBSETS[key](runner))
runner.run_commands()
runner.run()
try:
for inst in instances:
@ -436,4 +444,3 @@ def main():
if __name__ == '__main__':
main()

Loading…
Cancel
Save