summaryrefslogtreecommitdiff
path: root/simulator/opendc-compute
diff options
context:
space:
mode:
authorFabian Mastenbroek <mail.fabianm@gmail.com>2021-03-17 16:23:48 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2021-03-17 16:23:48 +0100
commitbb3b8e207a08edff81b8c2fe30b476c94bfea086 (patch)
treeee739cf4092a2b807e0043bed7cae72cff7b6bac /simulator/opendc-compute
parent9ab482d0afd773703f78d51a2ba8a160896f03c6 (diff)
simulator: Make hypervisors generic for the resource type
This change moves the hypervisor implementations to the opendc-simulator-resources module and makes them generic to the resource type that is being used (e.g., CPU, disk or networking).
Diffstat (limited to 'simulator/opendc-compute')
-rw-r--r--simulator/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt2
-rw-r--r--simulator/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt3
-rw-r--r--simulator/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt4
3 files changed, 5 insertions, 4 deletions
diff --git a/simulator/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt b/simulator/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt
index 2c38f7cb..aa7e0aa1 100644
--- a/simulator/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt
+++ b/simulator/opendc-compute/opendc-compute-service/src/main/kotlin/org/opendc/compute/service/internal/ComputeServiceImpl.kt
@@ -125,7 +125,7 @@ public class ComputeServiceImpl(
/**
* The [TimerScheduler] to use for scheduling the scheduler cycles.
*/
- private var scheduler: TimerScheduler<Unit> = TimerScheduler(scope, clock)
+ private var scheduler: TimerScheduler<Unit> = TimerScheduler(scope.coroutineContext, clock)
override val hosts: Set<Host>
get() = hostToView.keys
diff --git a/simulator/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt b/simulator/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt
index 0da81152..9cc1bf54 100644
--- a/simulator/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt
+++ b/simulator/opendc-compute/opendc-compute-simulator/src/main/kotlin/org/opendc/compute/simulator/SimHost.kt
@@ -84,7 +84,7 @@ public class SimHost(
/**
* The machine to run on.
*/
- public val machine: SimBareMetalMachine = SimBareMetalMachine(scope, clock, model)
+ public val machine: SimBareMetalMachine = SimBareMetalMachine(context, clock, model)
/**
* The hypervisor to run multiple workloads.
@@ -206,6 +206,7 @@ public class SimHost(
override fun close() {
scope.cancel()
+ machine.close()
_state = HostState.DOWN
}
diff --git a/simulator/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt b/simulator/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
index a45ab9fc..6929b06c 100644
--- a/simulator/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
+++ b/simulator/opendc-compute/opendc-compute-simulator/src/test/kotlin/org/opendc/compute/simulator/SimHostTest.kt
@@ -136,8 +136,8 @@ internal class SimHostTest {
assertAll(
{ assertEquals(emptyList<Throwable>(), scope.uncaughtExceptions, "No errors") },
- { assertEquals(4197600, requestedWork, "Requested work does not match") },
- { assertEquals(3057600, grantedWork, "Granted work does not match") },
+ { assertEquals(4273200, requestedWork, "Requested work does not match") },
+ { assertEquals(3133200, grantedWork, "Granted work does not match") },
{ assertEquals(1140000, overcommittedWork, "Overcommitted work does not match") },
{ assertEquals(1200006, scope.currentTime) }
)