def test_exos_facts_hardware(self): set_module_args(dict(gather_subset='hardware')) result = self.execute_module() self.assertEqual(result['ansible_facts']['ansible_net_memfree_mb'], 7298) self.assertEqual(result['ansible_facts']['ansible_net_memtotal_mb'], 8192)
def test_exos_config_after(self): lines = ['configure snmp sysName "marble"'] set_module_args(dict(lines=lines, after=['test1', 'test2'])) commands = ['configure snmp sysName "marble"', 'test1', 'test2'] self.get_diff.return_value = self.cliconf_obj.get_diff( '\n'.join(lines), self.running_config) self.execute_module(changed=True, commands=commands, sort=False)
def test_exos_facts_interfaces(self): set_module_args(dict(gather_subset='interfaces')) result = self.execute_module() self.assertEqual( result['ansible_facts']['ansible_net_interfaces']['1'] ['bandwidth_configured'], '25000') self.assertEqual( result['ansible_facts']['ansible_net_interfaces']['3'] ['description'], 'Database Server') self.assertEqual( result['ansible_facts']['ansible_net_interfaces']['3']['type'], 'Ethernet') self.assertEqual( result['ansible_facts']['ansible_net_interfaces']['vlan1']['ipv4'] [0]['address'], '10.0.1.1') self.assertEqual( result['ansible_facts']['ansible_net_interfaces']['vlan3']['ipv6'] [0]['address'], 'fe80::202:b3ff:fe1e:8329') self.assertEqual( result['ansible_facts']['ansible_net_all_ipv4_addresses'], ['10.0.1.1', '192.168.1.1']) self.assertEqual( result['ansible_facts']['ansible_net_all_ipv6_addresses'], ['fe80::202:b3ff:fe1e:8329']) self.assertEqual( result['ansible_facts']['ansible_net_interfaces']['vlan3']['type'], 'VLAN')
def test_exos_command_match_any(self): wait_for = [ 'result[0] contains "Switch"', 'result[0] contains "test string"' ] set_module_args( dict(commands=['show version'], wait_for=wait_for, match='any')) self.execute_module()
def test_exos_config_config(self): config = 'hostname localhost' lines = ['configure snmp sysName "x870"'] set_module_args(dict(lines=lines, config=config)) commands = ['configure snmp sysName "x870"'] self.get_diff.return_value = self.cliconf_obj.get_diff( '\n'.join(lines), config) self.execute_module(changed=True, commands=commands)
def test_exos_config_save_modified_true(self): self.get_startup_config.return_value = load_fixture( 'exos_config_modified.cfg') set_module_args(dict(save_when='modified')) self.execute_module(changed=True) self.assertEqual(self.run_commands.call_count, 1) self.assertTrue(self.get_config.call_count > 0) self.assertEqual(self.get_startup_config.call_count, 1) self.assertEqual(self.load_config.call_count, 0)
def test_exos_config_before_after_no_change(self): lines = ['configure snmp sysName "x870"'] set_module_args( dict(lines=lines, before=['test1', 'test2'], after=['test3', 'test4'])) self.get_diff.return_value = self.cliconf_obj.get_diff( '\n'.join(lines), self.running_config) self.execute_module()
def test_exos_facts_default(self): set_module_args(dict(gather_subset='default')) result = self.execute_module() self.assertEqual(result['ansible_facts']['ansible_net_model'], 'X870-32c') self.assertEqual(result['ansible_facts']['ansible_net_serialnum'], '1604G-00175') self.assertEqual(result['ansible_facts']['ansible_net_version'], '22.5.1.7')
def test_exos_command_match_all_failure(self): wait_for = [ 'result[0] contains "Switch :"', 'result[0] contains "test string"' ] commands = ['show version', 'show version'] set_module_args(dict(commands=commands, wait_for=wait_for, match='all')) self.execute_module(failed=True)
def test_exos_diff_intended_modified(self): intended_config = load_fixture('exos_config_modified.cfg') args = dict(diff_against='intended', intended_config=intended_config, _ansible_diff=True) set_module_args(args) self.get_diff = self.cliconf_obj.get_diff(intended_config, self.running_config) self.execute_module(changed=True)
def test_exos_config_save_always(self): self.run_commands.return_value = 'configure snmp sysName "marble"' set_module_args(dict(save_when='always')) self.execute_module(changed=True) self.assertEqual(self.run_commands.call_count, 1) self.assertEqual(self.get_config.call_count, 0) self.assertEqual(self.load_config.call_count, 0) args = self.run_commands.call_args[0][1] self.assertIn('save configuration', args['command'])
def test_exos_command_configure_error(self): commands = ['disable ospf'] set_module_args({ 'commands': commands, '_ansible_check_mode': True, }) result = self.execute_module() self.assertEqual(result['warnings'], [ 'only show commands are supported when using check mode, not executing `disable ospf`' ])
def test_exos_config_src(self): src = load_fixture('exos_config_src.cfg') set_module_args(dict(src=src)) commands = [ 'configure ports 1 description-string "IDS"', 'configure snmp sysName "marble"' ] self.get_diff.return_value = self.cliconf_obj.get_diff( src, self.running_config) self.execute_module(changed=True, commands=commands)
def test_exos_diff_startup_changed(self): mock_get_startup_config = patch( 'ansible_collections.extremenetworks.exos.plugins.modules.exos_config.get_startup_config' ) get_startup_config = mock_get_startup_config.start() get_startup_config.return_value = load_fixture( 'exos_config_modified.cfg') args = dict(diff_against='startup', _ansible_diff=True) set_module_args(args) self.execute_module(changed=True) self.assertEqual(get_startup_config.call_count, 1) mock_get_startup_config.stop()
def test_exos_config_save_changed_true_check_mode(self): src = load_fixture('exos_config_src.cfg') set_module_args( dict(src=src, save_when='changed', _ansible_check_mode=True)) commands = [ 'configure ports 1 description-string "IDS"', 'configure snmp sysName "marble"' ] self.get_diff.return_value = self.cliconf_obj.get_diff( src, self.running_config) self.execute_module(changed=True, commands=commands) self.assertEqual(self.run_commands.call_count, 0) self.assertEqual(self.get_config.call_count, 1) self.assertEqual(self.load_config.call_count, 0)
def test_exos_config_backup(self): set_module_args(dict(backup=True)) result = self.execute_module() self.assertIn('__backup__', result)
def test_exos_config_match_none(self): lines = ['configure snmp sysName "x870"'] set_module_args(dict(lines=lines, match='none')) self.get_diff.return_value = self.cliconf_obj.get_diff( '\n'.join(lines), self.running_config, diff_match='none') self.execute_module(changed=True, commands=lines)
def test_exos_command_retries(self): wait_for = 'result[0] contains "test string"' set_module_args( dict(commands=['show version'], wait_for=wait_for, retries=2)) self.execute_module(failed=True) self.assertEqual(self.run_commands.call_count, 2)
def test_exos_diff_running_unchanged_check(self): args = dict(diff_against='running', _ansible_diff=True, _ansible_check_mode=True) set_module_args(args) self.execute_module(changed=False)
def test_exos_config_replace_block_requires_lines(self): args = dict(replace='block') set_module_args(args) self.execute_module(failed=True)
def test_exos_config_match_strict_requires_lines(self): args = dict(match='strict') set_module_args(args) self.execute_module(failed=True)
def test_exos_config_src_and_lines_fails(self): args = dict(src='foo', lines='foo') set_module_args(args) self.execute_module(failed=True)
def test_exos_command_multiple(self): set_module_args(dict(commands=['show version', 'show version'])) result = self.execute_module() self.assertEqual(len(result['stdout']), 2) self.assertTrue(result['stdout'][0].startswith('Switch :'))
def test_exos_command_wait_for(self): wait_for = 'result[0] contains "Switch :"' set_module_args(dict(commands=['show version'], wait_for=wait_for)) self.execute_module()
def test_exos_config_unchanged(self): src = load_fixture('exos_config_config.cfg') set_module_args(dict(src=src)) self.get_diff.return_value = self.cliconf_obj.get_diff(src, src) self.execute_module()
def test_exos_config_replace_config_requires_src(self): args = dict(replace='config') set_module_args(args) self.execute_module(failed=True)
def test_exos_config_save_changed_false(self): set_module_args(dict(save_when='changed')) self.execute_module(changed=False) self.assertEqual(self.run_commands.call_count, 0) self.assertEqual(self.get_config.call_count, 0) self.assertEqual(self.load_config.call_count, 0)