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/sidebars/topology/rack/MachineContainer.js | 15 ++++++++++++++- .../sidebars/topology/rack/RackSidebarContainer.js | 15 +++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 src/containers/sidebars/topology/rack/RackSidebarContainer.js (limited to 'src/containers/sidebars/topology/rack') diff --git a/src/containers/sidebars/topology/rack/MachineContainer.js b/src/containers/sidebars/topology/rack/MachineContainer.js index 21ab06c4..7406d191 100644 --- a/src/containers/sidebars/topology/rack/MachineContainer.js +++ b/src/containers/sidebars/topology/rack/MachineContainer.js @@ -1,10 +1,23 @@ import {connect} from "react-redux"; import {goFromRackToMachine} from "../../../../actions/interaction-level"; import MachineComponent from "../../../../components/sidebars/topology/rack/MachineComponent"; +import {getStateLoad} from "../../../../util/simulation-load"; const mapStateToProps = (state, ownProps) => { + const machine = state.objects.machine[ownProps.machineId]; + const inSimulation = state.currentExperimentId !== -1; + + let machineLoad = undefined; + if (inSimulation) { + if (state.states.machine[state.currentTick] && state.states.machine[state.currentTick][machine.id]) { + machineLoad = getStateLoad(state.loadMetric, state.states.machine[state.currentTick][machine.id]); + } + } + return { - machine: state.objects.machine[ownProps.machineId], + machine, + inSimulation, + machineLoad }; }; diff --git a/src/containers/sidebars/topology/rack/RackSidebarContainer.js b/src/containers/sidebars/topology/rack/RackSidebarContainer.js new file mode 100644 index 00000000..4652b968 --- /dev/null +++ b/src/containers/sidebars/topology/rack/RackSidebarContainer.js @@ -0,0 +1,15 @@ +import {connect} from "react-redux"; +import RackSidebarComponent from "../../../../components/sidebars/topology/rack/RackSidebarComponent"; + +const mapStateToProps = state => { + return { + rackId: state.objects.tile[state.interactionLevel.tileId].objectId, + inSimulation: state.currentExperimentId !== -1, + }; +}; + +const RackSidebarContainer = connect( + mapStateToProps +)(RackSidebarComponent); + +export default RackSidebarContainer; -- cgit v1.2.3