summaryrefslogtreecommitdiff
path: root/opendc-workflow/opendc-workflow-service/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-10 22:10:22 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-09-11 11:33:25 +0200
commitb7be3400bb4b21d0cd7021e2baf1f6ce43aba189 (patch)
tree7e44a27d5d10e9f0d4b3c0dd3546fbb513175b96 /opendc-workflow/opendc-workflow-service/src
parent9e8ea96270701e643f95b18d2b91583d9fca08d2 (diff)
feat(trace): Add support for WfCommons (WorkflowHub) traces
This change adds support for reading WfCommons workflow traces in OpenDC. This functionality is available in the new `opendc-trace-wfformat` module.
Diffstat (limited to 'opendc-workflow/opendc-workflow-service/src')
-rw-r--r--opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/TraceReplayer.kt16
1 files changed, 8 insertions, 8 deletions
diff --git a/opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/TraceReplayer.kt b/opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/TraceReplayer.kt
index a390fe08..9ee3736e 100644
--- a/opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/TraceReplayer.kt
+++ b/opendc-workflow/opendc-workflow-service/src/test/kotlin/org/opendc/workflow/service/TraceReplayer.kt
@@ -81,17 +81,17 @@ internal class TraceReplayer(private val trace: Trace) {
try {
while (reader.nextRow()) {
// Bag of tasks without workflow ID all share the same workflow
- val workflowId = if (reader.hasColumn(TASK_WORKFLOW_ID)) reader.getLong(TASK_WORKFLOW_ID) else 0L
+ val workflowId = if (reader.hasColumn(TASK_WORKFLOW_ID)) reader.get(TASK_WORKFLOW_ID).toLong() else 0L
val workflow = jobs.computeIfAbsent(workflowId) { id -> Job(UUID(0L, id), "<unnamed>", HashSet(), HashMap()) }
- val id = reader.getLong(TASK_ID)
+ val id = reader.get(TASK_ID).toLong()
val grantedCpus = if (reader.hasColumn(TASK_ALLOC_NCPUS))
reader.getInt(TASK_ALLOC_NCPUS)
else
reader.getInt(TASK_REQ_NCPUS)
- val submitTime = reader.getLong(TASK_SUBMIT_TIME)
- val runtime = reader.getLong(TASK_RUNTIME)
- val flops: Long = 4000 * runtime * grantedCpus
+ val submitTime = reader.get(TASK_SUBMIT_TIME)
+ val runtime = reader.get(TASK_RUNTIME)
+ val flops: Long = 4000 * runtime.seconds * grantedCpus
val workload = SimFlopsWorkload(flops)
val task = Task(
UUID(0L, id),
@@ -100,14 +100,14 @@ internal class TraceReplayer(private val trace: Trace) {
mapOf(
"workload" to workload,
WORKFLOW_TASK_CORES to grantedCpus,
- WORKFLOW_TASK_DEADLINE to (runtime * 1000)
+ WORKFLOW_TASK_DEADLINE to runtime.toMillis()
),
)
tasks[id] = task
- taskDependencies[task] = reader.get(TASK_PARENTS)
+ taskDependencies[task] = reader.get(TASK_PARENTS).map { it.toLong() }.toSet()
- (workflow.metadata as MutableMap<String, Any>).merge("WORKFLOW_SUBMIT_TIME", submitTime) { a, b -> min(a as Long, b as Long) }
+ (workflow.metadata as MutableMap<String, Any>).merge("WORKFLOW_SUBMIT_TIME", submitTime.toEpochMilli()) { a, b -> min(a as Long, b as Long) }
(workflow.tasks as MutableSet<Task>).add(task)
}