summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base
diff options
context:
space:
mode:
authormjkwiatkowski <mati.rewa@gmail.com>2026-06-15 23:54:52 +0200
committermjkwiatkowski <mati.rewa@gmail.com>2026-06-15 23:54:52 +0200
commitfa3ec84a38ca24157d5fb52a9715d9dad9a3e8c6 (patch)
treef8da16e1e176b3153ad46cbb6830898181ec7680 /opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base
parent0731bd58889df127ef87aba2590d505d79e6646f (diff)
feat: migrated the SmarScheduler and the KafkaMonitor
Diffstat (limited to 'opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base')
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt36
1 files changed, 27 insertions, 9 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 d231b93b..1fe597ea 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
@@ -28,27 +28,45 @@ import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.options.defaultLazy
import com.github.ajalt.clikt.parameters.options.option
import com.github.ajalt.clikt.parameters.types.file
+import org.opendc.common.utils.HTTPClient
import org.opendc.experiments.base.experiment.getExperiment
import java.io.File
+import java.io.IOException
/**
* Main entrypoint of the application.
*/
-public fun main(args: Array<String>): Unit = ExperimentCommand().main(args)
+public fun main(args: Array<String>) {
+ if(args.size == 2) ExperimentCommand().main(args)
+ else ExperimentListener().main(args)
+}
-/**
- * Represents the command for the Scenario experiments.
- */
internal class ExperimentCommand : CliktCommand(name = "experiment") {
- /**
- * The path to the environment directory.
- */
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(experimentPath)
- runExperiment(experiment)
+ try {
+ val experiment = getExperiment(experimentPath)
+ HTTPClient.getInstance()?.sendExperiment(experimentPath)
+ runExperiment(experiment)
+ } catch (e: IOException) {
+ println("${e.message}")
+ }
+ }
+}
+/**
+ * Entry point to the digital twin.
+ *
+ * @author Mateusz Kwiatkowski
+ */
+internal class ExperimentListener: CliktCommand(name = "listener") {
+ override fun run() {
+ try {
+ runListener()
+ } catch (e: IOException) {
+ println("${e.message}")
+ }
}
}