From 6296bb95ba93cb9111e19f06329b6c9b9aec57d5 Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Fri, 8 Sep 2017 11:09:37 +0200 Subject: Fetch all unit specifications on initial datacenter load --- src/sagas/objects.js | 16 ++++++++++++++++ src/sagas/topology.js | 16 ++++++++++++++++ 2 files changed, 32 insertions(+) (limited to 'src/sagas') diff --git a/src/sagas/objects.js b/src/sagas/objects.js index 5c9f00c2..508f1cf5 100644 --- a/src/sagas/objects.js +++ b/src/sagas/objects.js @@ -6,6 +6,10 @@ import {getTilesOfRoom} from "../api/routes/rooms"; import {getSection} from "../api/routes/sections"; import {getPathsOfSimulation, getSimulation} from "../api/routes/simulations"; import { + getAllCPUs, + getAllGPUs, + getAllMemories, + getAllStorages, getCoolingItem, getCPU, getFailureModel, @@ -64,15 +68,27 @@ export const fetchAndStoreUser = (id) => export const fetchAndStoreFailureModel = (id) => fetchAndStoreObject("failureModel", id, call(getFailureModel, id)); +export const fetchAndStoreAllCPUs = () => + fetchAndStoreObjects("cpu", call(getAllCPUs)); + export const fetchAndStoreCPU = (id) => fetchAndStoreObject("cpu", id, call(getCPU, id)); +export const fetchAndStoreAllGPUs = () => + fetchAndStoreObjects("gpu", call(getAllGPUs)); + export const fetchAndStoreGPU = (id) => fetchAndStoreObject("gpu", id, call(getGPU, id)); +export const fetchAndStoreAllMemories = () => + fetchAndStoreObjects("memory", call(getAllMemories)); + export const fetchAndStoreMemory = (id) => fetchAndStoreObject("memory", id, call(getMemory, id)); +export const fetchAndStoreAllStorages = () => + fetchAndStoreObjects("storage", call(getAllStorages)); + export const fetchAndStoreStorage = (id) => fetchAndStoreObject("storage", id, call(getStorage, id)); diff --git a/src/sagas/topology.js b/src/sagas/topology.js index f507b2ad..b128ff97 100644 --- a/src/sagas/topology.js +++ b/src/sagas/topology.js @@ -22,6 +22,10 @@ import { updateRackOnTile } from "../api/routes/tiles"; import { + fetchAndStoreAllCPUs, + fetchAndStoreAllGPUs, + fetchAndStoreAllMemories, + fetchAndStoreAllStorages, fetchAndStoreCoolingItem, fetchAndStoreCPU, fetchAndStoreDatacenter, @@ -43,6 +47,7 @@ export function* onFetchLatestDatacenter(action) { const latestPath = paths[paths.length - 1]; const sections = yield fetchAndStoreSectionsOfPath(latestPath.id); const latestSection = sections[sections.length - 1]; + yield fetchAllUnitSpecifications(); yield fetchDatacenter(latestSection.datacenterId); yield put(fetchLatestDatacenterSucceeded(latestSection.datacenterId)); } catch (error) { @@ -64,6 +69,17 @@ export function* fetchDatacenter(datacenterId) { } } +function* fetchAllUnitSpecifications() { + try { + yield fetchAndStoreAllCPUs(); + yield fetchAndStoreAllGPUs(); + yield fetchAndStoreAllMemories(); + yield fetchAndStoreAllStorages(); + } catch (error) { + console.log(error); + } +} + function* fetchRoom(roomId) { const tiles = yield fetchAndStoreTilesOfRoom(roomId); yield put(addPropToStoreObject("room", roomId, {tileIds: tiles.map(tile => tile.id)})); -- cgit v1.2.3