Skip to content
Snippets Groups Projects
Select Git revision
1 result Searching

canvas_classes.py

Blame
  • HTC.py 1.77 KiB
    import time
    import socket
    from random import randint,choice
    import sys
    from LightControl import *
    
    
    turnAllNodesOff()
    
    activeWorkers = []
    deadWorkers = []
    start = time.time()
    ### Get a list of all working workers
    for host in sys.argv[1].split(","):
        if "worker" in host:
            deadWorkers.append(host)
    
    
    while (time.time() - start) < 40: # How long to run the simulation for
        if randint(0,1) == 1 and len(deadWorkers) > 0: # Add randomness and see if there are dead workers
            currentWorker = choice(deadWorkers)        # Choose a random worker, then send networking to it and turn it on,
            sendNetwork("LegionHead", currentWorker,1)
            sendNetwork("LegionFile", currentWorker,1)
    	time.sleep(0.05)
            changeLoadState(currentWorker,1)
            deadWorkers.remove(currentWorker)          # Remove from the list of dead workers and add to active list
            activeWorkers.append(currentWorker)
    
        if randint(0,1) == 1 and len(activeWorkers) > 0:# Add randomness and see if there are active workers
            currentWorker = choice(activeWorkers)                # Choose a random worker, 
            if (time.time() - nodes[currentWorker]["time"]) > 5: # if its been alive for atleast 5 seconds
                sendNetwork(currentWorker,"LegionFile",1)        # send networking to it and turn it on,
                sendNetwork(currentWorker,"LegionHead",1)
                changeLoadState(currentWorker,0)
                activeWorkers.remove(currentWorker)              # Remove from the list of active workers and add to dead list
                deadWorkers.append(currentWorker)
    for worker in activeWorkers:
        sendNetwork(currentWorker,"LegionFile",1)        # send networking to it and turn it on,
        sendNetwork(currentWorker,"LegionHead",1)
        changeLoadState(currentWorker,0)
    
    turnAllNodesOff()