summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--package.json3
-rw-r--r--src/shapes/index.js110
2 files changed, 112 insertions, 1 deletions
diff --git a/package.json b/package.json
index 7f0ecfd8..fabe8d2b 100644
--- a/package.json
+++ b/package.json
@@ -17,11 +17,12 @@
"react-dom": "^15.6.1",
"react-fontawesome": "^1.6.1",
"react-google-login": "^2.9.3",
+ "react-if": "^2.2.1",
"react-konva": "^1.1.4",
"react-mailto": "^0.4.0",
"react-redux": "^5.0.5",
"react-router-dom": "^4.1.1",
- "react-scripts": "1.0.10",
+ "react-scripts": "^1.0.11",
"redux": "^3.7.2",
"redux-localstorage": "^0.4.1",
"redux-logger": "^3.0.6",
diff --git a/src/shapes/index.js b/src/shapes/index.js
index 770e8d76..1938032e 100644
--- a/src/shapes/index.js
+++ b/src/shapes/index.js
@@ -25,4 +25,114 @@ Shapes.Authorization = PropTypes.shape({
authorizationLevel: PropTypes.string.isRequired,
});
+Shapes.FailureModel = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ rate: PropTypes.number.isRequired,
+});
+
+Shapes.ProcessingUnit = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ manufacturer: PropTypes.string.isRequired,
+ family: PropTypes.string.isRequired,
+ generation: PropTypes.string.isRequired,
+ model: PropTypes.string.isRequired,
+ clockRateMhz: PropTypes.number.isRequired,
+ numberOfCores: PropTypes.number.isRequired,
+ energyConsumptionW: PropTypes.number.isRequired,
+ failureModelId: PropTypes.number.isRequired,
+ failureModel: Shapes.FailureModel,
+});
+
+Shapes.StorageUnit = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ manufacturer: PropTypes.string.isRequired,
+ family: PropTypes.string.isRequired,
+ generation: PropTypes.string.isRequired,
+ model: PropTypes.string.isRequired,
+ speedMbPerS: PropTypes.number.isRequired,
+ sizeMb: PropTypes.number.isRequired,
+ energyConsumptionW: PropTypes.number.isRequired,
+ failureModelId: PropTypes.number.isRequired,
+ failureModel: Shapes.FailureModel,
+});
+
+Shapes.Machine = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ rackId: PropTypes.number.isRequired,
+ position: PropTypes.number.isRequired,
+ cpuIds: PropTypes.arrayOf(PropTypes.number.isRequired),
+ cpus: PropTypes.arrayOf(Shapes.ProcessingUnit),
+ gpuIds: PropTypes.arrayOf(PropTypes.number.isRequired),
+ gpus: PropTypes.arrayOf(Shapes.ProcessingUnit),
+ memoryIds: PropTypes.arrayOf(PropTypes.number.isRequired),
+ memories: PropTypes.arrayOf(Shapes.StorageUnit),
+ storageIds: PropTypes.arrayOf(PropTypes.number.isRequired),
+ storages: PropTypes.arrayOf(Shapes.StorageUnit),
+});
+
+Shapes.Rack = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ capacity: PropTypes.number.isRequired,
+ powerCapacityW: PropTypes.number.isRequired,
+ machines: PropTypes.arrayOf(Shapes.Machine),
+});
+
+Shapes.CoolingItem = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ energyConsumptionW: PropTypes.number.isRequired,
+ type: PropTypes.string.isRequired,
+ failureModelId: PropTypes.number.isRequired,
+ failureModel: Shapes.FailureModel,
+});
+
+Shapes.PSU = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ energyKwh: PropTypes.number.isRequired,
+ type: PropTypes.string.isRequired,
+ failureModelId: PropTypes.number.isRequired,
+ failureModel: Shapes.FailureModel,
+});
+
+Shapes.Tile = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ roomId: PropTypes.number.isRequired,
+ positionX: PropTypes.number.isRequired,
+ positionY: PropTypes.number.isRequired,
+ objectId: PropTypes.number,
+ objectType: PropTypes.number,
+ rack: Shapes.Rack,
+ coolingItem: Shapes.CoolingItem,
+ psu: Shapes.PSU,
+});
+
+Shapes.Room = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ datacenterId: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ roomType: PropTypes.string.isRequired,
+ tiles: PropTypes.arrayOf(Shapes.Tile),
+});
+
+Shapes.Datacenter = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ rooms: PropTypes.arrayOf(Shapes.Room),
+});
+
+Shapes.Section = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ pathId: PropTypes.number.isRequired,
+ datacenterId: PropTypes.number.isRequired,
+ datacenter: Shapes.Datacenter,
+});
+
+Shapes.Path = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ simulationId: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ datetimeCreated: PropTypes.string.isRequired,
+ sections: PropTypes.arrayOf(Shapes.Section),
+});
+
export default Shapes;