blob: d22317a5a95b43219b751376986d40923d34fbb2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import React from 'react'
import { useSelector } from 'react-redux'
import RackFillBar from '../../../components/app/map/elements/RackFillBar'
const RackSpaceFillContainer = (props) => {
const state = useSelector((state) => {
let energyConsumptionTotal = 0
const rack = state.objects.rack[state.objects.tile[props.tileId].rack]
const machineIds = rack.machines
machineIds.forEach((machineId) => {
if (machineId !== null) {
const machine = state.objects.machine[machineId]
machine.cpus.forEach((id) => (energyConsumptionTotal += state.objects.cpu[id].energyConsumptionW))
machine.gpus.forEach((id) => (energyConsumptionTotal += state.objects.gpu[id].energyConsumptionW))
machine.memories.forEach(
(id) => (energyConsumptionTotal += state.objects.memory[id].energyConsumptionW)
)
machine.storages.forEach(
(id) => (energyConsumptionTotal += state.objects.storage[id].energyConsumptionW)
)
}
})
return {
type: 'energy',
fillFraction: Math.min(1, energyConsumptionTotal / rack.powerCapacityW),
}
})
return <RackFillBar {...props} {...state} />
}
export default RackSpaceFillContainer
|