summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-02-28 14:07:22 +0100
committerGeorgios Andreadis <info@gandreadis.com>2020-02-28 14:39:59 +0100
commitd394224b76e98d6092e6fb78279ec8944f974aa2 (patch)
tree1f5af9dd9fea38aae0007591826bfc54e34b8f29
parent3b31e1e0c4f7f8c7ca20a4b1a3e784029bbd0179 (diff)
Fix NPE
-rw-r--r--opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt9
1 files changed, 6 insertions, 3 deletions
diff --git a/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt b/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt
index 5924c2c7..f036e370 100644
--- a/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt
+++ b/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/virt/service/SimpleVirtProvisioningService.kt
@@ -15,6 +15,7 @@ import com.atlarge.opendc.compute.virt.driver.hypervisor.InsufficientMemoryOnSer
import com.atlarge.opendc.compute.virt.monitor.HypervisorMonitor
import com.atlarge.opendc.compute.virt.service.allocation.AllocationPolicy
import kotlinx.coroutines.launch
+import kotlinx.coroutines.yield
class SimpleVirtProvisioningService(
public override val allocationPolicy: AllocationPolicy,
@@ -52,13 +53,15 @@ class SimpleVirtProvisioningService(
val provisionedNodes = provisioningService.nodes().toList()
val deployedNodes = provisionedNodes.map { node ->
val hypervisorImage = HypervisorImage(hypervisorMonitor)
+ val deployedNode = provisioningService.deploy(node, hypervisorImage, this@SimpleVirtProvisioningService)
val nodeView = NodeView(
- provisioningService.deploy(node, hypervisorImage, this@SimpleVirtProvisioningService),
+ deployedNode,
hypervisorImage,
0,
- node.server!!.flavor.memorySize
+ deployedNode.server!!.flavor.memorySize
)
- node.server.serviceRegistry[VirtDriver.Key].addMonitor(object : VirtDriverMonitor {
+ yield()
+ deployedNode.server.serviceRegistry[VirtDriver.Key].addMonitor(object : VirtDriverMonitor {
override suspend fun onUpdate(numberOfActiveServers: Int, availableMemory: Long) {
nodeView.numberOfActiveServers = numberOfActiveServers
nodeView.availableMemory = availableMemory