summaryrefslogtreecommitdiff
path: root/opendc
diff options
context:
space:
mode:
Diffstat (limited to 'opendc')
-rw-r--r--opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/metal/driver/SimpleBareMetalDriver.kt6
-rw-r--r--opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/environment/sc20/Sc20ClusterEnvironmentReader.kt5
2 files changed, 7 insertions, 4 deletions
diff --git a/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/metal/driver/SimpleBareMetalDriver.kt b/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/metal/driver/SimpleBareMetalDriver.kt
index 844938db..08f04760 100644
--- a/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/metal/driver/SimpleBareMetalDriver.kt
+++ b/opendc/opendc-compute/src/main/kotlin/com/atlarge/opendc/compute/metal/driver/SimpleBareMetalDriver.kt
@@ -120,7 +120,7 @@ public class SimpleBareMetalDriver(
/**
* The internal random instance.
*/
- private val random = Random(0)
+ private val random = Random(uid.leastSignificantBits xor uid.mostSignificantBits)
override suspend fun init(): Node = withContext(domain.coroutineContext) {
nodeState.value
@@ -134,7 +134,7 @@ public class SimpleBareMetalDriver(
val events = EventFlow<ServerEvent>()
val server = Server(
- UUID(node.uid.leastSignificantBits xor node.uid.mostSignificantBits, random.nextLong()),
+ UUID(random.nextLong(), random.nextLong()),
node.name,
emptyMap(),
flavor,
@@ -151,7 +151,7 @@ public class SimpleBareMetalDriver(
override suspend fun stop(): Node = withContext(domain.coroutineContext) {
val node = nodeState.value
- if (node.state == NodeState.SHUTOFF || node.state == NodeState.ERROR) {
+ if (node.state == NodeState.SHUTOFF) {
return@withContext node
}
diff --git a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/environment/sc20/Sc20ClusterEnvironmentReader.kt b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/environment/sc20/Sc20ClusterEnvironmentReader.kt
index 89a59e1c..2ef0db97 100644
--- a/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/environment/sc20/Sc20ClusterEnvironmentReader.kt
+++ b/opendc/opendc-format/src/main/kotlin/com/atlarge/opendc/format/environment/sc20/Sc20ClusterEnvironmentReader.kt
@@ -41,6 +41,7 @@ import com.atlarge.opendc.format.environment.EnvironmentReader
import java.io.BufferedReader
import java.io.File
import java.io.FileReader
+import java.util.Random
import java.util.UUID
/**
@@ -67,6 +68,7 @@ class Sc20ClusterEnvironmentReader(
var coresPerHost: Int
val nodes = mutableListOf<SimpleBareMetalDriver>()
+ val random = Random(0)
BufferedReader(FileReader(environmentFile)).use { reader ->
reader.lineSequence()
@@ -87,6 +89,7 @@ class Sc20ClusterEnvironmentReader(
return@forEachIndexed
}
+ clusterIdx++
clusterId = values[clusterIdCol].trim()
speed = values[speedCol].trim().toDouble() * 1000.0
numberOfHosts = values[numberOfHostsCol].trim().toInt()
@@ -100,7 +103,7 @@ class Sc20ClusterEnvironmentReader(
nodes.add(
SimpleBareMetalDriver(
dom.newDomain("node-$clusterId-$it"),
- UUID((clusterIdx++).toLong(), it.toLong()),
+ UUID(random.nextLong(), random.nextLong()),
"node-$clusterId-$it",
mapOf(NODE_CLUSTER to clusterId),
List(coresPerHost) { coreId ->