Hi Dennis,

all function arguments declare as global and pass it to the function.

All three thread is completed the execution part and after completion of
execution its stuck/hang the programme.

*def
validate_traffic_stats_st(FT_item,RT_item,forward_path_list,return_path_list,nat_type_list,pkt_st)*
:
    global flag1
    flag1 = 1

    log.info('Starting Static NAT forward Traffic Test...')

    returndict = itgen_explorer.startTrafficFlows(testbeddict,
log,'-traffic_items {0} -pktcount {1}  -profile
{2}'.format(FT_item,pkt_st,itgenProfile))
    time.sleep(5)
    global_stats_list = []
    temp = 0
    forward_ip_list = []
    return_ip_list = []
    global count_st_Rx,count_st_in_Rx,count_st_out_Rx
    count_st_Rx = 0
    count_st_in_Rx = 0
    count_st_out_Rx = 0
    for data in returndict['txrxstats']['rx'].keys():
        if "TI01" in data:
            count_st_Rx += int(returndict['txrxstats']['rx'][data] )
            count_st_in_Rx += int(returndict['txrxstats']['rx'][data] )
        elif "TI22" in data:
            count_st_Rx += int(returndict['txrxstats']['rx'][data] )
            count_st_out_Rx += int(returndict['txrxstats']['rx'][data] )

    global count_st_Tx,count_st_in_Tx,count_st_out_Tx
    count_st_Tx = 0
    count_st_in_Tx = 0
    count_st_out_Tx = 0

    for data in returndict['txrxstats']['tx'].keys():
        if "TI01" in data:
            count_st_Tx += int(returndict['txrxstats']['tx'][data] )
            count_st_in_Tx += int(returndict['txrxstats']['tx'][data] )
        elif "TI22" in data:
            count_st_Tx += int(returndict['txrxstats']['tx'][data] )
            count_st_out_Tx += int(returndict['txrxstats']['tx'][data] )


    for forward_ip_list,return_ip_list,nat_type in zip
(forward_path_list,return_path_list,nat_type_list):
        global_stats_list = []
        for translation_ip,return_ip in zip
(forward_ip_list,return_ip_list):
            output=listtostr(returndict['txrxstats']['rx'])
            if re.search('{0}'.format(translation_ip),output,re.I):
                pass
            else:
                global_stats_list.append(translation_ip)
        if global_stats_list == []:
            log.info('itgen traffic validation for {0} forward path -
verified'.format(nat_type))
            forward_ip_list = []
            return_ip_list = []
        else:
            log.error('{0} forward path itgen verification
failed'.format(nat_type))
            flag1 = 0
            return flag1
    log.info("Trafiic validation for NAT return path starting")
    returndict = itgen_explorer.startTrafficFlows(testbeddict,
log,'-traffic_items {0} -pktcount 1000  -profile
{1}'.format(RT_item,itgenProfile))
    time.sleep(5)
    local_stats_list = []
    for forward_ip_list,return_ip_list,nat_type in zip
(forward_path_list,return_path_list,nat_type_list):
        local_stats_list = []
        for translation_ip,return_ip in zip
(forward_ip_list,return_ip_list):
            output=listtostr(returndict['txrxstats']['rx'])
            if re.search('{0}'.format(return_ip),output,re.I):
                pass
            else:
                local_stats_list.append(return_ip)
        if local_stats_list == []:
            log.info('itgen traffic validation for {0} return path -
verified'.format(nat_type))
            forward_ip_list = []
            return_ip_list = []
        else:
            log.error('{0} return path itgen verification
failed'.format(nat_type))
            flag1 = 0
            return flag1

    return
flag1,count_st_Rx,count_st_in_Rx,count_st_out_Rx,count_st_Tx,count_st_in_Tx,count_st_out_Tx

*def
validate_traffic_stats_dy(FT_item,RT_item,forward_path_list,return_path_list,nat_type_list,pkt_dy_1):*
    global flag2
    flag2 = 1
    log.info('Starting Dynamic NAT forward Traffic Test...')

    returndict = itgen_explorer.startTrafficFlows(testbeddict,
log,'-traffic_items {0} -pktcount {1}  -profile
{2}'.format(FT_item,pkt_dy_1,itgenProfile))
    time.sleep(5)
    global_stats_list = []
    forward_ip_list = []
    return_ip_list = []
    global count_dy_Rx,count_dy_in_Rx,count_dy_out_Rx
    count_dy_Rx = 0
    count_dy_in_Rx = 0
    count_dy_out_Rx = 0
    for data in returndict['txrxstats']['rx'].keys():
        if "TI05" in data:
            count_dy_Rx += int(returndict['txrxstats']['rx'][data] )
            count_dy_in_Rx += int(returndict['txrxstats']['rx'][data] )
        elif "TI66" in data:
            count_dy_Rx += int(returndict['txrxstats']['rx'][data] )
            count_dy_out_Rx += int(returndict['txrxstats']['rx'][data] )

    global count_dy_Tx,count_dy_in_Tx,count_dy_out_Tx
    count_dy_Tx = 0
    count_dy_in_Tx = 0
    count_dy_out_Tx = 0
    for data in returndict['txrxstats']['tx'].keys():
        if "TI05" in data:
            count_dy_Tx += int(returndict['txrxstats']['tx'][data] )
            count_dy_in_Tx += int(returndict['txrxstats']['tx'][data] )
        elif "TI66" in data:
            count_dy_Tx += int(returndict['txrxstats']['tx'][data] )
            count_dy_out_Tx += int(returndict['txrxstats']['tx'][data] )

    for forward_ip_list,return_ip_list,nat_type in zip
(forward_path_list,return_path_list,nat_type_list):
        global_stats_list = []
        for translation_ip,return_ip in zip
(forward_ip_list,return_ip_list):
            output=listtostr(returndict['txrxstats']['rx'])
            if re.search('{0}'.format(translation_ip),output,re.I):
                pass
            else:
                global_stats_list.append(translation_ip)
        if global_stats_list == []:
            log.info('itgen traffic validation for {0} forward path -
verified'.format(nat_type))
            forward_ip_list = []
            return_ip_list = []
        else:
            log.error('{0} forward path itgen verification
failed'.format(nat_type))
            flag2 = 0
            return flag2
    log.info("Trafiic validation for NAT return path starting")
    returndict = itgen_explorer.startTrafficFlows(testbeddict,
log,'-traffic_items {0} -pktcount 1000  -profile
{1}'.format(RT_item,itgenProfile))
    time.sleep(5)
    local_stats_list = []
    for forward_ip_list,return_ip_list,nat_type in zip
(forward_path_list,return_path_list,nat_type_list):
        local_stats_list = []
        for translation_ip,return_ip in zip
(forward_ip_list,return_ip_list):
            output=listtostr(returndict['txrxstats']['rx'])
            if re.search('{0}'.format(return_ip),output,re.I):
                pass
            else:
                local_stats_list.append(return_ip)
        if local_stats_list == []:
            log.info('itgen traffic validation for {0} return path -
verified'.format(nat_type))
            forward_ip_list = []
            return_ip_list = []
        else:
            log.error('{0} return path itgen verification
failed'.format(nat_type))
            flag2 = 0
            return flag2
    return
flag2,count_dy_Rx,count_dy_in_Rx,count_dy_out_Rx,count_dy_Tx,count_dy_in_Tx,count_dy_out_Tx

*def* *delete_new_dynamic_nat_conf():*
    global pool_dy_in_new,acl_name_dy_in_new,pool_name_dy_in_new
    direction_in = 'inside'
    log.info("Deleting Dynamic NAT new entries")
    delete_dynamic_nat_conf(uut2_hdl2, direction_in,
                            acl_name_dy_in_new,
                            pool_name_dy_in_new,
                            )
    #remove pool and acl name
    log.info('Removing access-list')
    deleteACL(uut2_hdl2, log, '-type {0} -name {1}'.format('ip',
acl_name_dy_in_new))
    log.info('Unconfiguring pool on UUT')
    add_remove_pool(uut2_hdl2, 'unconfigure', pool_dy_in_new)
    return 1

On Thu, Apr 27, 2017 at 9:04 PM, Dennis Lee Bieber <wlfr...@ix.netcom.com>
wrote:

> On Thu, 27 Apr 2017 19:48:24 +0530, Iranna Mathapati
> <iranna.gan...@gmail.com> declaimed the following:
>
> >Hi Team,
> >
> >I have python code that creates  thread.Sometimes it works, sometimes it
> >gets stuck once its finish its execution part. still not yet cannot find
> >any difference between when it works or when it gets stuck. Please help.
> >
> >
> >sniffer1 =
> >threading.Thread(target=validate_traffic_stats_dy,
> args=(FT_item_dy,RT_item_dy,forward_path_list_dy,return_
> path_list_dy,nat_type_list_dy,pkt_dy_1,))
> >
> >sniffer2 =
> >threading.Thread(target=validate_traffic_stats_st,
> args=(FT_item_st,RT_item_st,forward_path_list_st,return_
> path_list_st,nat_type_list_st,pkt_st,))
> >
> >sniffer1.start()
> >
> >sniffer2.start()
> >
> >sniffer3 = threading.Thread(target=delete_new_dynamic_nat_conf)
> >
> >sniffer3.start()
> >
>
>         So where is the code for the three thread functions? Where do the
> various argument values come from?
> --
>         Wulfraed                 Dennis Lee Bieber         AF6VN
>     wlfr...@ix.netcom.com    HTTP://wlfraed.home.netcom.com/
>
> --
> https://mail.python.org/mailman/listinfo/python-list
>
-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to