40 lines
1.7 KiB
Python
40 lines
1.7 KiB
Python
import copy
|
|
from pprint import pprint
|
|
from datacentre import Datacentre
|
|
from bucketresources import BucketResource, BucketResourceType
|
|
from scenarioplanner import Scenarioplanner
|
|
from scheduler import Scheduler
|
|
|
|
|
|
def preparesimulation() -> Scenarioplanner:
|
|
currscenarioplanner = Scenarioplanner()
|
|
currscenarioplanner.simulationLength = 120
|
|
currscenarioplanner.createapplications()
|
|
currscenarioplanner.createclients(1000)
|
|
print("Number of Birbnetes clients: " + str(currscenarioplanner.statsModule.birbnetesClients))
|
|
print("Number of Videochat clients: " + str(currscenarioplanner.statsModule.videochatClients))
|
|
return currscenarioplanner
|
|
|
|
|
|
def preparesimulationrunner(currscenarioplanner: Scenarioplanner) -> Scheduler:
|
|
currentscheduler = Scheduler()
|
|
currentscheduler.simulationLength = currscenarioplanner.simulationLength
|
|
currentscheduler.clients = copy.deepcopy(currscenarioplanner.clients)
|
|
clouddatacentre = Datacentre()
|
|
clouddatacentre.processingpower = BucketResource(100000000000, BucketResourceType.CpuResource)
|
|
clouddatacentre.uplink = BucketResource(100000000000)
|
|
edgedatacentre = Datacentre()
|
|
edgedatacentre.processingpower = BucketResource(100000, BucketResourceType.CpuResource)
|
|
edgedatacentre.uplink = BucketResource(100000)
|
|
currentscheduler.edge = edgedatacentre
|
|
currentscheduler.cloud = clouddatacentre
|
|
currentscheduler.statsModule = currscenarioplanner.statsModule
|
|
return currentscheduler
|
|
|
|
|
|
if __name__ == '__main__':
|
|
scenarioplanner = preparesimulation()
|
|
currscheduler = preparesimulationrunner(scenarioplanner)
|
|
currscheduler.runsimulation()
|
|
pprint(currscheduler.statsModule.failedDetails)
|