def connect_switch(self): """ Connect switch. Arguments: host : IP address. port : Valid Port No. username : Valid User Name. password : Valid password. timeout : valid switch timeout with sec """ global sw_mgr host = get_config_arg("login_credentials", "host") port = get_config_arg("login_credentials", "port") username = get_config_arg("login_credentials", "user_name") password = get_config_arg("login_credentials", "password") timeout = get_config_arg("login_credentials", "timeout") LOG.info('connecting switch <IP:Port = %s:%s>\n' % (host, port)) sw_mgr = manager.connect_ssh( host=host, port=port, username=username, password=password, timeout=int(timeout), hostkey_verify=False)
def get_valid_ingress_port(): """get the existing ingress list from config.txt file """ ingress_port = [] ex_ingress_ports = [] ingressPrtRange = (get_config_arg("cross_connects", "ingress_ports_range")).split('-') for i in range(int(ingressPrtRange[0]), int(ingressPrtRange[1])+1): ex_ingress_ports.append(i) final_ing_prt_list = [] for i in range(0, 3): prt_num = ex_ingress_ports[i] ingress_port.append(prt_num) ing_str = str(ingress_port) for i in range(1, 8, 3): val = ''.join(ing_str[i]) final_ing_prt_list.append(val) return final_ing_prt_list
def get_valid_egress_port(): """get the existing egress port list from config.txt file """ egress_port = [] ex_egress_ports = [] egressPrtRange = (get_config_arg("cross_connects", "egress_ports_range")).split('-') for j in range(int(egressPrtRange[0]), int(egressPrtRange[1])+1): ex_egress_ports.append(j) final_eg_prt_list = [] for i in range(0, 3): prt_num = ex_egress_ports[i] egress_port.append(prt_num) eg_str = str(egress_port) for i in range(1, 10, 4): val = ''.join(eg_str[i])+''.join(eg_str[i+1]) final_eg_prt_list.append(val) return final_eg_prt_list
def get_existing_port_list(self): """get the existing ingress and egress port list from config.txt file """ ingressPrtRange = (get_config_arg("cross_connects", "ingress_ports_range")).split('-') egressPrtRange = (get_config_arg("cross_connects", "egress_ports_range")).split('-') for i in range(int(ingressPrtRange[0]), int(ingressPrtRange[1])+1): ex_ingress_ports.append(i) for j in range(int(egressPrtRange[0]), int(egressPrtRange[1])+1): ex_egress_ports.append(j) LOG.info('ex_ingress_ports : %s\n\n' % ex_ingress_ports) LOG.info('ex_egress_ports : %s\n\n' % ex_egress_ports)
def set_and_get_boot_datetime(self, **kwargs): """create xml to get restart datetime info then parse get switch output xml , compare it with existing values.Finally save the output in final.csv file Arguments: file_name : any file name """ global sw_mgr global host global curr_time self.create_box('test_set_and_get_boot_datetime') username = get_config_arg("login_credentials", "cli_username") password = get_config_arg("login_credentials", "cli_password") s = time.time() ssh = paramiko.SSHClient() ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy()) ssh.connect(host, username=username, password=password) stdin, stdout, stderr = ssh.exec_command("date -u +'%Y-%m-%dT%H:%M:%S.%s%z'") sys_restart = ssh.exec_command("reboot") t = stdout.readlines() now = datetime.datetime.now() curr_time = now.isoformat() LOG.info('-----[ create xml for set operation ]-----\n') xmlstr = """<system-restart xmlns="http://www.polatis.com/yang/optical-switch">""" LOG.info('%s\n\n' % xmlstr) try: xmlout = sw_mgr.rpc(xmlstr) except: time.sleep(180) print '\n\n' self.connect_switch() #LOG.info('-----[ output from switch ]-----\n\n%s\n\n' % xmlout) LOG.info('-----[ create xml for get operation ]-----\n') sys_config = Element('opsw:system-config', {'xmlns:plts':"http://www.polatis.com/yang/polatis-switch", 'xmlns:opsw':"http://www.polatis.com/yang/optical-switch"}) boot_time = SubElement(sys_config, 'opsw:boot-datetime') xmlstr = tostring(sys_config) xmlout = self.get_rpc_request(xmlstr) prettyXml = self.prettify(xmlout) self.write_to_file(kwargs['file_name'], prettyXml); curr_time = str(t).split('\'') match = re.search(r'(\d+-\d+-\d+T\d+:\d+)', curr_time[1]) curr_time = match.group(1) result = self.compare_list(xmlout) e = time.time() d = int(round((e - s)* 1000)) csvOutput('set-current-datetime', 'set_and_get_boot_datetime', d, result) nose.tools.assert_equals('PASS', result)