summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--opendc-web/opendc-web-api/opendc/models/topology.py6
-rw-r--r--opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Machine.kt3
-rw-r--r--opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Room.kt3
-rw-r--r--opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/RoomTile.kt3
-rw-r--r--opendc-web/opendc-web-ui/src/redux/sagas/topology.js6
5 files changed, 14 insertions, 7 deletions
diff --git a/opendc-web/opendc-web-api/opendc/models/topology.py b/opendc-web/opendc-web-api/opendc/models/topology.py
index 592f82c5..44994818 100644
--- a/opendc-web/opendc-web-api/opendc/models/topology.py
+++ b/opendc-web/opendc-web-api/opendc/models/topology.py
@@ -38,6 +38,7 @@ class MachineSchema(Schema):
gpus = fields.List(fields.Nested(PuSchema))
memories = fields.List(fields.Nested(MemorySchema))
storages = fields.List(fields.Nested(MemorySchema))
+ rackId = fields.String()
class ObjectSchema(Schema):
@@ -49,6 +50,7 @@ class ObjectSchema(Schema):
capacity = fields.Integer()
powerCapacityW = fields.Integer()
machines = fields.List(fields.Nested(MachineSchema))
+ tileId = fields.String()
class TileSchema(Schema):
@@ -56,9 +58,11 @@ class TileSchema(Schema):
Schema representing a room tile.
"""
_id = fields.String()
+ topologyId = fields.String()
positionX = fields.Integer()
positionY = fields.Integer()
rack = fields.Nested(ObjectSchema)
+ roomId = fields.String()
class RoomSchema(Schema):
@@ -67,6 +71,7 @@ class RoomSchema(Schema):
"""
_id = fields.String()
name = fields.String(required=True)
+ topologyId = fields.String()
tiles = fields.List(fields.Nested(TileSchema), required=True)
@@ -78,6 +83,7 @@ class TopologySchema(Schema):
projectId = fields.String()
name = fields.String(required=True)
rooms = fields.List(fields.Nested(RoomSchema), required=True)
+ datetimeLastEdited = fields.DateTime()
class Topology(Model):
diff --git a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Machine.kt b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Machine.kt
index c6757c5c..86d2d46f 100644
--- a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Machine.kt
+++ b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Machine.kt
@@ -38,5 +38,6 @@ public data class Machine(
@JsonProperty("memories")
val memory: List<MemoryUnit> = emptyList(),
@JsonProperty("storages")
- val storage: List<MemoryUnit> = emptyList()
+ val storage: List<MemoryUnit> = emptyList(),
+ val rackId: String? = null
)
diff --git a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Room.kt b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Room.kt
index e961d6db..f1b8f946 100644
--- a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Room.kt
+++ b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/Room.kt
@@ -33,5 +33,6 @@ public data class Room(
@JsonProperty("_id")
val id: String,
val name: String,
- val tiles: Set<RoomTile>
+ val tiles: Set<RoomTile>,
+ val topologyId: String? = null,
)
diff --git a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/RoomTile.kt b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/RoomTile.kt
index 3bee3204..0b956262 100644
--- a/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/RoomTile.kt
+++ b/opendc-web/opendc-web-runner/src/main/kotlin/org/opendc/web/client/model/RoomTile.kt
@@ -34,5 +34,6 @@ public data class RoomTile(
val id: String,
val positionX: Double,
val positionY: Double,
- val rack: Rack? = null
+ val rack: Rack? = null,
+ val roomId: String? = null,
)
diff --git a/opendc-web/opendc-web-ui/src/redux/sagas/topology.js b/opendc-web/opendc-web-ui/src/redux/sagas/topology.js
index 5d9154fd..333c1485 100644
--- a/opendc-web/opendc-web-ui/src/redux/sagas/topology.js
+++ b/opendc-web/opendc-web-ui/src/redux/sagas/topology.js
@@ -123,8 +123,6 @@ export function* onEditRoomName(action) {
try {
const topologyId = yield select((state) => state.currentTopologyId)
const roomId = yield select((state) => state.interactionLevel.roomId)
- const room = Object.assign({}, yield select((state) => state.objects.room[roomId]))
- room.name = action.name
yield put(addPropToStoreObject('room', roomId, { name: action.name }))
yield updateTopologyOnServer(topologyId)
} catch (error) {
@@ -148,8 +146,6 @@ export function* onEditRackName(action) {
try {
const topologyId = yield select((state) => state.currentTopologyId)
const rackId = yield select((state) => state.objects.tile[state.interactionLevel.tileId].rack)
- const rack = Object.assign({}, yield select((state) => state.objects.rack[rackId]))
- rack.name = action.name
yield put(addPropToStoreObject('rack', rackId, { name: action.name }))
yield updateTopologyOnServer(topologyId)
} catch (error) {
@@ -175,6 +171,7 @@ export function* onAddRackToTile(action) {
const rack = {
_id: uuid(),
name: 'Rack',
+ tileId: action.tileId,
capacity: DEFAULT_RACK_SLOT_CAPACITY,
powerCapacityW: DEFAULT_RACK_POWER_CAPACITY,
machines: [],
@@ -195,6 +192,7 @@ export function* onAddMachine(action) {
const machine = {
_id: uuid(),
+ rackId,
position: action.position,
cpus: [],
gpus: [],