summaryrefslogtreecommitdiff
path: root/src/sagas/topology.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-05 09:30:42 +0200
committerGeorgios Andreadis <g.andreadis@student.tudelft.nl>2017-09-23 10:05:57 +0200
commit42778e8be409b97059fa519b53c303cdba502e01 (patch)
tree23d03a1f8a9f8d137bf723c72086a6d79406874f /src/sagas/topology.js
parent6f3afd0317a8e549f77ad6764f6dbe4d4953b67c (diff)
Implement rack creation
Diffstat (limited to 'src/sagas/topology.js')
-rw-r--r--src/sagas/topology.js25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/sagas/topology.js b/src/sagas/topology.js
index c029c861..22f70f25 100644
--- a/src/sagas/topology.js
+++ b/src/sagas/topology.js
@@ -1,6 +1,7 @@
import {call, put, select} from "redux-saga/effects";
import {addPropToStoreObject, addToStore} from "../actions/objects";
import {
+ addRackToTileSucceeded,
addTileSucceeded,
cancelNewRoomConstructionSucceeded,
deleteTileSucceeded,
@@ -10,7 +11,7 @@ import {
} from "../actions/topology";
import {addRoomToDatacenter} from "../api/routes/datacenters";
import {addTileToRoom, deleteRoom, updateRoom} from "../api/routes/rooms";
-import {deleteTile} from "../api/routes/tiles";
+import {addRackToTile, deleteTile} from "../api/routes/tiles";
import {
fetchAndStoreCoolingItem,
fetchAndStoreDatacenter,
@@ -89,7 +90,7 @@ export function* onStartNewRoomConstruction() {
datacenterId,
roomType: "SERVER"
});
- const roomWithEmptyTileList = Object.assign(room, {tileIds: []});
+ const roomWithEmptyTileList = Object.assign({}, room, {tileIds: []});
yield put(addToStore("room", roomWithEmptyTileList));
yield put(startNewRoomConstructionSucceeded(room.id));
} catch (error) {
@@ -99,7 +100,7 @@ export function* onStartNewRoomConstruction() {
export function* onCancelNewRoomConstruction() {
try {
- const roomId = yield select(state => state.currentRoomInConstruction);
+ const roomId = yield select(state => state.construction.currentRoomInConstruction);
yield call(deleteRoom, roomId);
yield put(cancelNewRoomConstructionSucceeded());
} catch (error) {
@@ -109,7 +110,7 @@ export function* onCancelNewRoomConstruction() {
export function* onAddTile(action) {
try {
- const roomId = yield select(state => state.currentRoomInConstruction);
+ const roomId = yield select(state => state.construction.currentRoomInConstruction);
const tile = yield call(addTileToRoom, {
roomId,
positionX: action.positionX,
@@ -142,3 +143,19 @@ export function* onEditRoomName(action) {
console.log(error);
}
}
+
+export function* onAddRackToTile(action) {
+ try {
+ const rack = yield call(addRackToTile, action.tileId, {
+ id: -1,
+ name: "Rack",
+ capacity: 5,
+ powerCapacityW: 100,
+ machines: 20
+ });
+ yield put(addToStore("rack", rack));
+ yield put(addRackToTileSucceeded(action.tileId, rack.id));
+ } catch (error) {
+ console.log(error);
+ }
+}