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
Example #4
0
    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)