summaryrefslogtreecommitdiff
path: root/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-09-27 11:11:48 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2022-10-03 17:30:38 +0200
commit70e69db59c821568b5469c43b38b4d0a46b84e92 (patch)
treeec28d30ac347de7f7b67c457e9e79375075aac9e /opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt
parent6e66158dcce09dbd60ff5a0e0ec9b127c9a219d9 (diff)
feat(exp/base): Add provisioning tool for experiments
This change adds to the experiment base in OpenDC a provisioning tool to help setup the experimental environment in a reproducible manner. The experimental environment can be defined in terms of *provisioning steps* which manage the allocation, configuration, and clean-up of all resources necessary for the experiments. The provisioning steps are executed sequentially, so in case of dependencies, the steps need to be ordered correctly.
Diffstat (limited to 'opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt')
-rw-r--r--opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt9
1 files changed, 6 insertions, 3 deletions
diff --git a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt
index a6776e14..e9d5b50e 100644
--- a/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt
+++ b/opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt
@@ -22,10 +22,8 @@
package org.opendc.experiments
-import org.opendc.experiments.broker.Broker
-
/**
- * A read-only registry of services accessible by a [Broker] during an experiment.
+ * A read-only registry of services used during experiments to resolve services.
*
* The service registry is similar conceptually to the Domain Name System (DNS), which is a naming system used to
* identify computers reachable via the Internet. The service registry should be used in a similar fashion.
@@ -39,4 +37,9 @@ public interface ServiceRegistry {
* @return The service with specified [name] and implementing [type] or `null` if it does not exist.
*/
public fun <T : Any> resolve(name: String, type: Class<T>): T?
+
+ /**
+ * Create a copy of the registry.
+ */
+ public fun clone(): ServiceRegistry
}