summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-simulator/src/main
diff options
context:
space:
mode:
authorDante Niewenhuis <d.niewenhuis@hotmail.com>2024-09-12 15:32:47 +0200
committerGitHub <noreply@github.com>2024-09-12 15:32:47 +0200
commit5047e4a25a0814f96852882f02c4017e1d5f81e7 (patch)
tree348f064fd8e03a2a64fc5b30406e992586b4aac0 /opendc-compute/opendc-compute-simulator/src/main
parentad8051faa1f0a6e7f78384e9e0607e847848c033 (diff)
Added max number of failures (#254)
* Added a max failure for tasks. If tasks fail more times, they get cancelled * Added maxNumFailures to the frontend * Updated tests
Diffstat (limited to 'opendc-compute/opendc-compute-simulator/src/main')
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt2
-rw-r--r--opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt3
2 files changed, 4 insertions, 1 deletions
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt
index 484ae7ca..645c9d46 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeServiceProvisioningStep.kt
@@ -37,11 +37,13 @@ public class ComputeServiceProvisioningStep internal constructor(
private val serviceDomain: String,
private val scheduler: (ProvisioningContext) -> ComputeScheduler,
private val schedulingQuantum: Duration,
+ private val maxNumFailures: Int,
) : ProvisioningStep {
override fun apply(ctx: ProvisioningContext): AutoCloseable {
val service =
ComputeService.builder(ctx.dispatcher, scheduler(ctx))
.withQuantum(schedulingQuantum)
+ .withMaxNumFailures(maxNumFailures)
.build()
ctx.registry.register(serviceDomain, ComputeService::class.java, service)
diff --git a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt
index 7a6b6927..afde8219 100644
--- a/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt
+++ b/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/provisioner/ComputeSteps.kt
@@ -42,8 +42,9 @@ public fun setupComputeService(
serviceDomain: String,
scheduler: (ProvisioningContext) -> ComputeScheduler,
schedulingQuantum: Duration = Duration.ofMinutes(5),
+ maxNumFailures: Int = 10,
): ProvisioningStep {
- return ComputeServiceProvisioningStep(serviceDomain, scheduler, schedulingQuantum)
+ return ComputeServiceProvisioningStep(serviceDomain, scheduler, schedulingQuantum, maxNumFailures)
}
/**