summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2025-11-26 11:11:22 +0100
committerGitHub <noreply@github.com>2025-11-26 11:11:22 +0100
commit1de770c981498e2ca0067876470484e2cd08d780 (patch)
tree02a4f2aa2fe2777767b931d53a1636bdc4ca0741
parent90d4369183a420689fb1d48687a77ec677572433 (diff)
Fixed a small bug in the reading of workflows (#382)
* Fixed a small bug in the reading of workflows * small update * Pushing workload files needed for ExperimentCliTest 3
-rw-r--r--opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt5
-rw-r--r--opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ExperimentCliTest.kt14
-rw-r--r--opendc-experiments/opendc-experiments-base/src/test/resources/experiments/experiment_3.json26
-rw-r--r--opendc-experiments/opendc-experiments-base/src/test/resources/topologies/workflow_topology.json23
-rw-r--r--opendc-experiments/opendc-experiments-base/src/test/resources/workloadTraces/workflow_example/fragments.parquetbin0 -> 2195 bytes
-rw-r--r--opendc-experiments/opendc-experiments-base/src/test/resources/workloadTraces/workflow_example/tasks.parquetbin0 -> 5249 bytes
6 files changed, 67 insertions, 1 deletions
diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt
index e4bdaac5..cdb1483e 100644
--- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt
+++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeWorkloadLoader.kt
@@ -175,11 +175,14 @@ public class ComputeWorkloadLoader(
if (parents?.isEmpty() == true) {
parentsOutput = null
- children = null
} else {
parentsOutput = ArrayList(parents!!)
}
+ if (children?.isEmpty() == true) {
+ children = null
+ }
+
var deferrable = reader.getBoolean(deferrableCol)
var deadline = reader.getLong(deadlineCol)
if (deferAll) {
diff --git a/opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ExperimentCliTest.kt b/opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ExperimentCliTest.kt
index 748a020c..1b64ccc9 100644
--- a/opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ExperimentCliTest.kt
+++ b/opendc-experiments/opendc-experiments-base/src/test/kotlin/org/opendc/experiments/base/ExperimentCliTest.kt
@@ -57,4 +57,18 @@ class ExperimentCliTest {
val someDir = File("output")
someDir.deleteRecursively()
}
+
+ /**
+ * ExperimentCli test 3
+ * This test runs the experiment defined in the experiment_3.json file.
+ *
+ * In this test, a small workflow is executed.
+ */
+ @Test
+ fun testExperimentCli3() {
+ ExperimentCommand().main(arrayOf("--experiment-path", "src/test/resources/experiments/experiment_3.json"))
+
+ val someDir = File("output")
+ someDir.deleteRecursively()
+ }
}
diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/experiments/experiment_3.json b/opendc-experiments/opendc-experiments-base/src/test/resources/experiments/experiment_3.json
new file mode 100644
index 00000000..c8610bd1
--- /dev/null
+++ b/opendc-experiments/opendc-experiments-base/src/test/resources/experiments/experiment_3.json
@@ -0,0 +1,26 @@
+{
+ "name": "simple",
+ "topologies": [
+ {
+ "pathToFile": "src/test/resources/topologies/workflow_topology.json"
+ }
+ ],
+ "workloads": [
+ {
+ "pathToFile": "src/test/resources/workloadTraces/workflow_example",
+ "type": "ComputeWorkload"
+ }
+ ],
+ "exportModels": [
+ {
+ "exportInterval": 60,
+ "printFrequency": 168,
+ "filesToExport": [
+ "host",
+ "powerSource",
+ "service",
+ "task"
+ ]
+ }
+ ]
+}
diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/workflow_topology.json b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/workflow_topology.json
new file mode 100644
index 00000000..7932efd2
--- /dev/null
+++ b/opendc-experiments/opendc-experiments-base/src/test/resources/topologies/workflow_topology.json
@@ -0,0 +1,23 @@
+{
+ "clusters":
+ [
+ {
+ "name": "C01",
+ "hosts" :
+ [
+ {
+ "name": "H01",
+ "cpu":
+ {
+ "coreCount": 12,
+ "coreSpeed": 3300
+ },
+ "memory": {
+ "memorySize": 140457600000
+ },
+ "count": 3
+ }
+ ]
+ }
+ ]
+}
diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/workloadTraces/workflow_example/fragments.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/workloadTraces/workflow_example/fragments.parquet
new file mode 100644
index 00000000..d7b7a096
--- /dev/null
+++ b/opendc-experiments/opendc-experiments-base/src/test/resources/workloadTraces/workflow_example/fragments.parquet
Binary files differ
diff --git a/opendc-experiments/opendc-experiments-base/src/test/resources/workloadTraces/workflow_example/tasks.parquet b/opendc-experiments/opendc-experiments-base/src/test/resources/workloadTraces/workflow_example/tasks.parquet
new file mode 100644
index 00000000..91cddf7a
--- /dev/null
+++ b/opendc-experiments/opendc-experiments-base/src/test/resources/workloadTraces/workflow_example/tasks.parquet
Binary files differ