summaryrefslogtreecommitdiff
path: root/opendc-compute
diff options
context:
space:
mode:
authorvincent van beek <vincent@vlogic.nl>2026-03-27 16:49:40 +0100
committerGitHub <noreply@github.com>2026-03-27 15:49:40 +0000
commit048bf777997bdbf599240645fc66612c98abf3c2 (patch)
treec04e999cb981c98ae9dc0fd83ea70aec9eaa419c /opendc-compute
parent235057cd170f1583db14bf93ea7d2de39e492356 (diff)
Add import topology (#393)
* add a the posibility to import and export topogies in JSON format * fix web-runner integration, there were several bugs and mismatches between new implementations in OpenDC and the UI
Diffstat (limited to 'opendc-compute')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java4
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt17
2 files changed, 20 insertions, 1 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
index 8ff78dae..ad562714 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
+++ b/opendc-compute/opendc-compute-simulator/src/main/java/org/opendc/compute/simulator/service/ComputeService.java
@@ -468,6 +468,10 @@ public final class ComputeService implements AutoCloseable, CarbonReceiver {
void addTerminatedTask(ServiceTask task) {
+ if (!task.hasChildren()) {
+ return;
+ }
+
for (int childTaskId : task.getChildren()) {
SchedulingRequest request = blockedTasks.get(childTaskId);
if (request != null) {
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt
index 01804a70..fc40fac0 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/scheduler/ComputeSchedulers.kt
@@ -61,7 +61,22 @@ public fun createPrefabComputeScheduler(
clock: InstantSource,
numHosts: Int = 1000,
): ComputeScheduler {
- return createPrefabComputeScheduler(ComputeSchedulerEnum.valueOf(name.uppercase()), seeder, clock, numHosts)
+ val trimmedName = name.trim()
+
+ // Find the enum value case-insensitively
+ val schedulerEnum =
+ ComputeSchedulerEnum.entries.find {
+ it.name.equals(trimmedName, ignoreCase = true)
+ }
+
+ if (schedulerEnum == null) {
+ val validNames = ComputeSchedulerEnum.entries.joinToString(", ") { it.name }
+ throw IllegalArgumentException(
+ "Invalid scheduler name: '$name'. Valid scheduler names are: $validNames (case-insensitive)",
+ )
+ }
+
+ return createPrefabComputeScheduler(schedulerEnum, seeder, clock, numHosts)
}
/**