From 70e69db59c821568b5469c43b38b4d0a46b84e92 Mon Sep 17 00:00:00 2001 From: Fabian Mastenbroek Date: Tue, 27 Sep 2022 11:11:48 +0200 Subject: 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. --- .../src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'opendc-experiments/opendc-experiments-base/src/main/kotlin/org/opendc/experiments/ServiceRegistry.kt') 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 resolve(name: String, type: Class): T? + + /** + * Create a copy of the registry. + */ + public fun clone(): ServiceRegistry } -- cgit v1.2.3