示例#1
0
 def test_junos_config_update_replace(self):
     src = load_fixture('junos_config.json', content='str')
     set_module_args(dict(src=src, update='replace'))
     self.execute_module()
     args, kwargs = self.load_config.call_args
     self.assertEqual(kwargs['action'], 'replace')
     self.assertEqual(kwargs['format'], 'json')
示例#2
0
 def test_junos_rpc_attrs(self):
     set_module_args(
         dict(rpc='load-configuration',
              output='xml',
              attrs={'url': '/var/tmp/config.conf'}))
     result = self.execute_module(format='xml')
     self.assertTrue(result['xml'].find('<load-success/>'))
    def test_junos_scp_remote_src(self):
        set_module_args(dict(src='test.txt', remote_src=True))
        self.execute_module(changed=True)

        self.scp_mock.get.assert_called_once_with('test.txt',
                                                  local_path='.',
                                                  recursive=False)
 def test_junos_command_match_any(self):
     wait_for = [
         'result[0] contains "Junos:"', 'result[0] contains "test string"'
     ]
     set_module_args(
         dict(commands=['show version'], wait_for=wait_for, match='any'))
     self.execute_module()
示例#5
0
 def test_junos_config_src_json(self):
     src = load_fixture('junos_config.json', content='str')
     set_module_args(dict(src=src))
     self.execute_module(changed=True)
     args, kwargs = self.load_config.call_args
     self.assertEqual(kwargs['action'], 'merge')
     self.assertEqual(kwargs['format'], 'json')
    def test_junos_scp_all(self):
        set_module_args(
            dict(src='test', remote_src=True, dest="tmp", recursive=True))
        self.execute_module(changed=True)

        self.scp_mock.get.assert_called_once_with('test',
                                                  local_path='tmp',
                                                  recursive=True)
 def test_junos_ping_failure_stats(self):
     '''Test for asserting stats when ping fails'''
     set_module_args(dict(count=4, dest="10.10.10.20"))
     self.conn.get = MagicMock(return_value=load_fixture('junos_ping_ping_10.10.10.20_count_4', content='str'))
     result = self.execute_module(failed=True)
     self.assertEqual(result['packet_loss'], '100%')
     self.assertEqual(result['packets_rx'], 0)
     self.assertEqual(result['packets_tx'], 4)
示例#8
0
    def test_junos_package_src_no_copy(self):
        jnpr_mock.junos.utils.sw.SW().install.return_value = 1
        set_module_args(dict(src='junos-vsrx-12.1X46-D10.2-domestic.tgz', no_copy=True))
        self.execute_module(changed=True)

        args, kwargs = jnpr_mock.junos.utils.sw.SW().install.call_args
        self.assertEqual(args, ('junos-vsrx-12.1X46-D10.2-domestic.tgz',))
        self.assertEqual(kwargs['no_copy'], True)
 def test_junos_command_match_all_failure(self):
     wait_for = [
         'result[0] contains "Junos:"', '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_junos_command_match_all(self):
     wait_for = [
         'result[0] contains "Junos:"',
         'result[0] contains "JUNOS Software Release"'
     ]
     set_module_args(
         dict(commands=['show version'], wait_for=wait_for, match='all'))
     self.execute_module()
    def test_junos_scp_src_fail(self):
        self.scp_mock.put.side_effect = OSError(
            "[Errno 2] No such file or directory: 'text.txt'")
        set_module_args(dict(src='test.txt'))
        result = self.execute_module(changed=True, failed=True)

        self.assertEqual(result['msg'],
                         "[Errno 2] No such file or directory: 'text.txt'")
示例#12
0
    def test_junos_get_facts_subset_list(self):
        set_module_args(dict(gather_subset=['hardware', 'interfaces']))
        result = self.execute_module(format='xml')
        facts = result['ansible_facts']

        self.assertTrue('ansible_net_config' not in facts)
        self.assertEqual(facts['ansible_net_interfaces']['em0']['oper-status'],
                         'up')
        self.assertEqual(facts['ansible_net_memfree_mb'], 200684)
示例#13
0
 def test_junos_config_rollback(self):
     rollback = 10
     set_module_args(dict(rollback=rollback))
     self.execute_module(changed=True)
     self.assertEqual(self.get_diff.call_count, 1)
     self.assertEqual(self.load_configuration.call_count, 1)
     self.assertEqual(self.commit_configuration.call_count, 1)
     load_configuration_args = self.load_configuration.call_args
     self.assertEqual(rollback, load_configuration_args[1].get('rollback'))
 def test_junos_netconf_disable(self):
     out = '''
           ssh {
             port 830;
             }
         '''
     self.netconf_conn().get.return_value = out
     set_module_args(dict(state='absent'))
     result = self.execute_module(changed=True)
     self.assertEqual(result['commands'], ['delete system services netconf'])
 def test_junos_netconf_port_change(self):
     out = '''
           ssh {
             port 830;
             }
         '''
     self.netconf_conn().get.return_value = out
     set_module_args(dict(state='present', netconf_port=22))
     result = self.execute_module(changed=True)
     self.assertEqual(result['commands'], ['set system services netconf ssh port 22'])
 def test_junos_netconf_port_error(self):
     out = '''
           ssh {
             port 22;
             }
         '''
     self.netconf_conn().get.return_value = out
     set_module_args(dict(state='present', netconf_port=0))
     result = self.execute_module(changed=True, failed=True)
     self.assertEqual(result['msg'], 'netconf_port must be between 1 and 65535')
示例#17
0
    def test_junos_get_facts_subset_config_json(self):
        self.get_config.return_value = load_fixture(
            'get_configuration_rpc_reply_json.txt')
        set_module_args(dict(gather_subset='config', config_format='json'))
        result = self.execute_module(format='xml')
        facts = result['ansible_facts']

        self.assertTrue('ansible_net_config' in facts)
        self.assertTrue('configuration' in facts['ansible_net_config'])
        self.assertEqual(facts['ansible_net_hostname'], 'vsrx01')
        self.assertTrue('ansible_net_interfaces' not in facts)
 def test_junos_ping_success_stats(self):
     set_module_args(dict(count=2, dest="10.10.10.10"))
     self.conn.get = MagicMock(return_value=load_fixture('junos_ping_ping_10.10.10.10_count_2', content='str'))
     result = self.execute_module()
     self.assertEqual(result['commands'], 'ping 10.10.10.10 count 2')
     self.assertEqual(result['packet_loss'], '0%')
     self.assertEqual(result['packets_rx'], 2)
     self.assertEqual(result['packets_tx'], 2)
     self.assertEqual(result['rtt']['min'], 15.71)
     self.assertEqual(result['rtt']['avg'], 16.87)
     self.assertEqual(result['rtt']['max'], 18.04)
     self.assertEqual(result['rtt']['stddev'], 1.165)
示例#19
0
 def test_junos_config_lines(self):
     set_module_args(
         dict(lines=[
             'delete interfaces ae11',
             'set interfaces ae11 unit 0 description Test'
         ]))
     self.execute_module(changed=True)
     args, kwargs = self.load_config.call_args
     self.assertEqual(args[1][0],
                      'set interfaces ae11 unit 0 description Test')
     self.assertEqual(kwargs['action'], 'set')
     self.assertEqual(kwargs['format'], 'text')
 def test_junos_ping_success_stats_with_options(self):
     set_module_args(dict(count=5, size=512, interval=2, dest="10.10.10.11"))
     self.conn.get = MagicMock(return_value=load_fixture('junos_ping_ping_10.10.10.11_count_5_size_512_interval_2', content='str'))
     result = self.execute_module()
     self.assertEqual(result['commands'], 'ping 10.10.10.11 count 5 size 512 interval 2')
     self.assertEqual(result['packet_loss'], '0%')
     self.assertEqual(result['packets_rx'], 5)
     self.assertEqual(result['packets_tx'], 5)
     self.assertEqual(result['rtt']['min'], 18.71)
     self.assertEqual(result['rtt']['avg'], 17.87)
     self.assertEqual(result['rtt']['max'], 20.04)
     self.assertEqual(result['rtt']['stddev'], 2.165)
示例#21
0
 def test_junos_rpc_args(self):
     set_module_args(
         dict(rpc='get-software-information',
              args={
                  'interface': 'em0',
                  'media': True
              }))
     result = self.execute_module(format='xml')
     args, kwargs = self.exec_rpc.call_args
     reply = args[1]
     self.assertTrue(
         reply.find(
             '<interface>em0</interface><media /></get-software-information>'
         ))
示例#22
0
    def test_junos_get_facts(self):
        set_module_args(dict())
        result = self.execute_module(format='xml')
        facts = result['ansible_facts']

        self.assertEqual(facts['ansible_net_hostname'], 'vsrx01')
        self.assertTrue('em0' in facts['ansible_net_interfaces'])
        self.assertEqual(facts['ansible_net_interfaces']['em0']['type'],
                         'Ethernet')
        self.assertEqual(facts['ansible_net_memtotal_mb'], 983500)
        self.assertEqual(facts['ansible_net_filesystems'][0], '/dev/vtbd0s1a')
        self.assertTrue('ansible_net_config' not in facts)
        self.assertEqual(facts['ansible_net_routing_engines']["0"]['model'],
                         'RE-S-EX9200-1800X4')
        self.assertEqual(facts['ansible_net_modules'][0]['name'], 'Midplane')
        self.assertTrue(facts['ansible_net_has_2RE'])
 def test_junos_command_simple(self):
     set_module_args(dict(commands=['show version']))
     result = self.execute_module()
     self.assertEqual(len(result['stdout']), 1)
     self.assertTrue(result['stdout'][0].startswith('Hostname:'))
 def test_junos_command_simple_rpc_text(self):
     set_module_args(dict(rpcs=['get-software-information'],
                          display='text'))
     result = self.execute_module(format='text')
     self.assertEqual(len(result['stdout']), 1)
     self.assertTrue(result['stdout'][0].startswith('Hostname:'))
 def test_junos_command_simple_rpc_json(self):
     set_module_args(dict(rpcs=['get-software-information'],
                          display='json'))
     result = self.execute_module(format='json')
     self.assertEqual(len(result['stdout']), 1)
     self.assertTrue("software-information" in result['stdout'][0])
 def test_junos_rpc_text(self):
     set_module_args(dict(rpc='get-software-information', output='text'))
     result = self.execute_module(format='text')
     self.assertTrue(result['output_lines'][0].startswith('Hostname: vsrx01'))
 def test_junos_rpc_json(self):
     set_module_args(dict(rpc='get-software-information', output='json'))
     result = self.execute_module(format='json')
     self.assertTrue('software-information' in result['output'])
示例#28
0
    def test_junos_get_facts_wrong_subset(self):
        set_module_args(dict(gather_subset=['hardware', 'interfaces', 'test']))
        result = self.execute_module(format='xml', failed=True)

        self.assertTrue(result['msg'].startswith('Subset must be one'))
 def test_junos_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.exec_rpc.call_count, 2)
 def test_junos_command_wait_for(self):
     wait_for = 'result[0] contains "Junos:"'
     set_module_args(dict(commands=['show version'], wait_for=wait_for))
     self.execute_module()