summaryrefslogtreecommitdiff
path: root/frontend/src/shapes
diff options
context:
space:
mode:
authorGeorgios Andreadis <info@gandreadis.com>2020-06-29 15:47:09 +0200
committerFabian Mastenbroek <mail.fabianm@gmail.com>2020-08-24 16:08:41 +0200
commit90fae26aa4bd0e0eb3272ff6e6524060e9004fbb (patch)
treebf6943882f5fa5f3114c01fc571503c79ee1056d /frontend/src/shapes
parent7032a007d4431f5a0c4c5e2d3f3bd20462d49950 (diff)
Prepare frontend repository for monorepo
This change prepares the frontend Git repository for the monorepo residing at https://github.com/atlarge-research.com/opendc. To accomodate for this, we move all files into a frontend subdirectory.
Diffstat (limited to 'frontend/src/shapes')
-rw-r--r--frontend/src/shapes/index.js188
1 files changed, 188 insertions, 0 deletions
diff --git a/frontend/src/shapes/index.js b/frontend/src/shapes/index.js
new file mode 100644
index 00000000..5570ef34
--- /dev/null
+++ b/frontend/src/shapes/index.js
@@ -0,0 +1,188 @@
+import PropTypes from "prop-types";
+
+const Shapes = {};
+
+Shapes.User = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ googleId: PropTypes.string.isRequired,
+ email: PropTypes.string.isRequired,
+ givenName: PropTypes.string.isRequired,
+ familyName: PropTypes.string.isRequired
+});
+
+Shapes.Simulation = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ datetimeCreated: PropTypes.string.isRequired,
+ datetimeLastEdited: PropTypes.string.isRequired
+});
+
+Shapes.Authorization = PropTypes.shape({
+ userId: PropTypes.number.isRequired,
+ user: Shapes.User,
+ simulationId: PropTypes.number.isRequired,
+ simulation: Shapes.Simulation,
+ 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.string,
+ 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,
+ startTick: 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,
+ datetimeCreated: PropTypes.string.isRequired,
+ sections: PropTypes.arrayOf(Shapes.Section)
+});
+
+Shapes.Scheduler = PropTypes.shape({
+ name: PropTypes.string.isRequired
+});
+
+Shapes.Task = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ jobId: PropTypes.number.isRequired,
+ startTick: PropTypes.number.isRequired,
+ totalFlopCount: PropTypes.number.isRequired
+});
+
+Shapes.Job = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ traceId: PropTypes.number.isRequired,
+ taskIds: PropTypes.arrayOf(PropTypes.number)
+});
+
+Shapes.Trace = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ name: PropTypes.string.isRequired,
+ jobIds: PropTypes.arrayOf(PropTypes.number)
+});
+
+Shapes.Experiment = PropTypes.shape({
+ id: PropTypes.number.isRequired,
+ simulationId: PropTypes.number.isRequired,
+ traceId: PropTypes.number.isRequired,
+ trace: Shapes.Trace,
+ pathId: PropTypes.number.isRequired,
+ path: Shapes.Path,
+ schedulerName: PropTypes.string.isRequired,
+ scheduler: Shapes.Scheduler,
+ name: PropTypes.string.isRequired
+});
+
+Shapes.WallSegment = PropTypes.shape({
+ startPosX: PropTypes.number.isRequired,
+ startPosY: PropTypes.number.isRequired,
+ isHorizontal: PropTypes.bool.isRequired,
+ length: PropTypes.number.isRequired
+});
+
+Shapes.InteractionLevel = PropTypes.shape({
+ mode: PropTypes.string.isRequired,
+ roomId: PropTypes.number,
+ rackId: PropTypes.bool
+});
+
+export default Shapes;