示例#1
0
def loadbalancer(datarate, Balancer, chain):
    if Balancer['type'] == 'min':
        if datarate < float(Balancer['threshhold']):
            for flow_delete in Balancer['Delete flows']:
                delete_flow(flow_finder(flow_delete))
            for flow_add in Balancer['Add flows']:
                add_flow(flow_finder(flow_add))
            return 'used'
        else:
            return ''
    elif Balancer['type'] == 'max':
        if datarate > float(Balancer['threshhold']):

            print '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'
            print '[LB Info]' + ctime()
            print 'Load balancer triggered:' + ' Chain- ' + chain + ' Rule- ' + Balancer[
                'balancerName']

            for flow_delete in Balancer['Delete flows']:
                delete_flow(flow_finder(flow_delete))

            for flow_add in Balancer['Add flows']:
                add_flow(flow_finder(flow_add))

            return 'used'
        else:
            return ''
示例#2
0
def loadbalancer(datarate,Balancer,chain):
        if  Balancer['type']=='min':
                if datarate<float(Balancer['threshhold']):
                        for flow_delete in Balancer['Delete flows']:
                            delete_flow(flow_finder(flow_delete))
                        for flow_add in Balancer['Add flows']:
                            add_flow(flow_finder(flow_add))
                        return 'used'
                else:
                        return ''
        elif  Balancer['type']=='max':
                if datarate>float(Balancer['threshhold']):

                        print '>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>'
                        print '[LB Info]'+ctime()
                        print 'Load balancer triggered:'+' Chain- '+chain+' Rule- '+Balancer['balancerName']

                        for flow_delete in Balancer['Delete flows']:
                                delete_flow(flow_finder(flow_delete))

                        for flow_add in Balancer['Add flows']:
                                add_flow(flow_finder(flow_add))


                        return 'used'
                else:
                        return ''
def recovery_manager(tailNodeConnector, headNodeConnector, reds):

    # search if any redundancy rules hit
    for red in reds:
        if tailNodeConnector == red["tailNodeConnector"]:
            if headNodeConnector == red["headNodeConnector"]:
                print "A previous failed link recovered:", red["redundancy name"]
                for flow_add in red["Add flows"]:
                    delete_flow(flow_finder(flow_add))
                for flow_delete in red["Delete flows"]:
                    add_flow(flow_finder(flow_delete))
示例#4
0
def recovery_manager(tailNodeConnector, headNodeConnector, reds):

    #search if any redundancy rules hit
    for red in reds:
        if tailNodeConnector == red['tailNodeConnector']:
            if headNodeConnector == red['headNodeConnector']:
                print 'A previous failed link recovered:', red[
                    'redundancy name']
                for flow_add in red['Add flows']:
                    delete_flow(flow_finder(flow_add))
                for flow_delete in red['Delete flows']:
                    add_flow(flow_finder(flow_delete))
def redundancy_manager(tailNodeConnector, headNodeConnector, reds):

    #search if any redundancy rules hit
    for red in reds:
        if tailNodeConnector == red['tailNodeConnector']:
            if headNodeConnector == red['headNodeConnector']:
                print 'redundancy activated:', red['redundancy name']
                for flow_delete in red['Delete flows']:
                    delete_flow(flow_finder(flow_delete))

                delete_flow(flow_finder(red['Add flows'][0]))

                for flow_add in red['Add flows']:
                    add_flow(flow_finder(flow_add))
def redundancy_manager(tailNodeConnector,headNodeConnector,reds):

    #search if any redundancy rules hit
    for red in reds:
        if tailNodeConnector==red['tailNodeConnector']:
            if headNodeConnector==red['headNodeConnector']:
                print 'redundancy activated:',red['redundancy name']
                for flow_delete in red['Delete flows']:
                    delete_flow(flow_finder(flow_delete))

                delete_flow(flow_finder(red['Add flows'][0]))

                for flow_add in red['Add flows']:
                    add_flow(flow_finder(flow_add))
示例#7
0
def loadbalancer(datarate,Balancer):
        if  Balancer['type']=='min':
                if datarate<float(Balancer['threshhold']):
                        for flow_delete in red['Delete flows']:
                            delete_flow(flow_finder(flow_delete))
                        for flow_add in red['Add flows']:
                            add_flow(flow_finder(flow_add))
                        return 'used'
                else:
                        return ''
        elif  Balancer['type']=='max':
                if datarate>float(Balancer['threshhold']):
                        print 'lb truggered'
                        for flow_add in red['Add flows']:
                                add_flow_tcp(flow_finder(flow_add))
                        return 'used'
                else:
                        return ''
def redundancy_manager(tailNodeConnector,headNodeConnector,reds,red_status):

    #search if any redundancy rules hit
    for red in reds:
        if tailNodeConnector==red['tailNodeConnector']:
            if headNodeConnector==red['headNodeConnector']:
                if red['depend']!='self':
                    if red_status[red['depend']]=='active':
                        print '[Service Info]'+ctime()
                        print 'Redundancy triggered:',red['redundancy name']
                        
                        for red_d in reds:
                            if red_d['redundancy name']==red['depend']:
                                for flow_add in red['Add flows']:
                                    delete_flow(flow_finder(flow_add))
                                for flow_delete in red['Delete flows']:
                                    add_flow(flow_finder(flow_delete))

                                    
                        for flow_delete in red['Delete flows']:
                            delete_flow(flow_finder(flow_delete))
                        delete_flow(flow_finder(red['Add flows'][0]))
                        for flow_add in red['Add flows']:
                            add_flow(flow_finder(flow_add))
                        red_status[red['redundancy name']]='active'                              
                        break

                
                elif red['depend']=='self':
                    print '[Service Info]'+ctime()
                    print 'Redundancy triggered:',red['redundancy name']
                    for flow_delete in red['Delete flows']:
                        delete_flow(flow_finder(flow_delete))

                    delete_flow(flow_finder(red['Add flows'][0]))

                    for flow_add in red['Add flows']:
                        add_flow(flow_finder(flow_add))
                    red_status[red['redundancy name']]='active'
    return red_status
示例#9
0
def redundancy_manager(tailNodeConnector, headNodeConnector, reds, red_status):

    #search if any redundancy rules hit
    for red in reds:
        if tailNodeConnector == red['tailNodeConnector']:
            if headNodeConnector == red['headNodeConnector']:
                if red['depend'] != 'self':
                    if red_status[red['depend']] == 'active':
                        print '[Service Info]' + ctime()
                        print 'Redundancy triggered:', red['redundancy name']

                        for red_d in reds:
                            if red_d['redundancy name'] == red['depend']:
                                for flow_add in red['Add flows']:
                                    delete_flow(flow_finder(flow_add))
                                for flow_delete in red['Delete flows']:
                                    add_flow(flow_finder(flow_delete))

                        for flow_delete in red['Delete flows']:
                            delete_flow(flow_finder(flow_delete))
                        delete_flow(flow_finder(red['Add flows'][0]))
                        for flow_add in red['Add flows']:
                            add_flow(flow_finder(flow_add))
                        red_status[red['redundancy name']] = 'active'
                        break

                elif red['depend'] == 'self':
                    print '[Service Info]' + ctime()
                    print 'Redundancy triggered:', red['redundancy name']
                    for flow_delete in red['Delete flows']:
                        delete_flow(flow_finder(flow_delete))

                    delete_flow(flow_finder(red['Add flows'][0]))

                    for flow_add in red['Add flows']:
                        add_flow(flow_finder(flow_add))
                    red_status[red['redundancy name']] = 'active'
    return red_status