예제 #1
0
def main():

    if args.verbosity: loglevel = log.DEBUG
    else: loglevel = log.INFO
    modeFederation = mode_.ModeFederation.CUSTOM  #not allowed could be set with a new cmd option
    modeAllocation = mode_.ModeAllocation.MIXED
    #if args.costfed: modeCost = mode_.ModeCost.INCLUDE_FEDERATION_COST
    #else: modeCost = mode_.ModeCost.EXCLUDE_FEDERATION_COST
    modeCost = mode_.ModeCost.INCLUDE_FEDERATION_COST

    folder = args.inputfolder
    find_bound = args.boundfind
    find_solution = not args.suppress
    metric = args.metric
    if metric == "random": host_sort = mode_.ModeHostSort.RANDOM
    else: host_sort = mode_.ModeHostSort.COST

    log.basicConfig(
        filename=args.logfile,
        format=
        '%(asctime)s-[%(filename)s-%(lineno)d]-%(levelname)s:%(message)s',
        level=loglevel)
    #----
    log.info('New execution of admission control')
    log.info('Directory: %s', os.getcwd())
    in_folder = folder
    #----
    inp = fi.readinput(in_folder)

    try:
        t1 = time.clock()
        if find_solution:
            r1 = fr.get_best_result(inp, modeAllocation, modeFederation,
                                    modeCost, host_sort)
        t2 = time.clock()
        if find_solution:
            print('best solution found:', r1[0:3])
            log.info('best solution found:%s', r1[0:3])
        if find_solution: print(round(t2 - t1, 4))
        t3 = time.clock()
        if find_bound:
            r2 = fr.get_best_result_bound(inp, modeFederation, modeCost)
        t4 = time.clock()

        if find_bound:
            print('best solution bound:', r2)
            print(round(t4 - t3, 4))
        if find_solution:
            print('allocation pattern:', r1[3])
            print('services acceptance rate, availability:', r1[4])
        if (args.outputfile != None):
            f = open(args.outputfile, 'w')
            if find_solution:
                print_output(f, inp, r1, modeCost)
            if find_bound:
                print_output(f, r2)
            f.close()
    except mode_.MyError:
        print('Invalid value for mod')
 def setUp(self):
     in_folder = os.getcwd() + os.sep\
         + self.folder + os.sep
     inp = fi.readinput(in_folder)
     self.r1 = fr.get_best_result(inp, mode_.ModeAllocation.MIXED,
                                  mode_.ModeFederation.CUSTOM,
                                  mode_.ModeCost.INCLUDE_FEDERATION_COST,
                                  mode_.ModeHostSort.COST)
예제 #3
0
 def setUp(self):
     in_folder = os.getcwd() + os.sep + self.folder + os.sep
     inp = fi.readinput(in_folder)
     self.r1 = fr.get_best_result(
         inp,
         mode_.ModeAllocation.MIXED,
         mode_.ModeFederation.CUSTOM,
         mode_.ModeCost.INCLUDE_FEDERATION_COST,
         mode_.ModeHostSort.COST,
     )
예제 #4
0
def main():

    if args.verbosity: loglevel = log.DEBUG
    else: loglevel = log.INFO
    modeFederation = mode_.ModeFederation.CUSTOM #not allowed could be set with a new cmd option
    modeAllocation = mode_.ModeAllocation.MIXED
    #if args.costfed: modeCost = mode_.ModeCost.INCLUDE_FEDERATION_COST
    #else: modeCost = mode_.ModeCost.EXCLUDE_FEDERATION_COST
    modeCost = mode_.ModeCost.INCLUDE_FEDERATION_COST

    folder = args.inputfolder
    find_bound = args.boundfind
    find_solution = not args.suppress
    metric = args.metric
    if metric == "random": host_sort = mode_.ModeHostSort.RANDOM
    else: host_sort = mode_.ModeHostSort.COST
    
    log.basicConfig(filename=args.logfile, format='%(asctime)s-[%(filename)s-%(lineno)d]-%(levelname)s:%(message)s', level=loglevel)
    #----
    log.info('New execution of admission control')
    log.info('Directory: %s', os.getcwd())
    in_folder = folder
    #----
    inp = fi.readinput(in_folder)

    try:
        t1 = time.clock()
        if find_solution: r1 = fr.get_best_result(inp, modeAllocation, modeFederation, modeCost, host_sort)
        t2 = time.clock()
        if find_solution: 
            print ('best solution found:', r1[0:3])
            log.info('best solution found:%s', r1[0:3])
        if find_solution: print (round(t2-t1, 4) )
        t3 = time.clock()
        if find_bound: r2 = fr.get_best_result_bound(inp, modeFederation, modeCost)
        t4 = time.clock()
        
        if find_bound: 
            print ('best solution bound:', r2)
            print (round(t4-t3, 4) )
        if find_solution: 
            print ('allocation pattern:', r1[3])
            print ('services acceptance rate, availability:', r1[4])
        if (args.outputfile!=None):
            f = open(args.outputfile, 'w')
            if find_solution: 
                print_output(f, inp, r1, modeCost)
            if find_bound: 
                print_output(f,r2)
            f.close()
    except mode_.MyError as e:
        print ('Invalid value for mode: ', e.value)