diff options
| author | Dante Niewenhuis <d.niewenhuis@hotmail.com> | 2024-09-12 15:32:47 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-12 15:32:47 +0200 |
| commit | 5047e4a25a0814f96852882f02c4017e1d5f81e7 (patch) | |
| tree | 348f064fd8e03a2a64fc5b30406e992586b4aac0 /opendc-compute/opendc-compute-simulator | |
| parent | ad8051faa1f0a6e7f78384e9e0607e847848c033 (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')
3 files changed, 5 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) } /** diff --git a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt index 9c54f312..77cd2291 100644 --- a/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt +++ b/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt @@ -365,6 +365,7 @@ internal class SimHostTest { override val name: String, override val flavor: Flavor, override val image: Image, + override val numFailures: Int = 10, ) : Task { override val labels: Map<String, String> = emptyMap() |
