diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2024-07-12 14:08:53 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-07-12 14:08:53 +0200 |
| commit | a17e7eda3cfd70b033e2fb6097880fba7f5af864 (patch) | |
| tree | 7d41d56c06c358247b305246eefcaf9b7d595cda /opendc-experiments/opendc-experiments-base/src/main/kotlin/org | |
| parent | b6153bbf24970a5b4ba103de00e440911dcc8694 (diff) | |
Merged experiment-scenario and experiment-base by moving ScenarioCli.kt to experiment-base. Renamed the distribution of experiment-base to OpenDCScenarioRunner (#236)
Diffstat (limited to 'opendc-experiments/opendc-experiments-base/src/main/kotlin/org')
| -rw-r--r-- | opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioCli.kt | 65 | ||||
| -rw-r--r-- | opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt (renamed from opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioHelpers.kt) | 0 |
2 files changed, 65 insertions, 0 deletions
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioCli.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioCli.kt new file mode 100644 index 00000000..abf9ad46 --- /dev/null +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioCli.kt @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2022 AtLarge Research + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +@file:JvmName("ScenarioCli") + +package org.opendc.experiments.base.runner + +import com.github.ajalt.clikt.core.CliktCommand +import com.github.ajalt.clikt.parameters.options.default +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 com.github.ajalt.clikt.parameters.types.int +import org.opendc.experiments.base.scenario.getScenarios +import java.io.File + +/** + * Main entrypoint of the application. + */ +public fun main(args: Array<String>): Unit = ScenarioCommand().main(args) + +/** + * Represents the command for the Scenario experiments. + */ +internal class ScenarioCommand : CliktCommand(name = "scenario") { + /** + * The path to the environment directory. + */ + private val scenarioPath by option("--scenario-path", help = "path to scenario file") + .file(canBeDir = false, canBeFile = true) + .defaultLazy { File("resources/scenario.json") } + + /** + * The number of threads to use for parallelism. + */ + private val parallelism by option("-p", "--parallelism", help = "number of worker threads") + .int() + .default(Runtime.getRuntime().availableProcessors() - 1) + + override fun run() { + val scenarios = getScenarios(scenarioPath) + runScenarios(scenarios, parallelism) + + // TODO: implement outputResults(scenario) // this will take the results, from a folder, and output them visually + } +} diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioHelpers.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt index 970754b0..970754b0 100644 --- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioHelpers.kt +++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/base/runner/ScenarioReplayer.kt |
