From 4f816318b6672d40f23b22ca44cc06b77cadf961 Mon Sep 17 00:00:00 2001 From: mjkwiatkowski Date: Mon, 23 Feb 2026 12:05:58 +0100 Subject: feat: added a working connection to Redis, and a scaffolding for the RESTful API --- .../kotlin/org/opendc/experiments/base/runner/ExperimentCli.kt | 9 +++------ .../org/opendc/experiments/base/runner/ExperimentRunner.kt | 8 ++++++-- .../kotlin/org/opendc/experiments/base/runner/ScenarioRunner.kt | 1 - 3 files changed, 9 insertions(+), 9 deletions(-) (limited to 'opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments') 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 f3e634e6..ad662f25 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,6 +28,7 @@ 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 @@ -40,10 +41,6 @@ public fun main(args: Array) { else ExperimentListener().main(args) } -/** - * Opens a client socket from `config`, but otherwise works as before. - * @author Mateusz - */ internal class ExperimentCommand : CliktCommand(name = "experiment") { private val experimentPath by option("--experiment-path", help = "path to experiment file") .file(canBeDir = false, canBeFile = true) @@ -52,6 +49,7 @@ internal class ExperimentCommand : CliktCommand(name = "experiment") { override fun run() { try { val experiment = getExperiment(experimentPath) + HTTPClient.getInstance()?.sendExperiment(experimentPath) runExperiment(experiment) } catch (e: IOException) { @@ -60,9 +58,8 @@ internal class ExperimentCommand : CliktCommand(name = "experiment") { } } - /** - * Parses CLI arguments. + * Entry point to the digital twin. * * @author Mateusz Kwiatkowski */ diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt index a777262f..8eab48e6 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ExperimentRunner.kt @@ -26,6 +26,7 @@ import me.tongfei.progressbar.ProgressBarBuilder import me.tongfei.progressbar.ProgressBarStyle import org.opendc.common.utils.JavalinRunner import org.opendc.common.utils.PostgresqlDB +import org.opendc.common.utils.Redis import org.opendc.experiments.base.experiment.Scenario /** @@ -62,13 +63,16 @@ public fun runExperiment(experiment: List) { } /** - * Accepts a HTTP server and listens for requests. + * Established a connection with PostgreSQL. + * Creates a Javalin HTTP server and listens for requests. * * @author Mateusz Kwiatkowski * - * @see https://ktor.io/docs + * @see https://javalin.io/documentation */ public fun runListener() { PostgresqlDB() JavalinRunner() + Redis().run() + println("Hello world, this means that Javalin already runs on another thread.") } \ No newline at end of file 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 ab25ef25..5a9a4f3c 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 @@ -191,7 +191,6 @@ public fun addExportModel( ) { /* - * @author Mateusz * Here is the entry point to KafkaComputeMonitor(). * With this setting, the simulator no longer writes to parquet files. * To get back the original code, refer to https://github.com/atlarge-research/opendc -- cgit v1.2.3