diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2020-03-30 17:30:55 +0200 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2020-03-30 17:30:55 +0200 |
| commit | d37900e09e225b1738920fa0d5478feb892294c1 (patch) | |
| tree | 080aedee013ca42139274d06a10a77fc77151626 | |
| parent | bbba1d507f27b19a74e5c87e0e9e7250fb796957 (diff) | |
| parent | 58d4ae5c152aac53d66f91a7d322b807db48b943 (diff) | |
Merge branch 'feat/2.x-failure-flag' into '2.x'
Add support for enabling/disable failures
See merge request opendc/opendc-simulator!48
| -rw-r--r-- | opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt index ed971df5..e6fd5a3a 100644 --- a/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt +++ b/opendc/opendc-experiments-sc20/src/main/kotlin/com/atlarge/opendc/experiments/sc20/TestExperiment.kt @@ -72,6 +72,7 @@ class ExperimentParameters(parser: ArgParser) { parseVMs(FileReader(File(this)).readText()) } .default { emptyList() } + val failures by parser.flagging("-x", "--failures", help = "enable (correlated) machine failures") fun getSelectedVmList(): List<String> { return if (selectedVms.isEmpty()) { @@ -179,14 +180,17 @@ fun main(args: Array<String>) { .launchIn(this) } - root.newDomain(name = "failures").launch { - chan.receive() - val injectors = mutableMapOf<String, FaultInjector>() + if (failures) { + println("ENABLE Failures") + root.newDomain(name = "failures").launch { + chan.receive() + val injectors = mutableMapOf<String, FaultInjector>() - for (node in bareMetalProvisioner.nodes()) { - val cluster = node.metadata[NODE_CLUSTER] as String - val injector = injectors.getOrPut(cluster) { createFaultInjector(simulationContext.domain) } - injector.enqueue(node.metadata["driver"] as FailureDomain) + for (node in bareMetalProvisioner.nodes()) { + val cluster = node.metadata[NODE_CLUSTER] as String + val injector = injectors.getOrPut(cluster) { createFaultInjector(simulationContext.domain) } + injector.enqueue(node.metadata["driver"] as FailureDomain) + } } } |
