Welcome, guest! Login / Register - Why register?
Psst.. new poll here.
Psst.. new forums here.
Microsoft is blocking us again (TY IP Reputation!) so just use oauth login instead. :)

Paste

Pasted as Python by view_tool ( 14 years ago )
def index(request):
    import logging
    logging.basicConfig(
       level = logging.DEBUG,
       format = '%(asctime)s %(levelname)s %(message)s',
       filename = '/tmp/meshadmin-debug.log',
        filemode = 'w'
    )

    logging.debug('Inicio do debug')
    
    var_debug = ""
    if request.method == 'POST' and 'run' in request.POST:
        
        form = ToolsForm(request.POST)
        isPing = False

        if form.is_valid():
            destination = form.cleaned_data['node']
            cmd = 'cmd'
            if form.cleaned_data['tool'] == 'AVG':
                cmd = '/bin/ping -c 5 -q ' + destination.ip
                isPing=True
            elif form.cleaned_data['tool'] == 'THROUGHPUT':
                cmd = '/usr/bin/iperf -c ' + destination.ip
                isPing=False
            elif form.cleaned_data['tool'] == 'LOSS':
                cmd = '/bin/ping -c 100 -q ' + destination.ip
                isPing=True
            #endif

            output = commands.getoutput(cmd)
            raw_output = output
            #output = output + " : "+cmd

            #parsing output
            if isPing:
                if output.find('100% packet loss') == -1:
                    output = output.split('\n')
                    output_packets = output[3]
                    output_rtt = output[4]

                    output_packets = output_packets.split(',')

                    packets_tx = int((output_packets[0].split(' '))[0])
                    packets_rx = int((output_packets[1].split(' '))[1])

                    losses = (100.0 - (packets_rx*100.0)/packets_tx)

                    output_rtt = (output_rtt.split(' ')[3])
                    output_rtt = output_rtt.split('/')
                    rtt_min = float(output_rtt[0])
                    rtt_avg = float(output_rtt[1])
                    rtt_max = float(output_rtt[2])
                    rtt_mdev = float(output_rtt[3])

                    statistic = PingStatistic(node=destination,packets_tx=packets_tx,packets_rx=packets_rx,rtt_min=rtt_min,rtt_max=rtt_max,rtt_avg=rtt_avg,rtt_mdev=rtt_mdev,date=datetime.now())
                    ret = statistic.save()

            #nao eh ping
            else:
                #processando a saida do outro comando (iperf)

                if output.find('connected') != -1:

                    output = output.split('\n')
                    output = output[6]
                    output = output.split(' ')
                    
                    new_output = []
                    aux = 0
                    for o in output:
                        if len(str(o).strip()) > 0:
                            new_output.append(o)
                            aux += 1
                        #endif
                    #endif

                    #intervalo em segundos
                    aux = 0
                    for o in new_output:
                        if str(o).find('sec') != -1:
                            interval = new_output[aux-1]
                            break
                        aux += 1
                    #interval = output[4]
                    interval = interval.split('-')
                    interval = float(interval[1])
                    
                    aux = 0
                    transfer = 0
                    for o in new_output:
                        isKBTransferUnit = str(o).find('KB') != -1
                        isMBTransferUnit = str(o).find('MB') != -1
                        isGBTransferUnit = str(o).find('GB') != -1
                        isTransferUnit = isKBTransferUnit or isMBTransferUnit or isGBTransferUnit

                        if isTransferUnit:
                            transfer = new_output[aux-1]
                            break
                        aux += 1

                    #transfer = output[7]
                    transfer = float(transfer)


                    if isKBTransferUnit:
                        transfer = transfer/1024.0
                    elif isMBTransferUnit:
                        transfer = transfer
                    elif isGBTransferUnit:
                        transfer = transfer * 1024.0

                    aux = 0
                    bandwidth = 0
                    for o in new_output:
                        isKBBandwidthUnit = str(o).find('Kbits') != -1
                        isMBBandwidthUnit = str(o).find('Mbits') != -1
                        isGBBandwidthUnit = str(o).find('Gbits') != -1
                        isBandwidthUnit = isKBBandwidthUnit or isMBBandwidthUnit or isGBBandwidthUnit

                        if isBandwidthUnit:
                            bandwidth = new_output[aux-1]
                            break
                        aux += 1

                    #bandwidth = output[10]
                    bandwidth = float(bandwidth)
                    #bandwidth_unit = output[11]

                    if isKBBandwidthUnit:
                        bandwidth = bandwidth/1000.0
                    elif isMBBandwidthUnit:
                        bandwidth = bandwidth
                    elif isGBBandwidthUnit:
                        bandwidth = bandwidth * 1000.0
                    #endif

                    statistic = IperfStatistic(node=destination,interval=interval,transfer=transfer,bandwidth=bandwidth,date=datetime.now())
                    ret = statistic.save()
                    output = "node: "+str(destination)+"\ninterval "+str(interval)+"\ntransfer "+str(transfer)+"\nbandwidth "+str(bandwidth)
               #endif

        return render_to_response('tools/index.html',context_instance=RequestContext(request,
        {
        'output':raw_output,
        'form':ToolsForm(),
        'is_popup':True,
        'plot':True,
        'plotLog':False,
        }))

    elif request.method == 'POST' and 'log' in request.POST:
        form = ToolsForm()
        return render_to_response('tools/index.html' , context_instance=RequestContext(request,
        {
            'form': form,
            'is_popup': True,
            'plot': False,
            'plotLog':True,
        }))

    else:
        form = ToolsForm()
        return render_to_response('tools/index.html' , context_instance=RequestContext(request,
        {
            'form': form,
            'is_popup': True,
            'plot': False,
            'plotLog':False,
        }))

 

Revise this Paste

Your Name: Code Language: