diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2025-05-20 11:06:12 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-05-20 11:06:12 +0200 |
| commit | c7e303ad1b5217e2ff24cee9538ac841d6149706 (patch) | |
| tree | 317df3b3a1643e23c45beef891e99edc9a40da66 /opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc | |
| parent | e9a1b6078e366a8ee071f5d423a1874608618e4d (diff) | |
Fixed bug when not providing a Carbon Model (#339)
Diffstat (limited to 'opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc')
2 files changed, 23 insertions, 19 deletions
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt index f4df7991..d231b93b 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt @@ -43,12 +43,12 @@ internal class ExperimentCommand : CliktCommand(name = "experiment") { /** * The path to the environment directory. */ - private val scenarioPath by option("--experiment-path", help = "path to experiment file") + private val experimentPath by option("--experiment-path", help = "path to experiment file") .file(canBeDir = false, canBeFile = true) .defaultLazy { File("resources/experiment.json") } override fun run() { - val experiment = getExperiment(scenarioPath) + val experiment = getExperiment(experimentPath) runExperiment(experiment) } } diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt index 15445450..f7c444ea 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt @@ -131,23 +131,27 @@ public fun runScenario( service.setTasksExpected(workload.size) service.setMetricReader(provisioner.getMonitor()) - val carbonModel = provisioner.registry.resolve(serviceDomain, CarbonModel::class.java)!! - val computeScheduler = provisioner.registry.resolve(serviceDomain, ComputeScheduler::class.java)!! - if (computeScheduler is CarbonReceiver) { - carbonModel.addReceiver(computeScheduler) - } - carbonModel.addReceiver(service) - - if (scenario.allocationPolicySpec is TimeShiftAllocationPolicySpec) { - val taskStopper = - createTaskStopper( - scenario.allocationPolicySpec.taskStopper, - coroutineContext, - timeSource, - ) - if (taskStopper != null) { - taskStopper.setService(service) - carbonModel.addReceiver(taskStopper) + var carbonModel: CarbonModel? = null + if (provisioner.registry.hasService(serviceDomain, CarbonModel::class.java)) { + carbonModel = provisioner.registry.resolve(serviceDomain, CarbonModel::class.java)!! + + val computeScheduler = provisioner.registry.resolve(serviceDomain, ComputeScheduler::class.java)!! + if (computeScheduler is CarbonReceiver) { + carbonModel.addReceiver(computeScheduler) + carbonModel.addReceiver(service) + } + + if (scenario.allocationPolicySpec is TimeShiftAllocationPolicySpec) { + val taskStopper = + createTaskStopper( + scenario.allocationPolicySpec.taskStopper, + coroutineContext, + timeSource, + ) + if (taskStopper != null) { + taskStopper.setService(service) + carbonModel.addReceiver(taskStopper) + } } } |
