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()
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()
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()
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()
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', ''), '')
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')
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()
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()
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#')
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)#')
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)# """)
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()
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()
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()
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#')
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()
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()
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')
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')