summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator/src/main/kotlin
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2024-11-01 15:33:29 +0100
committerGitHub <noreply@github.com>2024-11-01 15:33:29 +0100
commit6fa203b9187b474816e7719baed8c97eadd689cb (patch)
tree37591e7372a14f192c80c9d203a8b965fa48a47d /opendc-compute/opendc-compute-simulator/src/main/kotlin
parent7511fb768fab68d542adf5bbfb15e32300156c7e (diff)
Updated computeService to force the simulation to stop when all tasks are finished (#259)
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src/main/kotlin')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt2
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt11
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt2
3 files changed, 13 insertions, 2 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt
index f295f522..da6dcfbc 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeMonitorProvisioningStep.kt
@@ -53,6 +53,6 @@ public class ComputeMonitorProvisioningStep(
startTime,
carbonTrace,
)
- return AutoCloseable { metricReader.close() }
+ return metricReader
}
}
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt
index 2e76478e..d06dac06 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/Provisioner.kt
@@ -24,6 +24,7 @@ package org.opendc.compute.simulator.provisioner
import org.opendc.common.Dispatcher
import org.opendc.compute.simulator.ServiceRegistry
+import org.opendc.compute.simulator.telemetry.ComputeMetricReader
import java.util.ArrayDeque
import java.util.SplittableRandom
@@ -61,6 +62,16 @@ public class Provisioner(dispatcher: Dispatcher, seed: Long) : AutoCloseable {
public val registry: ServiceRegistry
get() = context.registry
+ public fun getMonitor(): ComputeMetricReader? {
+ for (element in stack) {
+ if (element is ComputeMetricReader) {
+ return element
+ }
+ }
+
+ return null
+ }
+
/**
* Run a single [ProvisioningStep] for this environment.
*
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt
index fb7c8f89..3098ed55 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/telemetry/ComputeMetricReader.kt
@@ -108,7 +108,7 @@ public class ComputeMetricReader(
}
}
- private fun loggState() {
+ public fun loggState() {
loggCounter++
try {
val now = this.clock.instant()