From eb208a7e2fd020ab5d07d11cc6d52d1e3dcfcc7c Mon Sep 17 00:00:00 2001 From: Georgios Andreadis Date: Sun, 17 Sep 2017 17:55:04 +0200 Subject: Add simulation mode framework Includes object states in the store (by tick), charting, and progress bars. --- src/containers/map/DatacenterContainer.js | 2 +- src/containers/map/RackContainer.js | 26 ++++++++++++++++++++++++++ src/containers/map/TileContainer.js | 15 ++++++++++++++- 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 src/containers/map/RackContainer.js (limited to 'src/containers/map') diff --git a/src/containers/map/DatacenterContainer.js b/src/containers/map/DatacenterContainer.js index 8c80146d..b56adbac 100644 --- a/src/containers/map/DatacenterContainer.js +++ b/src/containers/map/DatacenterContainer.js @@ -8,7 +8,7 @@ const mapStateToProps = state => { return { datacenter: state.objects.datacenter[state.currentDatacenterId], - interactionLevel: state.interactionLevel + interactionLevel: state.interactionLevel, }; }; diff --git a/src/containers/map/RackContainer.js b/src/containers/map/RackContainer.js new file mode 100644 index 00000000..60df9aaf --- /dev/null +++ b/src/containers/map/RackContainer.js @@ -0,0 +1,26 @@ +import {connect} from "react-redux"; +import RackGroup from "../../components/map/groups/RackGroup"; +import {getStateLoad} from "../../util/simulation-load"; + +const mapStateToProps = (state, ownProps) => { + const inSimulation = state.currentExperimentId !== -1; + + let rackLoad = undefined; + if (inSimulation) { + if (state.states.rack[state.currentTick] && state.states.rack[state.currentTick][ownProps.tile.objectId]) { + rackLoad = getStateLoad(state.loadMetric, state.states.rack[state.currentTick][ownProps.tile.objectId]); + } + } + + return { + interactionLevel: state.interactionLevel, + inSimulation, + rackLoad, + }; +}; + +const RackContainer = connect( + mapStateToProps +)(RackGroup); + +export default RackContainer; diff --git a/src/containers/map/TileContainer.js b/src/containers/map/TileContainer.js index 9e98636a..75fac5ad 100644 --- a/src/containers/map/TileContainer.js +++ b/src/containers/map/TileContainer.js @@ -1,11 +1,24 @@ import {connect} from "react-redux"; import {goFromRoomToRack} from "../../actions/interaction-level"; import TileGroup from "../../components/map/groups/TileGroup"; +import {getStateLoad} from "../../util/simulation-load"; const mapStateToProps = (state, ownProps) => { + const tile = state.objects.tile[ownProps.tileId]; + const inSimulation = state.currentExperimentId !== -1; + + let roomLoad = undefined; + if (inSimulation) { + if (state.states.room[state.currentTick] && state.states.room[state.currentTick][tile.roomId]) { + roomLoad = getStateLoad(state.loadMetric, state.states.room[state.currentTick][tile.roomId]); + } + } + return { interactionLevel: state.interactionLevel, - tile: state.objects.tile[ownProps.tileId], + tile, + inSimulation, + roomLoad, }; }; -- cgit v1.2.3