def test_reload_image_from_rommon(self):
        md = MockDeviceTcpWrapperIOSXE(port=0, state='cat9k_rommon')
        md.start()

        c = Connection(hostname='switch',
                       start=['telnet 127.0.0.1 {}'.format(md.ports[0])],
                       os='iosxe',
                       platform='cat9k',
                       mit=True,
                       settings=dict(POST_DISCONNECT_WAIT_SEC=0,
                                     GRACEFUL_DISCONNECT_WAIT_SEC=0.2),
                       credentials=dict(default=dict(username='******',
                                                     password='******'),
                                        alt=dict(username='******',
                                                 password='******')))
        try:
            c.connect()
            self.assertEqual(c.state_machine.current_state, 'rommon')
            c.execute('unlock flash:')
            c.settings.POST_RELOAD_WAIT = 1
            c.reload(image_to_boot='tftp://1.1.1.1/latest.bin')
            self.assertEqual(c.state_machine.current_state, 'enable')
        finally:
            c.disconnect()
            md.stop()
    def test_reload_ha(self):
        md = MockDeviceTcpWrapperIOSXECat9k(
            port=0, state='cat9k_ha_active_escape,cat9k_ha_standby_escape')
        md.start()

        c = Connection(
            hostname='switch',
            start=[
                'telnet 127.0.0.1 {}'.format(md.ports[0]),
                'telnet 127.0.0.1 {}'.format(md.ports[1]),
            ],
            os='iosxe',
            platform='cat9k',
            settings=dict(POST_DISCONNECT_WAIT_SEC=0,
                          GRACEFUL_DISCONNECT_WAIT_SEC=0.2),
            credentials=dict(default=dict(username='******', password='******'),
                             alt=dict(username='******', password='******')),
            # debug=True
        )
        try:
            c.connect()
            c.settings.POST_RELOAD_WAIT = 1
            c.reload()
            self.assertEqual(c.state_machine.current_state, 'enable')
        finally:
            c.disconnect()
            md.stop()
예제 #3
0
 def test_asav_reload(self):
     c = Connection(hostname='ASA',
                         start=['mock_device_cli --os asa --state asa_reload'],
                         os='asa',
                         platform='asav',
                         credentials=dict(default=dict(username='******', password='******')))
     c.connect()
     c.reload()
 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.POST_RELOAD_WAIT = 1
     c.reload()
 def test_reload(self):
     c = Connection(hostname='Router',
                         start=['mock_device_cli --os iosxr --state ncs5k_enable'],
                         os='iosxr',
                         series='ncs5k',
                         username='******')
     c.connect()
     c.reload()
     self.assertEqual(c.spawn.match.match_output,'\r\nRP/0/RP0/CPU0:Router#\r\nRP/0/RP0/CPU0:Router#')
 def test_reload_credentails(self):
     c = Connection(hostname='APC',
                         start=['mock_device_cli --os apic --state apic_connect'],
                         os='apic',
                         credentials={'default':{
                             'username': '******',
                             'password': '******'}})
     c.connect()
     c.settings.POST_RELOAD_WAIT = 1
     c.reload()
예제 #7
0
 def test_reload(self):
     c = Connection(hostname='LEAF',
                    start=['mock_device_cli --os aci --state n9k_login'],
                    os='aci',
                    series='n9k',
                    username='******',
                    tacacs_password='******')
     c.connect()
     c.settings.POST_RELOAD_WAIT = 1
     c.reload()
예제 #8
0
 def test_reload_credentials(self):
     c = Connection(
         hostname='Router',
         start=['mock_device_cli --os iosxr --state ncs5k_enable'],
         os='iosxr',
         platform='ncs5k',
         credentials=dict(default=dict(username='******', password='******')))
     c.connect()
     c.reload()
     self.assertIn('\r\nRP/0/RP0/CPU0:Router#', c.spawn.match.match_output)
예제 #9
0
 def test_reload_credentials(self):
     dev = Connection(
         hostname='',
         start=['mock_device_cli --os nxos --state n5k_exec'],
         os='nxos',
         series='n5k',
         credentials=dict(default=dict(username='******', password='******')),
     )
     dev.connect()
     dev.reload()
     dev.disconnect()
 def test_reload_vty(self):
     c = Connection(hostname='Router',
                         start=['mock_device_cli --os iosxr --state ncs5k_enable_vty'],
                         os='iosxr',
                         series='ncs5k',
                         username='******',
                         password='******')
     c.connect()
     c.settings.RELOAD_WAIT=2
     c.reload()
     self.assertEqual(c.spawn.match.match_output,'end\r\nRP/0/RP0/CPU0:Router#')
예제 #11
0
 def test_asa_reload(self):
     c = Connection(hostname='ASA',
                         start=['mock_device_cli --os asa --state asa_reload'],
                         os='asa',
                         series='asav',
                         username='******',
                         tacacs_password='******',
                         line_password='******',
                         enable_password='******')
     c.connect()
     c.reload()
예제 #12
0
 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()
     self.assertEqual(c.spawn.match.match_output.split()[-1], 'vedge#')
예제 #13
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()
 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#')
예제 #15
0
 def test_reload(self):
     c = Connection(
         hostname='LEAF',
         start=[
             'mock_device_cli --os nxos --state n9k_login --hostname LEAF'
         ],
         os='nxos',
         platform='aci',
         tacacs_password='******')
     c.connect()
     c.reload()
     c.disconnect()
예제 #16
0
 def test_connect_reboot(self):
     c = Connection(hostname='vedge',
                    start=['mock_device_cli --os sdwan --state sdwan_exec'],
                    os='sdwan',
                    platform='viptela',
                    username='******',
                    tacacs_password='******')
     c.connect()
     c.settings.RELOAD_WAIT = 3
     c.reload()
     c.execute('')
     self.assertEqual(c.spawn.match.match_output.split()[-1], 'vedge#')
예제 #17
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()
예제 #18
0
 def test_reload_config_lock_retries_fail(self):
     dev = Connection(
         hostname='N93_1',
         start=['mock_device_cli --os nxos --state login2'],
         os='nxos',
         username='******',
         tacacs_password='******',
         enable_password='******',
     )
     dev.connect()
     dev.start = ['mock_device_cli --os nxos --state reconnect_login']
     with self.assertRaises(ConnectionError):
         dev.reload(config_lock_retries=1, config_lock_retry_sleep=1)
예제 #19
0
 def test_reload_skip_poap(self):
     dev = Connection(
         hostname='N93_1',
         start=['mock_device_cli --os nxos --state login2'],
         os='nxos',
         username='******',
         tacacs_password='******',
         enable_password='******',
     )
     dev.connect()
     dev.settings.RELOAD_RECONNECT_WAIT = 1
     dev.reload(reload_command='reload skip_poap')
     dev.configure('no logging console')
     dev.disconnect()
예제 #20
0
 def test_reload(self):
     c = Connection(
         hostname='ASA',
         start=[
             'mock_device_cli --os asa --state asa_fp2k_console_disable'
         ],
         os='asa',
         platform='fp2k',
         credentials=dict(default=dict(username='******', password='******'),
                          enable=dict(password='******')),
     )
     c.connect()
     c.reload()
     c.disconnect()
 def test_reload_ssh(self):
     c2 = Connection(
         hostname='Firepower',
         start=['mock_device_cli --os fxos --state fp4k_ssh_fxos'],
         os='fxos',
         platform='fp4k',
         credentials=dict(default=dict(username='******', password='******'),
                          enable=dict(password='******'),
                          sudo=dict(password='******')))
     c2.connect()
     c2.context['console'] = False
     c2.settings.RELOAD_WAIT = 3
     c2.reload()
     c2.disconnect()
예제 #22
0
 def test_reload_config_lock_retries_succeed(self):
     dev = Connection(
         hostname='N93_1',
         start=['mock_device_cli --os nxos --state login2'],
         os='nxos',
         username='******',
         tacacs_password='******',
         enable_password='******',
     )
     dev.connect()
     dev.start = ['mock_device_cli --os nxos --state reconnect_login']
     dev.reload(config_lock_retries=2, config_lock_retry_sleep=1)
     dev.configure('no logging console')
     dev.disconnect()
예제 #23
0
 def test_reload_credentials_nondefault(self):
     dev = Connection(
         hostname='',
         start=['mock_device_cli --os nxos --state n5k_exec'],
         os='nxos',
         platform='n5k',
         credentials=dict(default=dict(
             username='******', password='******'),
             alt=dict(
             username='******', password='******')),
     )
     dev.connect()
     dev.reload(reload_command="reload2", reload_creds='alt')
     dev.disconnect()
예제 #24
0
 def test_reload_config_lock_retries_fail(self):
     dev = Connection(
         hostname='N93_1',
         start=['mock_device_cli --os nxos --state login2'],
         os='nxos',
         username='******',
         tacacs_password='******',
         enable_password='******',
     )
     dev.connect()
     dev.settings.RELOAD_RECONNECT_WAIT = 1
     dev.settings.CONFIG_LOCK_RETRY_SLEEP = 1
     dev.settings.CONFIG_LOCK_RETRIES = 1
     dev.start = ['mock_device_cli --os nxos --state reconnect_login']
     with self.assertRaises(ConnectionError):
         dev.reload(config_lock_retries=1, config_lock_retry_sleep=1)
예제 #25
0
 def test_reload_config_lock_retries_succeed_with_default(self):
     dev = Connection(
         hostname='N93_1',
         start=['mock_device_cli --os nxos --state login2'],
         os='nxos',
         username='******',
         tacacs_password='******',
         enable_password='******',
     )
     dev.connect()
     dev.start = ['mock_device_cli --os nxos --state reconnect_login']
     dev.settings.RELOAD_RECONNECT_WAIT = 1
     dev.settings.CONFIG_LOCK_RETRY_SLEEP = 1
     dev.reload()
     dev.configure('no logging console')
     dev.disconnect()
    def test_reload(self):
        md = MockDeviceTcpWrapperIOSXE(port=0, state='stack_enable' + ',stack_enable'*4, stack=True)
        md.start()
        d = Connection(hostname='Router',
                       start = ['telnet 127.0.0.1 ' + str(i) for i in md.ports[:]],
                       os='iosxe',
                       chassis_type='stack',
                       username='******',
                       tacacs_password='******',
                       enable_password='******')
        d.settings.STACK_POST_RELOAD_SLEEP = 0
        d.connect()
        self.assertTrue(d.active.alias == 'peer_1')

        d.reload()
        d.disconnect()
        md.stop()
 def test_reload_with_image(self):
     c = Connection(
         hostname='switch',
         start=[
             'mock_device_cli --os iosxe --state cat9k_enable_reload_to_rommon'
         ],
         os='iosxe',
         platform='cat9k',
         mit=True,
         credentials=dict(default=dict(username='******', password='******'),
                          alt=dict(username='******', password='******')),
         settings=dict(POST_DISCONNECT_WAIT_SEC=0,
                       GRACEFUL_DISCONNECT_WAIT_SEC=0.2),
         log_buffer=True)
     c.connect()
     c.reload(image_to_boot='tftp://1.1.1.1/latest.bin')
     self.assertEqual(c.state_machine.current_state, 'enable')
     c.disconnect()
 def test_reload_via_non_console(self):
     c = Connection(hostname='csp-2100',
                     start=['mock_device_cli --os confd --state csp_enable'],
                     os='confd',
                     series='csp',
                     username='******',
                     tacacs_password='******',
                     enable_password ='******',
                     init_config_commands=[])
     c.connect()
     c.settings.RELOAD_WAIT = 1
     r = c.reload()
     from unicon.utils import Utils
     output = Utils().remove_ansi_escape_codes(c.spawn.match.match_output.splitlines()[-1])
     self.assertEqual(output, 'csp-2100#')
예제 #29
0
 def test_iosxecat3k_reload_output(self):
     d = Connection(hostname='Router',
                    start=['mock_device_cli --os iosxe --state cat3k_exec'],
                    os='iosxe',
                    series='cat3k',
                    line_password='******',
                    enable_password='******')
     d.connect()
     md = unicon.mock.mock_device.MockDevice(device_os='iosxe',
                                             state='cat3k_exec')
     expected_output = md.mock_data['reload_cat3k_logs']['prompt']
     res, output = d.reload(return_output=True)
     self.assertTrue(res)
     self.assertIn(expected_output.strip('\n'),
                   '\n'.join(output.splitlines()))
예제 #30
0
class TestAireOsPlugin(unittest.TestCase):
    def setUp(self):
        self.c = Connection(
            hostname='Cisco Capwap Simulator',
            start=[
                'mock_device_cli --os aireos  --state aireos_exec --hostname "{}"'
                .format(hostname)
            ],
            os='aireos',
            username='******')
        self.cc = Connection(
            hostname='Cisco Capwap Simulator',
            start=[
                'mock_device_cli --os aireos  --state aireos_exec --hostname "{}"'
                .format(hostname)
            ],
            os='aireos',
            credentials=dict(default=dict(username='******', password='******')))

    def test_connect(self):
        self.c.connect()

    def test_reload(self):
        self.c.connect()
        self.c.reload()

    def test_reload_credentials(self):
        self.cc.connect()
        self.cc.reload()

    def test_restart(self):
        self.c.connect()
        self.c.reload("restart")

    def test_press_any_key(self):
        self.c.connect()
        self.c.execute(
            "grep exclude generation 'show run-config startup-commands'")

    def test_press_enter_key(self):
        self.c.connect()
        self.c.execute("show run-config")

    def test_more(self):
        self.c.connect()
        self.c.execute("show command with more")

    def test_execute_error_pattern(self):
        for cmd in ['transfer upload start', 'show foo', 'debug lwapp']:
            with self.assertRaises(SubCommandFailure) as err:
                r = self.c.execute(cmd)

    def test_save_config(self):
        self.c.connect()
        self.c.execute('save config')