birbsim/src/main.py

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)