diff options
Diffstat (limited to 'frontend/src/sagas/objects.js')
| -rw-r--r-- | frontend/src/sagas/objects.js | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/frontend/src/sagas/objects.js b/frontend/src/sagas/objects.js index 1dbc7903..9dc65be1 100644 --- a/frontend/src/sagas/objects.js +++ b/frontend/src/sagas/objects.js @@ -142,6 +142,12 @@ const generateIdIfNotPresent = (obj) => { } export const updateTopologyOnServer = function* (id) { + const topology = yield getTopologyAsObject(id, true) + + yield call(updateTopology, topology) +} + +export const getTopologyAsObject = function* (id, keepIds) { const topologyStore = yield select(OBJECT_SELECTORS['topology']) const roomStore = yield select(OBJECT_SELECTORS['room']) const tileStore = yield select(OBJECT_SELECTORS['tile']) @@ -152,27 +158,27 @@ export const updateTopologyOnServer = function* (id) { const memoryStore = yield select(OBJECT_SELECTORS['memory']) const storageStore = yield select(OBJECT_SELECTORS['storage']) - const topology = { - _id: id, + return { + _id: keepIds ? id : undefined, name: topologyStore[id].name, rooms: topologyStore[id].roomIds.map((roomId) => ({ - _id: roomId, + _id: keepIds ? roomId : undefined, name: roomStore[roomId].name, tiles: roomStore[roomId].tileIds.map((tileId) => ({ - _id: tileId, + _id: keepIds ? tileId : undefined, positionX: tileStore[tileId].positionX, positionY: tileStore[tileId].positionY, rack: !tileStore[tileId].rackId ? undefined : { - _id: rackStore[tileStore[tileId].rackId]._id, + _id: keepIds ? rackStore[tileStore[tileId].rackId]._id : undefined, name: rackStore[tileStore[tileId].rackId].name, capacity: rackStore[tileStore[tileId].rackId].capacity, powerCapacityW: rackStore[tileStore[tileId].rackId].powerCapacityW, machines: rackStore[tileStore[tileId].rackId].machineIds .filter((m) => m !== null) .map((machineId) => ({ - _id: machineId, + _id: keepIds ? machineId : undefined, position: machineStore[machineId].position, cpus: machineStore[machineId].cpuIds.map((id) => cpuStore[id]), gpus: machineStore[machineId].gpuIds.map((id) => gpuStore[id]), @@ -183,8 +189,6 @@ export const updateTopologyOnServer = function* (id) { })), })), } - - yield call(updateTopology, topology) } export const fetchAndStoreAllTraces = () => fetchAndStoreObjects('trace', call(getAllTraces)) |
