summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-base/src/main
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2025-05-20 11:06:12 +0200
committerGitHub <noreply@github.com>2025-05-20 11:06:12 +0200
commitc7e303ad1b5217e2ff24cee9538ac841d6149706 (patch)
tree317df3b3a1643e23c45beef891e99edc9a40da66 /opendc-experiments/opendc-experiments-base/src/main
parente9a1b6078e366a8ee071f5d423a1874608618e4d (diff)
Fixed bug when not providing a Carbon Model (#339)
Diffstat (limited to 'opendc-experiments/opendc-experiments-base/src/main')
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt4
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt38
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)
+ }
}
}