summaryrefslogtreecommitdiff
path: root/opendc-compute/opendc-compute-workload/src
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2022-09-22 11:12:01 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2022-09-22 14:49:37 +0200
commit8b6c15193281171bcb2e111f339ffb8da385332b (patch)
tree959be1b2134af3e947b6b1a172d9b09ebc0c4fbc /opendc-compute/opendc-compute-workload/src
parent21270e0b4250bd6927e85227fa825cf8ed59aaed (diff)
refactor(compute): Simplify constructor of SimHost
This change updates the constructor of SimHost to receive a `SimBareMetalMachine` and `SimHypervisor` directly instead of construction these objects itself. This ensures better testability and also simplifies the constructor of this class, especially when future changes to `SimBareMetalMachine` or `SimHypervisor` change their constructors.
Diffstat (limited to 'opendc-compute/opendc-compute-workload/src')
-rw-r--r--opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeServiceHelper.kt12
1 files changed, 7 insertions, 5 deletions
diff --git a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeServiceHelper.kt b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeServiceHelper.kt
index 879ef072..92652329 100644
--- a/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeServiceHelper.kt
+++ b/opendc-compute/opendc-compute-workload/src/main/kotlin/org/opendc/compute/workload/ComputeServiceHelper.kt
@@ -31,6 +31,7 @@ import org.opendc.compute.service.ComputeService
import org.opendc.compute.service.scheduler.ComputeScheduler
import org.opendc.compute.simulator.SimHost
import org.opendc.compute.workload.topology.HostSpec
+import org.opendc.simulator.compute.SimBareMetalMachine
import org.opendc.simulator.compute.kernel.interference.VmInterferenceModel
import org.opendc.simulator.compute.workload.SimTraceWorkload
import org.opendc.simulator.flow.FlowEngine
@@ -167,16 +168,17 @@ public class ComputeServiceHelper(
* @return The [SimHost] that has been constructed by the runner.
*/
public fun registerHost(spec: HostSpec, optimize: Boolean = false): SimHost {
+ val machine = SimBareMetalMachine(engine, spec.model, spec.powerDriver)
+ val hypervisor = spec.hypervisor.create(engine, random)
+
val host = SimHost(
spec.uid,
spec.name,
- spec.model,
spec.meta,
context,
- engine,
- spec.hypervisor,
- random,
- powerDriver = spec.powerDriver,
+ clock,
+ machine,
+ hypervisor,
interferenceDomain = interferenceModel?.newDomain(),
optimize = optimize
)