def test_NCS1K_2_connection_refused(self): urls = ["telnet://*****:*****@127.0.0.1:10024"] self.conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=0) with self.assertRaises(condoor.ConnectionError): self.conn.discovery(self.logfile_condoor) self.conn.disconnect()
def start(self, ctx): conn = condoor.Connection(ctx.hostname, ctx.host_urls) try: conn.connect() ctx.success = True except condoor.ConnectionError as e: pass
def start(self, ctx): conn = condoor.Connection(ctx.host.hostname, ctx.host_urls, log_dir=ctx.log_directory) try: conn.discovery() except condoor.GeneralError as e: ctx.post_status = e.message return try: conn.connect() if conn.os_type == "XR": ctx.inactive_cli = conn.send('sh install inactive summary') ctx.active_cli = conn.send('sh install active summary') ctx.committed_cli = conn.send('sh install committed summary') elif conn.os_type == "eXR": ctx.inactive_cli = conn.send('sh install inactive') ctx.active_cli = conn.send('sh install active') ctx.committed_cli = conn.send('sh install committed') self.get_software(ctx) ctx.success = True except condoor.GeneralError as e: ctx.post_status = e.message finally: conn.disconnect()
def test_ASR9K_3_connection_wrong_user(self): """ASR9k: Test wrong username""" urls = ["telnet://*****:*****@127.0.0.1:10023"] self.conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) with self.assertRaises(condoor.ConnectionAuthenticationError): self.conn.connect(self.logfile_condoor)
def test_ASR903_4_connection_wrong_enable_password(self): """ASR903: Test wrong enable password""" urls = ["telnet://:[email protected]:10026/?enable_password=admin"] self.conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) with self.assertRaises(condoor.ConnectionAuthenticationError): self.conn.connect(self.logfile_condoor)
def test_NCS540_1_discovery(self): remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10023"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "ios", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "NCS540", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "N540", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "eXR", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "6.3.2.09I", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Rack 0", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual(conn.udi['description'], "NCS 540 Series 24x1/10GE, 8x10/25GE, 2x100GE Fixed Chassis", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "N540-24Z8Q2C-M", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "FOC2118R11N", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "RP/0/RP0/CPU0:ios#", "Wrong Prompt: {}".format(conn.prompt)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_NCS1K_3_connection_wrong_user(self): urls = ["telnet://*****:*****@127.0.0.1:10023"] self.conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=0) with self.assertRaises(condoor.ConnectionAuthenticationError): self.conn.discovery(self.logfile_condoor) self.conn.disconnect()
def test_ASR903_1_discovery(self): """ASR903: Test the connection and discovery""" remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10026/?enable_password=admin"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "PAN-5205-ASR903", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "ASR900", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "ASR-903", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "XE", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "03.18.00.S", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Chassis", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual(conn.udi['description'], "ASR 903 Series Router Chassis", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "ASR-903", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "FOX1717P569", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "PAN-5205-ASR903#", "Wrong Prompt: {}".format(conn.prompt)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_NCS1K_1_discovery(self): """NCS1k: Test the connection and discovery""" remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10023"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "ios", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "NCS1K", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "NCS1002", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "eXR", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "6.0.1", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Rack 0", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual(conn.udi['description'], "Network Convergence System 1000 Controller", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "NCS1002", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "CHANGE-ME-", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "RP/0/RP0/CPU0:ios#", "Wrong Prompt: {}".format(conn.prompt)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_ASR9K_2_rediscovery(self): """ASR9k: Test whether the cached information is used""" urls = ["telnet://*****:*****@127.0.0.1:10023"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "ios", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "ASR9K", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "ASR-9904", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "XR", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "5.3.3", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "chassis ASR-9904-AC", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual(conn.udi['description'], "ASR 9904 2 Line Card Slot Chassis with V2 AC PEM", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "ASR-9904-AC", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "FOX1830GT5W", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "RP/0/RP0/CPU0:ios#", "Wrong Prompt: {}".format(conn.prompt)) self.assertEqual(conn.is_console, False, "Console: {}".format(conn.is_console)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_ASR9K_4_connection_refused(self): """ASR9k: Test when the connection is refused""" urls = ["telnet://*****:*****@127.0.0.1:10024"] self.conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) with self.assertRaises(condoor.ConnectionError): self.conn.connect(self.logfile_condoor)
def start(self, ctx): conn = condoor.Connection(ctx.hostname, ctx.host_urls, log_dir=ctx.log_directory, log_level=logging.DEBUG) try: conn.connect() ctx.success = True except (condoor.ConnectionError, condoor.GeneralError) as e: logger.error(str(e)) raise e finally: conn.disconnect()
def test_ASR9K64_4_connection_refused(self): urls = ["telnet://*****:*****@127.0.0.1:10024"] self.conn = condoor.Connection('host', urls, log_session=self.log_session, log_level=self.log_level) with self.assertRaises(condoor.ConnectionError): self.conn.connect(self.logfile_condoor) self.conn.disconnect()
def test_ASR9K64_3_connection_wrong_user(self): urls = ["telnet://*****:*****@127.0.0.1:10022"] self.conn = condoor.Connection('host', urls, log_session=self.log_session, log_level=self.log_level) with self.assertRaises(condoor.ConnectionAuthenticationError): self.conn.connect(self.logfile_condoor) self.conn.disconnect()
def test_sun_connection_wrong_passowrd(self): urls = [ "telnet://*****:*****@127.0.0.1:10023", "telnet://*****:*****@host1" ] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) with self.assertRaises(condoor.ConnectionAuthenticationError): conn.connect(self.logfile_condoor) conn.disconnect()
def discover_platform_info(ctx): conn = condoor.Connection(ctx.hostname, ctx.host_urls) try: conn.discovery() ctx.host.family = conn.family ctx.host.platform = conn.platform ctx.host.software_platform = get_software_platform(family=conn.family, os_type=conn.os_type) ctx.host.software_version = get_software_version(conn.os_version) ctx.host.os_type = conn.os_type ctx.db_session.commit() except condoor.ConnectionError as e: pass finally: conn.disconnect()
def test_sun_connection(self): remove_cache_file() urls = [ "telnet://*****:*****@127.0.0.1:10023", "telnet://*****:*****@host1" ] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) with self.assertRaises(condoor.ConnectionTimeoutError): conn.connect(self.logfile_condoor) conn.disconnect()
def test_XR12K_1_discovery(self): """ASR9k: Test the connection and discovery""" remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10023"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) # TODO: Test if device_info is correct self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "GSR-PE19", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "XR12K", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "GSR16", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "XR", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "4.2.1", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Chassis", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "Cisco 12416 320 Gbps", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "GSR16/320", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "1.0", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "TBM12077586", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "RP/0/7/CPU0:GSR-PE19#", "Wrong Prompt: {}".format(conn.prompt)) self.assertEqual(conn.is_console, False, "Console: {}".format(conn.is_console)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_C4500X_1_discovery(self): remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10024"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "Switch", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "C4500-X", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "WS-C4500X-32", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "XE", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "03.08.03.E", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Switch System", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "Cisco Systems, Inc. WS-C4500X-32 2 slot switch", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "JAE154100BA", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "Switch#", "Wrong Prompt: {}".format(conn.prompt)) self.assertEqual(conn.is_console, False, "Console connection not detected") with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_NCS6K_1_discovery(self): remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10033"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) print(conn.device_info) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "sdr_1", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "NCS6K", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "PROTO-L-CHASSIS", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "eXR", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "6.5.1.09I", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Rack 0", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "Cisco PANINI Proto 8-Slots Line Card Chassis", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "PROTO-L-CHASSIS", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "FMP12180270", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "RP/0/RP0/CPU0:sdr_1#", "Wrong Prompt: {}".format(conn.prompt)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_NX9K_1_discovery(self): remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10024"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "switch", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "N9K", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "N9K-C9508", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "NX-OS", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "7.0(3)IED5(1)", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Chassis", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "Nexus9000 C9508 (8 Slot) Chassis", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "N9K-C9508", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "FGE18210BQR", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "switch#", "Wrong Prompt: {}".format(conn.prompt)) self.assertEqual(conn.is_console, True, "Console connection not detected") with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_ASR920_1_discovery(self): """ASR920: Test the connection and discovery""" remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10027/?enable_password=admin"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "CSG-5502-ASR920", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "ASR900", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "ASR-920", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "XE", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "03.16.00.S", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Chassis", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "Cisco ASR920 Series - 12GE and 2-10GE - AC model", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "ASR-920-12CZ-A", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "CAT1928U2YX", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "CSG-5502-ASR920#", "Wrong Prompt: {}".format(conn.prompt)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_ASR9K64_1_discovery(self): """ASR9k-64: Test whether the cached information is not used""" remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10022"] conn = condoor.Connection('host', urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) print(conn.device_info) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "ios", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "ASR9K", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "ASR-9904", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "eXR", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "6.2.1.11I", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Rack 0", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "ASR-9904 AC Chassis", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "ASR-9904-AC", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "FOX1739G95R", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "RP/0/RP0/CPU0:ios#", "Wrong Prompt: {}".format(conn.prompt)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def run(url, cmd, log_path, log_level, log_session, force_discovery, print_info): """Main function.""" log_level = log_levels[log_level] conn = condoor.Connection("host", list(url), log_session=log_session, log_level=log_level, log_dir=log_path) try: conn.connect(force_discovery=force_discovery) if print_info: echo_info(conn) for command in cmd: result = conn.send(command) print("\nCommand: {}".format(command)) print("Result: \n{}".format(result)) except (condoor.ConnectionError, condoor.ConnectionAuthenticationError, condoor.ConnectionTimeoutError, condoor.InvalidHopInfoError, condoor.CommandSyntaxError, condoor.CommandTimeoutError, condoor.CommandError, condoor.ConnectionError) as excpt: click.echo(excpt) finally: conn.disconnect() return
def discover_platform_info(ctx): try: log_dir = os.path.join(get_log_directory(), create_log_directory(ctx.host.connection_param[0].host_or_ip)) except Exception: log_dir = None """Discover platform when added to CSM.""" conn = condoor.Connection(name=ctx.hostname, urls=ctx.host_urls, log_level=logging.CRITICAL, log_dir=log_dir) try: conn.connect(force_discovery=True) ctx.host.family = conn.family ctx.host.platform = conn.platform ctx.host.software_platform = get_software_platform(family=conn.family, os_type=conn.os_type) ctx.host.software_version = get_software_version(conn.os_version) ctx.host.os_type = conn.os_type ctx.db_session.commit() except condoor.ConnectionError as e: logger.error(str(e)) finally: conn.disconnect()
def test_ASR901_1_discovery(self): """ASR901: Test the connection and discovery""" remove_cache_file() urls = ["telnet://*****:*****@127.0.0.1:10025/?enable_password=admin"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "CSG-1202-ASR901", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "ASR900", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "A901", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "IOS", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "15.3(2)S1", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "A901-6CZ-FT-A Chassis", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "A901-6CZ-FT-A Chassis", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "A901-6CZ-FT-A", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "CAT1650U01P", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "CSG-1202-ASR901#", "Wrong Prompt: {}".format(conn.prompt)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_NX7700C_2_rediscovery(self): urls = ["telnet://*****:*****@127.0.0.1:10026"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "switch", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "Nexus7000", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "N77-C7706", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "NX-OS", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "8.1(2a)", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Chassis", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "Nexus7700 C7706 (6 Slot) Chassis", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "N77-C7706", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "FXS1824Q0SE", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "switch#", "Wrong Prompt: {}".format(conn.prompt)) self.assertEqual(conn.is_console, True, "Console connection not detected") with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_NCS5500_2_rediscovery(self): urls = ["telnet://*****:*****@127.0.0.1:10023"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "ios", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "NCS5500", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "NCS-5508", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "eXR", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "6.0.1", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Rack 0", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual( conn.udi['description'], "NCS5500 8 Slot Single Chassis", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "NCS-5508", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "FGE194714QX", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "RP/0/RP0/CPU0:ios#", "Wrong Prompt: {}".format(conn.prompt)) with self.assertRaises(condoor.CommandSyntaxError): conn.send("wrongcommand") conn.disconnect()
def test_NCS4K_2_discovery(self): """NCS4k: Test whether the cached information is used""" urls = ["telnet://*****:*****@127.0.0.1:10023"] conn = condoor.Connection("host", urls, log_session=self.log_session, log_level=self.log_level) self.conn = conn conn.connect(self.logfile_condoor) self.assertEqual(conn.is_discovered, True, "Not discovered properly") self.assertEqual(conn.hostname, "ios", "Wrong Hostname: {}".format(conn.hostname)) self.assertEqual(conn.family, "NCS4K", "Wrong Family: {}".format(conn.family)) self.assertEqual(conn.platform, "NCS4016", "Wrong Platform: {}".format(conn.platform)) self.assertEqual(conn.os_type, "eXR", "Wrong OS Type: {}".format(conn.os_type)) self.assertEqual(conn.os_version, "6.0.2.10I", "Wrong Version: {}".format(conn.os_version)) self.assertEqual(conn.udi['name'], "Rack 0", "Wrong Name: {}".format(conn.udi['name'])) self.assertEqual(conn.udi['description'], "NCS 4016 shelf assembly - DC Power", "Wrong Description: {}".format(conn.udi['description'])) self.assertEqual(conn.udi['pid'], "NCS4016-SA-DC", "Wrong PID: {}".format(conn.udi['pid'])) self.assertEqual(conn.udi['vid'], "V01", "Wrong VID: {}".format(conn.udi['vid'])) self.assertEqual(conn.udi['sn'], "SAL1931LDUG", "Wrong S/N: {}".format(conn.udi['sn'])) self.assertEqual(conn.prompt, "RP/0/RP0/CPU0:ios#", "Wrong Prompt: {}".format(conn.prompt)) conn.disconnect()
def run(self, csm, plugin_names=[]): self.csm = csm self._set_logging(self.csm.host.hostname, csm.log_directory, csm.log_level) plugin_names = plugin_names if hasattr(plugin_names, '__iter__') else [plugin_names] device = condoor.Connection(self.csm.host.hostname, self.csm.host_urls, log_dir=self.csm.log_directory) try: self.log("Device Discovery Pending") device.discovery() except condoor.ConnectionError as e: self.csm.post_status(e.message) return False self.csm.save_data('udi', device.udi) self.csm.save_data('device_info', device.device_info) try: self.log("Device Connection Pending") device.connect() except condoor.ConnectionError as e: self.csm.post_status(e.message) return False self.log("Device Connected Successfully") if plugin_names: self.filter = lambda plugin_info: (device.family in plugin_info.platforms) and \ (self.csm.requested_action in plugin_info.phases) and \ (plugin_info.name in plugin_names) else: self.filter = lambda plugin_info: (device.family in plugin_info.platforms) and \ (self.csm.requested_action in plugin_info.phases) nop = self.locate_plugins() self.log("Number of plugins: {}".format(nop)) plugins = self.load_plugins() list_of_plugins = ", ".join(plugin.name for plugin in plugins) self.log("Plugins to be launched: {}".format(list_of_plugins)) try: for plugin in plugins: self.log("Launching {} Plugin".format(plugin.name)) self.current_plugin = plugin.name plugin.plugin_object.start(self, device) self.current_plugin = None self.log("Finished {} Plugin".format(plugin.name)) except PluginError as e: self.csm.success = False self.csm.post_status(e.message) return False except (condoor.ConnectionError, condoor.CommandError) as e: self.csm.success = False self.csm.post_status(e.message) self.logger.error(e.message) return False except Exception as e: self.logger.error(e.__class__) self.logger.error(e.message) self.csm.success = False self.csm.post_status(e.message) return False finally: device.disconnect() self.csm.success = True return True