예제 #1
0
 def test_reload_credentials_nondefault(self):
     dev = Connection(
         hostname='',
         start=['mock_device_cli --os nxos --state n5k_exec'],
         os='nxos',
         series='n5k',
         credentials=dict(default=dict(username='******', password='******'),
                          alt=dict(username='******', password='******')),
     )
     dev.connect()
     dev.reload(reload_command="reload2", reload_creds='alt')
     dev.disconnect()
예제 #2
0
 def test_reload_credentials(self):
     dev = Connection(
         hostname='',
         start=['mock_device_cli --os nxos --state n5k_exec'],
         os='nxos',
         platform='n5k',
         credentials=dict(default=dict(username='******', password='******')),
         mit=True)
     dev.connect()
     dev.settings.RELOAD_RECONNECT_WAIT = 1
     dev.reload()
     dev.disconnect()
예제 #3
0
 def test_connect_connectReply(self):
     c = Connection(
         hostname='linux',
         start=['mock_device_cli --os linux --state connect_ssh'],
         os='linux',
         username='******',
         password='******',
         connect_reply=Dialog([[r'^(.*?)Password:']]))
     c.connect()
     self.assertIn("^(.*?)Password:",
                   str(c.connection_provider.get_connection_dialog()))
     c.disconnect()
예제 #4
0
 def test_stack_connect2(self):
     d = Connection(
         hostname='Router',
         start=['mock_device_cli --os iosxe --state stack_login'] * 5,
         os='iosxe',
         chassis_type='stack',
         username='******',
         tacacs_password='******',
         enable_password='******')
     d.connect()
     d.execute('term width 0')
     self.assertEqual(d.spawn.match.match_output, 'term width 0\r\nRouter#')
 def test_login_connect_connectReply(self):
     c = Connection(hostname='Router',
                         start=['mock_device_cli --os ios --state login'],
                         os='ios',
                         username='******',
                         enable_password='******',
                         tacacs_password='******',
                         connect_reply=Dialog([[r'^(.*?)Connected.']]))
     c.connect()
     self.assertEqual(c.spawn.match.match_output, 'end\r\nRouter#')
     self.assertIn("^(.*?)Connected.", str(c.connection_provider.get_connection_dialog()))
     c.disconnect()
 def test_configure_error_pattern(self):
     c = Connection(
         hostname='RouterRP',
         start=['mock_device_cli --os iosxe --state general_enable'],
         os='iosxe',
         init_exec_commands=[],
         log_buffer=True)
     c.connect()
     for cmd in ['ntp server vrf foo 1.2.3.4']:
         with self.assertRaises(SubCommandFailure) as err:
             r = c.configure(cmd)
     c.disconnect()
 def test_incorrect_login(self):
     dev = Connection(hostname='switch',
                      start=['mock_device_cli --os nxos --state password4'],
                      os='nxos',
                      credentials={
                          'default': {
                              'username': '******',
                              'password': '******'
                          }
                      })
     dev.connect()
     dev.disconnect()
예제 #8
0
 def test_juniper_config(self):
     c = Connection(
         hostname='ncs',
         start=['mock_device_cli --os confd --state juniper_login'],
         os='confd',
         username='******',
         tacacs_password='******')
     c.connect()
     cmd = 'services sw-init-l3vpn foo endpoint PE2 pe-interface 0/0/0/1 ce CE1 ce-interface 0/1 ce-address 1.1.1.1 pe-address 1.1.1.2'
     r = c.configure(cmd)
     self.assertEqual(r['commit'], 'Commit complete.')
     self.assertEqual(r[cmd].replace(' \x08', ''), '')
예제 #9
0
 def test_connect_learn_hostname(self):
     c = Connection(
         hostname='Router',
         start=[
             'mock_device_cli --os iosxr --state enable --hostname xrv-ss-test1'
         ],
         os='iosxr',
         init_exec_commands=[],
         init_config_commands=[],
         learn_hostname=True)
     c.connect()
     self.assertEqual(c.hostname, 'xrv-ss-test1')
예제 #10
0
 def test_connect(self):
     c = Connection(
         hostname='ASA',
         start=['mock_device_cli --os asa --state asa_disable'],
         os='asa',
         platform='fp2k',
         credentials=dict(default=dict(username='******', password='******'),
                          enable=dict(password='******')),
     )
     c.connect()
     self.assertEqual(c.state_machine.current_state, 'disable')
     c.disconnect()
 def test_login_connect_connectReply(self):
     c = Connection(hostname='junos_vmx2',
                    start=['mock_device_cli --os junos --state exec'],
                    os='junos',
                    username='******',
                    tacacs_password='******',
                    connect_reply=Dialog([[r'^(.*?)Password:'******'set cli screen-width 0', c.spawn.match.match_output)
     self.assertIn("^(.*?)Password:",
                   str(c.connection_provider.get_connection_dialog()))
     c.disconnect()
예제 #12
0
 def test_learn_hostname(self):
     c = Connection(
         hostname='Controller',
         start=[
             'mock_device_cli --os aireos  --state aireos_exec --hostname "{}"'
             .format(hostname)
         ],
         os='aireos',
         username='******',
         learn_hostname=True,
         connection_timeout=3)
     c.connect()
 def test_connect(self):
     d = Connection(
         hostname='Router',
         start=['mock_device_cli --os iosxe --state c9k_login'],
         os='iosxe',
         platform='cat9k',
         credentials=dict(default=dict(username='******', password='******')),
         settings=dict(POST_DISCONNECT_WAIT_SEC=0,
                       GRACEFUL_DISCONNECT_WAIT_SEC=0.2),
         log_buffer=True)
     d.connect()
     d.disconnect()
예제 #14
0
 def test_reload(self):
     c = Connection(
         hostname='APC',
         start=['mock_device_cli --os apic --state apic_connect'],
         os='apic',
         username='******',
         tacacs_password='******')
     c.connect()
     c.settings.RELOAD_TIMEOUT = 3
     c.settings.POST_RELOAD_WAIT = 1
     c.reload()
     c.disconnect()
 def test_reload_credentials_nondefault(self):
     c = Connection(hostname='Router',
                         start=['mock_device_cli --os iosxr --state ncs5k_enable'],
                         os='iosxr',
                         series='ncs5k',
                         credentials=dict(default=dict(
                             username='******', password='******'),
                             alt=dict(
                             username='******', password='******')))
     c.connect()
     c.reload(reload_command="reload2", reload_creds='alt')
     self.assertEqual(c.spawn.match.match_output,'\r\nRP/0/RP0/CPU0:Router#\r\nRP/0/RP0/CPU0:Router#')
예제 #16
0
    def test_juniper_execute_configure(self):
        c = Connection(
            hostname='ncs',
            start=['mock_device_cli --os confd --state juniper_login'],
            os='confd',
            username='******',
            tacacs_password='******')
        c.connect()
        r = c.execute('configure')
        self.assertEqual(
            r, """Entering configuration mode private\r
[ok][1970-01-01 00:00:00]  \r\n\n[edit]""")
 def test_admin_enable_asr9k(self):
     c = Connection(hostname='PE1',
                         start=['mock_device_cli --os iosxr --state asr9k_enable'],
                         os='iosxr',
                         series='asr9k',
                         username='******',
                         line_password='******',
                         tacacs_password='******',
                         )
     c.connect()
     c.state_machine.go_to('admin', c.spawn)
     self.assertEqual(c.spawn.match.match_output,'admin\r\nRP/0/RSP1/CPU0:PE1(admin)#')
예제 #18
0
    def test_command_cisco_config(self):
        c = Connection(hostname='ncs',
                       start=['mock_device_cli --os confd --state cisco_exec'],
                       os='confd',
                       username='******',
                       tacacs_password='******')
        c.connect()
        r = c.command('config')
        self.assertEqual(
            "\n".join(r.splitlines()), """config
Entering configuration mode terminal
user@ncs(config)# """)
예제 #19
0
 def test_login_connect_credentials_old(self):
     c = Connection(hostname='APC',
                    start=['mock_device_cli --os aci --state apic_connect'],
                    os='aci',
                    series='apic',
                    credentials={
                        'default': {
                            'username': '******',
                            'password': '******'
                        }
                    })
     c.connect()
    def test_config_transaction_sdwan_iosxe(self):
        d = Connection(
            hostname='Router',
            start=['mock_device_cli --os iosxe --state sdwan_enable'],
            os='sdwan',
            platform='iosxe',
            credentials=dict(default=dict(username='******', password='******')),
            log_buffer=True)

        d.connect()
        d.configure('no logging console')
        d.disconnect()
예제 #21
0
 def test_connect_escape_codes_learn_hostname_old(self):
     c = Connection(
         hostname='APC',
         start=[
             'mock_device_cli --os aci --state apic_hostname_with_escape_codes'
         ],
         os='aci',
         series='apic',
         username='******',
         tacacs_password='******',
         learn_hostname=True)
     c.connect()
 def test_slow_config_mode(self):
     c = Connection(
         hostname='Switch',
         start=['mock_device_cli --os iosxe --state slow_config_mode'],
         os='iosxe',
         mit=True,
         init_exec_commands=[],
         init_config_commands=[],
         log_buffer=True)
     c.connect()
     c.configure(['no logging console'])
     c.disconnect()
예제 #23
0
 def test_reload(self):
     dev = Connection(
         hostname='',
         start=['mock_device_cli --os nxos --state n5k_exec'],
         os='nxos',
         series='n5k',
         username='******',
         tacacs_password='******',
     )
     dev.connect()
     dev.reload()
     dev.disconnect()
예제 #24
0
 def test_bad_connect_for_password_credential_no_recovery(self):
     """ Ensure password retry does not happen if a credential fails. """
     c = Connection(
         hostname='agent-lab11-pm',
         start=['mock_device_cli --os linux --state connect_for_password'],
         os='linux',
         credentials=dict(default=dict(username='******', password='******'),
                          bad=dict(username='******', password='******')),
         login_creds=['bad', 'default'])
     with self.assertRaisesRegex(UniconConnectionError,
                                 'failed to connect to agent-lab11-pm'):
         c.connect()
 def test_connect_reboot_console(self):
     c = Connection(
         hostname='vedge',
         start=['mock_device_cli --os sdwan --state sdwan_console'],
         os='sdwan',
         series='viptela',
         username='******',
         tacacs_password='******')
     c.connect()
     c.reload()
     c.execute('')
     self.assertEqual(c.spawn.match.match_output.split()[-1], 'vedge#')
예제 #26
0
 def test_execute_error_pattern(self):
     c = Connection(
         hostname='APC',
         start=['mock_device_cli --os apic --state apic_connect'],
         os='apic',
         username='******',
         tacacs_password='******')
     c.connect()
     for cmd in ['invalid command']:
         with self.assertRaises(SubCommandFailure):
             c.execute(cmd)
     c.disconnect()
예제 #27
0
 def test_connect_prompts(self):
     for state in [
             'sysadmin_config', 'sysadmin1', 'sysadmin2',
             'iosxr_config_ios', 'xr_vm', 'xr_vm2'
     ]:
         c = Connection(
             hostname='Router',
             start=['mock_device_cli --os iosxr --state %s' % state],
             os='iosxr',
             enable_password='******',
             init_exec_commands=[],
             init_config_commands=[])
         c.connect()
예제 #28
0
 def test_vshell(self):
     c = Connection(hostname='vedge',
                    start=['mock_device_cli --os sdwan --state sdwan_exec'],
                    os='sdwan',
                    series='viptela',
                    username='******',
                    tacacs_password='******')
     c.connect()
     c.execute('vshell')
     c.execute('cd /tmp')
     c.execute('ls -l')
     c.execute('cd')
     c.execute('exit')
예제 #29
0
 def test_admin_configure3(self):
     conn = Connection(hostname='Router',
                       start=['mock_device_cli --os iosxr --state enable2'],
                       os='iosxr',
                       enable_password='******')
     conn.connect()
     out = conn.admin_configure(
         'username root\nsecret 123\ngroup cisco-support\nexit')
     self.assertEqual(
         'username root\r\nRP/0/0/CPU0:secret 123\r\nRP/0/0/CPU0:group cisco-support\r\n'
         'RP/0/0/CPU0:exit\r\nRP/0/0/CPU0:commit\r\nRP/0/0/CPU0:', out)
     self.assertEqual(conn.state_machine.current_state, 'enable')
     conn.disconnect()
 def test_ignore_error_pattern(self):
     c = Connection(
         hostname='ncs',
         start=[
             'mock_device_cli --os confd --state juniper_exec_syntax_error'
         ],
         os='confd',
         username='******',
         tacacs_password='******')
     c.connect()
     self.assertEqual(
         c.execute('show command error', error_pattern=[]),
         '-----------------------------^\r\nsyntax error: unknown argument')