summaryrefslogtreecommitdiff
path: root/frontend/src/sagas/experiments.js
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-07-01 13:33:31 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 19:47:17 +0200
commitde8f12d74faef5fa3f9e38d1340948cab2d06ea3 (patch)
tree678bf1af3e5fa2334f0df43388d45294785bbf1e /frontend/src/sagas/experiments.js
parent44236756c4cf689806dc17c6950a2cff3e9227bf (diff)
Manually generate IDs
Diffstat (limited to 'frontend/src/sagas/experiments.js')
-rw-r--r--frontend/src/sagas/experiments.js302
1 files changed, 147 insertions, 155 deletions
diff --git a/frontend/src/sagas/experiments.js b/frontend/src/sagas/experiments.js
index d9c410f7..a361759b 100644
--- a/frontend/src/sagas/experiments.js
+++ b/frontend/src/sagas/experiments.js
@@ -1,183 +1,175 @@
-import { call, put, select, delay } from "redux-saga/effects";
-import { addPropToStoreObject, addToStore } from "../actions/objects";
-import { setLastSimulatedTick } from "../actions/simulation/tick";
-import { addBatchToStates } from "../actions/states";
+import { call, delay, put, select } from 'redux-saga/effects'
+import { addPropToStoreObject, addToStore } from '../actions/objects'
+import { setLastSimulatedTick } from '../actions/simulation/tick'
+import { addBatchToStates } from '../actions/states'
import {
- deleteExperiment,
- getAllMachineStates,
- getAllRackStates,
- getAllRoomStates,
- getAllTaskStates,
- getExperiment,
- getLastSimulatedTick
-} from "../api/routes/experiments";
-import { getTasksOfJob } from "../api/routes/jobs";
-import {
- addExperiment,
- getExperimentsOfSimulation,
- getSimulation
-} from "../api/routes/simulations";
-import { getJobsOfTrace } from "../api/routes/traces";
-import {
- fetchAndStoreAllSchedulers,
- fetchAndStoreAllTraces,
- fetchAndStorePathsOfSimulation
-} from "./objects";
-import { fetchAllDatacentersOfExperiment } from "./topology";
+ deleteExperiment,
+ getAllMachineStates,
+ getAllRackStates,
+ getAllRoomStates,
+ getAllTaskStates,
+ getExperiment,
+ getLastSimulatedTick,
+} from '../api/routes/experiments'
+import { getTasksOfJob } from '../api/routes/jobs'
+import { addExperiment, getExperimentsOfSimulation, getSimulation } from '../api/routes/simulations'
+import { getJobsOfTrace } from '../api/routes/traces'
+import { fetchAndStoreAllSchedulers, fetchAndStoreAllTraces, fetchAndStorePathsOfSimulation } from './objects'
+import { fetchAllDatacentersOfExperiment } from './topology'
export function* onOpenExperimentSucceeded(action) {
- try {
- const simulation = yield call(getSimulation, action.simulationId);
- yield put(addToStore("simulation", simulation));
+ try {
+ const simulation = yield call(getSimulation, action.simulationId)
+ yield put(addToStore('simulation', simulation))
- const experiment = yield call(getExperiment, action.experimentId);
- yield put(addToStore("experiment", experiment));
+ const experiment = yield call(getExperiment, action.experimentId)
+ yield put(addToStore('experiment', experiment))
- yield fetchExperimentSpecifications();
- yield fetchWorkloadOfTrace(experiment.traceId);
+ yield fetchExperimentSpecifications()
+ yield fetchWorkloadOfTrace(experiment.traceId)
- yield fetchAllDatacentersOfExperiment(experiment);
- yield startStateFetchLoop(action.experimentId);
- } catch (error) {
- console.error(error);
- }
+ yield fetchAllDatacentersOfExperiment(experiment)
+ yield startStateFetchLoop(action.experimentId)
+ } catch (error) {
+ console.error(error)
+ }
}
function* startStateFetchLoop(experimentId) {
- try {
- while ((yield select(state => state.currentExperimentId)) !== -1) {
- const lastSimulatedTick = (yield call(getLastSimulatedTick, experimentId))
- .lastSimulatedTick;
- if (
- lastSimulatedTick !== (yield select(state => state.lastSimulatedTick))
- ) {
- yield put(setLastSimulatedTick(lastSimulatedTick));
-
- const taskStates = yield call(getAllTaskStates, experimentId);
- const machineStates = yield call(getAllMachineStates, experimentId);
- const rackStates = yield call(getAllRackStates, experimentId);
- const roomStates = yield call(getAllRoomStates, experimentId);
-
- yield put(addBatchToStates("task", taskStates));
- yield put(addBatchToStates("machine", machineStates));
- yield put(addBatchToStates("rack", rackStates));
- yield put(addBatchToStates("room", roomStates));
-
- yield delay(5000);
- } else {
- yield delay(10000);
- }
+ try {
+ while ((yield select(state => state.currentExperimentId)) !== -1) {
+ const lastSimulatedTick = (yield call(getLastSimulatedTick, experimentId))
+ .lastSimulatedTick
+ if (
+ lastSimulatedTick !== (yield select(state => state.lastSimulatedTick))
+ ) {
+ yield put(setLastSimulatedTick(lastSimulatedTick))
+
+ const taskStates = yield call(getAllTaskStates, experimentId)
+ const machineStates = yield call(getAllMachineStates, experimentId)
+ const rackStates = yield call(getAllRackStates, experimentId)
+ const roomStates = yield call(getAllRoomStates, experimentId)
+
+ yield put(addBatchToStates('task', taskStates))
+ yield put(addBatchToStates('machine', machineStates))
+ yield put(addBatchToStates('rack', rackStates))
+ yield put(addBatchToStates('room', roomStates))
+
+ yield delay(5000)
+ } else {
+ yield delay(10000)
+ }
+ }
+ } catch (error) {
+ console.error(error)
}
- } catch (error) {
- console.error(error);
- }
}
export function* onFetchExperimentsOfSimulation() {
- try {
- const currentSimulationId = yield select(
- state => state.currentSimulationId
- );
-
- yield fetchExperimentSpecifications();
- const experiments = yield call(
- getExperimentsOfSimulation,
- currentSimulationId
- );
- for (let i in experiments) {
- yield put(addToStore("experiment", experiments[i]));
+ try {
+ const currentSimulationId = yield select(
+ state => state.currentSimulationId,
+ )
+
+ yield fetchExperimentSpecifications()
+ const experiments = yield call(
+ getExperimentsOfSimulation,
+ currentSimulationId,
+ )
+ for (let i in experiments) {
+ yield put(addToStore('experiment', experiments[i]))
+ }
+ yield put(
+ addPropToStoreObject('simulation', currentSimulationId, {
+ experimentIds: experiments.map(experiment => experiment.id),
+ }),
+ )
+ } catch (error) {
+ console.error(error)
}
- yield put(
- addPropToStoreObject("simulation", currentSimulationId, {
- experimentIds: experiments.map(experiment => experiment.id)
- })
- );
- } catch (error) {
- console.error(error);
- }
}
function* fetchExperimentSpecifications() {
- try {
- const currentSimulationId = yield select(
- state => state.currentSimulationId
- );
- yield fetchAndStorePathsOfSimulation(currentSimulationId);
- yield fetchAndStoreAllTraces();
- yield fetchAndStoreAllSchedulers();
- } catch (error) {
- console.error(error);
- }
+ try {
+ const currentSimulationId = yield select(
+ state => state.currentSimulationId,
+ )
+ yield fetchAndStorePathsOfSimulation(currentSimulationId)
+ yield fetchAndStoreAllTraces()
+ yield fetchAndStoreAllSchedulers()
+ } catch (error) {
+ console.error(error)
+ }
}
function* fetchWorkloadOfTrace(traceId) {
- try {
- const jobs = yield call(getJobsOfTrace, traceId);
- for (let i in jobs) {
- const job = jobs[i];
- const tasks = yield call(getTasksOfJob, job.id);
- job.taskIds = tasks.map(task => task.id);
- for (let j in tasks) {
- yield put(addToStore("task", tasks[j]));
- }
- yield put(addToStore("job", job));
+ try {
+ const jobs = yield call(getJobsOfTrace, traceId)
+ for (let i in jobs) {
+ const job = jobs[i]
+ const tasks = yield call(getTasksOfJob, job.id)
+ job.taskIds = tasks.map(task => task.id)
+ for (let j in tasks) {
+ yield put(addToStore('task', tasks[j]))
+ }
+ yield put(addToStore('job', job))
+ }
+ yield put(
+ addPropToStoreObject('trace', traceId, {
+ jobIds: jobs.map(job => job.id),
+ }),
+ )
+ } catch (error) {
+ console.error(error)
}
- yield put(
- addPropToStoreObject("trace", traceId, {
- jobIds: jobs.map(job => job.id)
- })
- );
- } catch (error) {
- console.error(error);
- }
}
export function* onAddExperiment(action) {
- try {
- const currentSimulationId = yield select(
- state => state.currentSimulationId
- );
-
- const experiment = yield call(
- addExperiment,
- currentSimulationId,
- Object.assign({}, action.experiment, {
- id: -1,
- simulationId: currentSimulationId
- })
- );
- yield put(addToStore("experiment", experiment));
-
- const experimentIds = yield select(
- state => state.objects.simulation[currentSimulationId].experimentIds
- );
- yield put(
- addPropToStoreObject("simulation", currentSimulationId, {
- experimentIds: experimentIds.concat([experiment.id])
- })
- );
- } catch (error) {
- console.error(error);
- }
+ try {
+ const currentSimulationId = yield select(
+ state => state.currentSimulationId,
+ )
+
+ const experiment = yield call(
+ addExperiment,
+ currentSimulationId,
+ Object.assign({}, action.experiment, {
+ id: -1,
+ simulationId: currentSimulationId,
+ }),
+ )
+ yield put(addToStore('experiment', experiment))
+
+ const experimentIds = yield select(
+ state => state.objects.simulation[currentSimulationId].experimentIds,
+ )
+ yield put(
+ addPropToStoreObject('simulation', currentSimulationId, {
+ experimentIds: experimentIds.concat([experiment.id]),
+ }),
+ )
+ } catch (error) {
+ console.error(error)
+ }
}
export function* onDeleteExperiment(action) {
- try {
- yield call(deleteExperiment, action.id);
-
- const currentSimulationId = yield select(
- state => state.currentSimulationId
- );
- const experimentIds = yield select(
- state => state.objects.simulation[currentSimulationId].experimentIds
- );
-
- yield put(
- addPropToStoreObject("simulation", currentSimulationId, {
- experimentIds: experimentIds.filter(id => id !== action.id)
- })
- );
- } catch (error) {
- console.error(error);
- }
+ try {
+ yield call(deleteExperiment, action.id)
+
+ const currentSimulationId = yield select(
+ state => state.currentSimulationId,
+ )
+ const experimentIds = yield select(
+ state => state.objects.simulation[currentSimulationId].experimentIds,
+ )
+
+ yield put(
+ addPropToStoreObject('simulation', currentSimulationId, {
+ experimentIds: experimentIds.filter(id => id !== action.id),
+ }),
+ )
+ } catch (error) {
+ console.error(error)
+ }
}