summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--web-server/.gitignore (renamed from .gitignore)0
-rw-r--r--web-server/.gitlab-ci.yml (renamed from .gitlab-ci.yml)0
-rw-r--r--web-server/.pylintrc (renamed from .pylintrc)0
-rw-r--r--web-server/.style.yapf (renamed from .style.yapf)0
-rw-r--r--web-server/LICENSE.md (renamed from LICENSE.md)0
-rw-r--r--web-server/OpenDC.postman_collection.json (renamed from OpenDC.postman_collection.json)0
-rw-r--r--web-server/README.md (renamed from README.md)0
-rw-r--r--web-server/conftest.py (renamed from conftest.py)0
-rw-r--r--web-server/format.sh (renamed from format.sh)0
-rw-r--r--web-server/images/logo.png (renamed from images/logo.png)bin2825 -> 2825 bytes
-rw-r--r--web-server/images/opendc-web-server-component-diagram.png (renamed from images/opendc-web-server-component-diagram.png)bin90161 -> 90161 bytes
-rw-r--r--web-server/main.py (renamed from main.py)0
-rw-r--r--web-server/opendc/__init__.py (renamed from opendc/__init__.py)0
-rw-r--r--web-server/opendc/api/__init__.py (renamed from opendc/api/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/__init__.py (renamed from opendc/api/v2/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/__init__.py (renamed from opendc/api/v2/experiments/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/__init__.py (renamed from opendc/api/v2/experiments/experimentId/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/endpoint.py (renamed from opendc/api/v2/experiments/experimentId/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/last-simulated-tick/__init__.py (renamed from opendc/api/v2/experiments/experimentId/last-simulated-tick/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/last-simulated-tick/endpoint.py (renamed from opendc/api/v2/experiments/experimentId/last-simulated-tick/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/machine-states/__init__.py (renamed from opendc/api/v2/experiments/experimentId/machine-states/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/machine-states/endpoint.py (renamed from opendc/api/v2/experiments/experimentId/machine-states/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/rack-states/__init__.py (renamed from opendc/api/v2/experiments/experimentId/rack-states/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/rack-states/endpoint.py (renamed from opendc/api/v2/experiments/experimentId/rack-states/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/room-states/__init__.py (renamed from opendc/api/v2/experiments/experimentId/room-states/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/room-states/endpoint.py (renamed from opendc/api/v2/experiments/experimentId/room-states/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/statistics/__init__.py (renamed from opendc/api/v2/experiments/experimentId/statistics/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/statistics/task-durations/__init__.py (renamed from opendc/api/v2/experiments/experimentId/statistics/task-durations/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/statistics/task-durations/endpoint.py (renamed from opendc/api/v2/experiments/experimentId/statistics/task-durations/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/task-states/__init__.py (renamed from opendc/api/v2/experiments/experimentId/task-states/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/experiments/experimentId/task-states/endpoint.py (renamed from opendc/api/v2/experiments/experimentId/task-states/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/paths.json (renamed from opendc/api/v2/paths.json)0
-rw-r--r--web-server/opendc/api/v2/schedulers/__init__.py (renamed from opendc/api/v2/schedulers/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/schedulers/endpoint.py (renamed from opendc/api/v2/schedulers/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/schedulers/test_endpoint.py (renamed from opendc/api/v2/schedulers/test_endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/__init__.py (renamed from opendc/api/v2/simulations/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/endpoint.py (renamed from opendc/api/v2/simulations/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/__init__.py (renamed from opendc/api/v2/simulations/simulationId/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/authorizations/__init__.py (renamed from opendc/api/v2/simulations/simulationId/authorizations/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/authorizations/endpoint.py (renamed from opendc/api/v2/simulations/simulationId/authorizations/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/authorizations/userId/__init__.py (renamed from opendc/api/v2/simulations/simulationId/authorizations/userId/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/authorizations/userId/endpoint.py (renamed from opendc/api/v2/simulations/simulationId/authorizations/userId/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/endpoint.py (renamed from opendc/api/v2/simulations/simulationId/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/experiments/__init__.py (renamed from opendc/api/v2/simulations/simulationId/experiments/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/experiments/endpoint.py (renamed from opendc/api/v2/simulations/simulationId/experiments/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/test_endpoint.py (renamed from opendc/api/v2/simulations/simulationId/test_endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/topologies/__init__.py (renamed from opendc/api/v2/simulations/simulationId/topologies/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/topologies/endpoint.py (renamed from opendc/api/v2/simulations/simulationId/topologies/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/simulationId/topologies/test_endpoint.py (renamed from opendc/api/v2/simulations/simulationId/topologies/test_endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/simulations/test_endpoint.py (renamed from opendc/api/v2/simulations/test_endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/topologies/__init__.py (renamed from opendc/api/v2/topologies/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/topologies/topologyId/__init__.py (renamed from opendc/api/v2/topologies/topologyId/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/topologies/topologyId/endpoint.py (renamed from opendc/api/v2/topologies/topologyId/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/topologies/topologyId/rooms/__init__.py (renamed from opendc/api/v2/topologies/topologyId/rooms/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/topologies/topologyId/rooms/endpoint.py (renamed from opendc/api/v2/topologies/topologyId/rooms/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py (renamed from opendc/api/v2/topologies/topologyId/test_endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/traces/__init__.py (renamed from opendc/api/v2/traces/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/traces/endpoint.py (renamed from opendc/api/v2/traces/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/traces/traceId/__init__.py (renamed from opendc/api/v2/traces/traceId/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/traces/traceId/endpoint.py (renamed from opendc/api/v2/traces/traceId/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/users/__init__.py (renamed from opendc/api/v2/users/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/users/endpoint.py (renamed from opendc/api/v2/users/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/users/test_endpoint.py (renamed from opendc/api/v2/users/test_endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/users/userId/__init__.py (renamed from opendc/api/v2/users/userId/__init__.py)0
-rw-r--r--web-server/opendc/api/v2/users/userId/endpoint.py (renamed from opendc/api/v2/users/userId/endpoint.py)0
-rw-r--r--web-server/opendc/api/v2/users/userId/test_endpoint.py (renamed from opendc/api/v2/users/userId/test_endpoint.py)0
-rw-r--r--web-server/opendc/models/__init__.py (renamed from opendc/models/__init__.py)0
-rw-r--r--web-server/opendc/models/model.py (renamed from opendc/models/model.py)0
-rw-r--r--web-server/opendc/models/simulation.py (renamed from opendc/models/simulation.py)0
-rw-r--r--web-server/opendc/models/topology.py (renamed from opendc/models/topology.py)0
-rw-r--r--web-server/opendc/models/trace.py8
-rw-r--r--web-server/opendc/models/user.py (renamed from opendc/models/user.py)0
-rw-r--r--web-server/opendc/models_old/__init__.py (renamed from opendc/models_old/__init__.py)0
-rw-r--r--web-server/opendc/models_old/allowed_object.py (renamed from opendc/models_old/allowed_object.py)0
-rw-r--r--web-server/opendc/models_old/authorization.py (renamed from opendc/models_old/authorization.py)0
-rw-r--r--web-server/opendc/models_old/cpu.py (renamed from opendc/models_old/cpu.py)0
-rw-r--r--web-server/opendc/models_old/datacenter.py (renamed from opendc/models_old/datacenter.py)0
-rw-r--r--web-server/opendc/models_old/experiment.py (renamed from opendc/models_old/experiment.py)0
-rw-r--r--web-server/opendc/models_old/failure_model.py (renamed from opendc/models_old/failure_model.py)0
-rw-r--r--web-server/opendc/models_old/gpu.py (renamed from opendc/models_old/gpu.py)0
-rw-r--r--web-server/opendc/models_old/job.py (renamed from opendc/models_old/job.py)0
-rw-r--r--web-server/opendc/models_old/machine.py (renamed from opendc/models_old/machine.py)0
-rw-r--r--web-server/opendc/models_old/machine_state.py (renamed from opendc/models_old/machine_state.py)0
-rw-r--r--web-server/opendc/models_old/memory.py (renamed from opendc/models_old/memory.py)0
-rw-r--r--web-server/opendc/models_old/model.py (renamed from opendc/models_old/model.py)0
-rw-r--r--web-server/opendc/models_old/object.py (renamed from opendc/models_old/object.py)0
-rw-r--r--web-server/opendc/models_old/path.py (renamed from opendc/models_old/path.py)0
-rw-r--r--web-server/opendc/models_old/queued_experiment.py (renamed from opendc/models_old/queued_experiment.py)0
-rw-r--r--web-server/opendc/models_old/rack.py (renamed from opendc/models_old/rack.py)0
-rw-r--r--web-server/opendc/models_old/rack_state.py (renamed from opendc/models_old/rack_state.py)0
-rw-r--r--web-server/opendc/models_old/room.py (renamed from opendc/models_old/room.py)0
-rw-r--r--web-server/opendc/models_old/room_state.py (renamed from opendc/models_old/room_state.py)0
-rw-r--r--web-server/opendc/models_old/room_type.py (renamed from opendc/models_old/room_type.py)0
-rw-r--r--web-server/opendc/models_old/scheduler.py (renamed from opendc/models_old/scheduler.py)0
-rw-r--r--web-server/opendc/models_old/section.py (renamed from opendc/models_old/section.py)0
-rw-r--r--web-server/opendc/models_old/simulation.py (renamed from opendc/models_old/simulation.py)0
-rw-r--r--web-server/opendc/models_old/storage.py (renamed from opendc/models_old/storage.py)0
-rw-r--r--web-server/opendc/models_old/task.py (renamed from opendc/models_old/task.py)0
-rw-r--r--web-server/opendc/models_old/task_duration.py (renamed from opendc/models_old/task_duration.py)0
-rw-r--r--web-server/opendc/models_old/task_state.py (renamed from opendc/models_old/task_state.py)0
-rw-r--r--web-server/opendc/models_old/tile.py (renamed from opendc/models_old/tile.py)0
-rw-r--r--web-server/opendc/models_old/trace.py (renamed from opendc/models_old/trace.py)0
-rw-r--r--web-server/opendc/models_old/user.py (renamed from opendc/models_old/user.py)0
-rw-r--r--web-server/opendc/util/__init__.py (renamed from opendc/util/__init__.py)0
-rw-r--r--web-server/opendc/util/database.py (renamed from opendc/util/database.py)0
-rw-r--r--web-server/opendc/util/exceptions.py (renamed from opendc/util/exceptions.py)0
-rw-r--r--web-server/opendc/util/parameter_checker.py (renamed from opendc/util/parameter_checker.py)0
-rw-r--r--web-server/opendc/util/path_parser.py (renamed from opendc/util/path_parser.py)0
-rw-r--r--web-server/opendc/util/rest.py (renamed from opendc/util/rest.py)0
-rw-r--r--web-server/pytest.ini (renamed from pytest.ini)0
-rw-r--r--web-server/requirements.txt (renamed from requirements.txt)0
-rw-r--r--web-server/static/index.html (renamed from static/index.html)0
112 files changed, 8 insertions, 0 deletions
diff --git a/.gitignore b/web-server/.gitignore
index fef0da65..fef0da65 100644
--- a/.gitignore
+++ b/web-server/.gitignore
diff --git a/.gitlab-ci.yml b/web-server/.gitlab-ci.yml
index c8c07a56..c8c07a56 100644
--- a/.gitlab-ci.yml
+++ b/web-server/.gitlab-ci.yml
diff --git a/.pylintrc b/web-server/.pylintrc
index c7855f0e..c7855f0e 100644
--- a/.pylintrc
+++ b/web-server/.pylintrc
diff --git a/.style.yapf b/web-server/.style.yapf
index f5c26c57..f5c26c57 100644
--- a/.style.yapf
+++ b/web-server/.style.yapf
diff --git a/LICENSE.md b/web-server/LICENSE.md
index 57288ae2..57288ae2 100644
--- a/LICENSE.md
+++ b/web-server/LICENSE.md
diff --git a/OpenDC.postman_collection.json b/web-server/OpenDC.postman_collection.json
index c34dc310..c34dc310 100644
--- a/OpenDC.postman_collection.json
+++ b/web-server/OpenDC.postman_collection.json
diff --git a/README.md b/web-server/README.md
index 04146f59..04146f59 100644
--- a/README.md
+++ b/web-server/README.md
diff --git a/conftest.py b/web-server/conftest.py
index 05172b04..05172b04 100644
--- a/conftest.py
+++ b/web-server/conftest.py
diff --git a/format.sh b/web-server/format.sh
index 18cba452..18cba452 100644
--- a/format.sh
+++ b/web-server/format.sh
diff --git a/images/logo.png b/web-server/images/logo.png
index d743038b..d743038b 100644
--- a/images/logo.png
+++ b/web-server/images/logo.png
Binary files differ
diff --git a/images/opendc-web-server-component-diagram.png b/web-server/images/opendc-web-server-component-diagram.png
index 91b26006..91b26006 100644
--- a/images/opendc-web-server-component-diagram.png
+++ b/web-server/images/opendc-web-server-component-diagram.png
Binary files differ
diff --git a/main.py b/web-server/main.py
index cd9394d5..cd9394d5 100644
--- a/main.py
+++ b/web-server/main.py
diff --git a/opendc/__init__.py b/web-server/opendc/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/__init__.py
+++ b/web-server/opendc/__init__.py
diff --git a/opendc/api/__init__.py b/web-server/opendc/api/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/__init__.py
+++ b/web-server/opendc/api/__init__.py
diff --git a/opendc/api/v2/__init__.py b/web-server/opendc/api/v2/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/__init__.py
+++ b/web-server/opendc/api/v2/__init__.py
diff --git a/opendc/api/v2/experiments/__init__.py b/web-server/opendc/api/v2/experiments/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/__init__.py
+++ b/web-server/opendc/api/v2/experiments/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/experimentId/__init__.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/endpoint.py
index bc2b139e..bc2b139e 100644
--- a/opendc/api/v2/experiments/experimentId/endpoint.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/endpoint.py
diff --git a/opendc/api/v2/experiments/experimentId/last-simulated-tick/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/last-simulated-tick/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/experimentId/last-simulated-tick/__init__.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/last-simulated-tick/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/last-simulated-tick/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/last-simulated-tick/endpoint.py
index 3309502c..3309502c 100644
--- a/opendc/api/v2/experiments/experimentId/last-simulated-tick/endpoint.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/last-simulated-tick/endpoint.py
diff --git a/opendc/api/v2/experiments/experimentId/machine-states/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/machine-states/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/experimentId/machine-states/__init__.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/machine-states/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/machine-states/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/machine-states/endpoint.py
index c7dcad9a..c7dcad9a 100644
--- a/opendc/api/v2/experiments/experimentId/machine-states/endpoint.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/machine-states/endpoint.py
diff --git a/opendc/api/v2/experiments/experimentId/rack-states/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/rack-states/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/experimentId/rack-states/__init__.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/rack-states/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/rack-states/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/rack-states/endpoint.py
index f3acf56a..f3acf56a 100644
--- a/opendc/api/v2/experiments/experimentId/rack-states/endpoint.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/rack-states/endpoint.py
diff --git a/opendc/api/v2/experiments/experimentId/room-states/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/room-states/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/experimentId/room-states/__init__.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/room-states/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/room-states/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/room-states/endpoint.py
index db3f8b14..db3f8b14 100644
--- a/opendc/api/v2/experiments/experimentId/room-states/endpoint.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/room-states/endpoint.py
diff --git a/opendc/api/v2/experiments/experimentId/statistics/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/statistics/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/experimentId/statistics/__init__.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/statistics/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/statistics/task-durations/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/statistics/task-durations/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/experimentId/statistics/task-durations/__init__.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/statistics/task-durations/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/statistics/task-durations/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/statistics/task-durations/endpoint.py
index 498db239..498db239 100644
--- a/opendc/api/v2/experiments/experimentId/statistics/task-durations/endpoint.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/statistics/task-durations/endpoint.py
diff --git a/opendc/api/v2/experiments/experimentId/task-states/__init__.py b/web-server/opendc/api/v2/experiments/experimentId/task-states/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/experiments/experimentId/task-states/__init__.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/task-states/__init__.py
diff --git a/opendc/api/v2/experiments/experimentId/task-states/endpoint.py b/web-server/opendc/api/v2/experiments/experimentId/task-states/endpoint.py
index c0ae47fc..c0ae47fc 100644
--- a/opendc/api/v2/experiments/experimentId/task-states/endpoint.py
+++ b/web-server/opendc/api/v2/experiments/experimentId/task-states/endpoint.py
diff --git a/opendc/api/v2/paths.json b/web-server/opendc/api/v2/paths.json
index ce054a8c..ce054a8c 100644
--- a/opendc/api/v2/paths.json
+++ b/web-server/opendc/api/v2/paths.json
diff --git a/opendc/api/v2/schedulers/__init__.py b/web-server/opendc/api/v2/schedulers/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/schedulers/__init__.py
+++ b/web-server/opendc/api/v2/schedulers/__init__.py
diff --git a/opendc/api/v2/schedulers/endpoint.py b/web-server/opendc/api/v2/schedulers/endpoint.py
index 0bbc3322..0bbc3322 100644
--- a/opendc/api/v2/schedulers/endpoint.py
+++ b/web-server/opendc/api/v2/schedulers/endpoint.py
diff --git a/opendc/api/v2/schedulers/test_endpoint.py b/web-server/opendc/api/v2/schedulers/test_endpoint.py
index a0bd8758..a0bd8758 100644
--- a/opendc/api/v2/schedulers/test_endpoint.py
+++ b/web-server/opendc/api/v2/schedulers/test_endpoint.py
diff --git a/opendc/api/v2/simulations/__init__.py b/web-server/opendc/api/v2/simulations/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/simulations/__init__.py
+++ b/web-server/opendc/api/v2/simulations/__init__.py
diff --git a/opendc/api/v2/simulations/endpoint.py b/web-server/opendc/api/v2/simulations/endpoint.py
index 232df2ff..232df2ff 100644
--- a/opendc/api/v2/simulations/endpoint.py
+++ b/web-server/opendc/api/v2/simulations/endpoint.py
diff --git a/opendc/api/v2/simulations/simulationId/__init__.py b/web-server/opendc/api/v2/simulations/simulationId/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/simulations/simulationId/__init__.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/__init__.py
diff --git a/opendc/api/v2/simulations/simulationId/authorizations/__init__.py b/web-server/opendc/api/v2/simulations/simulationId/authorizations/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/simulations/simulationId/authorizations/__init__.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/authorizations/__init__.py
diff --git a/opendc/api/v2/simulations/simulationId/authorizations/endpoint.py b/web-server/opendc/api/v2/simulations/simulationId/authorizations/endpoint.py
index df2b5cfd..df2b5cfd 100644
--- a/opendc/api/v2/simulations/simulationId/authorizations/endpoint.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/authorizations/endpoint.py
diff --git a/opendc/api/v2/simulations/simulationId/authorizations/userId/__init__.py b/web-server/opendc/api/v2/simulations/simulationId/authorizations/userId/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/simulations/simulationId/authorizations/userId/__init__.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/authorizations/userId/__init__.py
diff --git a/opendc/api/v2/simulations/simulationId/authorizations/userId/endpoint.py b/web-server/opendc/api/v2/simulations/simulationId/authorizations/userId/endpoint.py
index 121530db..121530db 100644
--- a/opendc/api/v2/simulations/simulationId/authorizations/userId/endpoint.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/authorizations/userId/endpoint.py
diff --git a/opendc/api/v2/simulations/simulationId/endpoint.py b/web-server/opendc/api/v2/simulations/simulationId/endpoint.py
index 282e3291..282e3291 100644
--- a/opendc/api/v2/simulations/simulationId/endpoint.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/endpoint.py
diff --git a/opendc/api/v2/simulations/simulationId/experiments/__init__.py b/web-server/opendc/api/v2/simulations/simulationId/experiments/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/simulations/simulationId/experiments/__init__.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/experiments/__init__.py
diff --git a/opendc/api/v2/simulations/simulationId/experiments/endpoint.py b/web-server/opendc/api/v2/simulations/simulationId/experiments/endpoint.py
index 9df84838..9df84838 100644
--- a/opendc/api/v2/simulations/simulationId/experiments/endpoint.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/experiments/endpoint.py
diff --git a/opendc/api/v2/simulations/simulationId/test_endpoint.py b/web-server/opendc/api/v2/simulations/simulationId/test_endpoint.py
index a0586aab..a0586aab 100644
--- a/opendc/api/v2/simulations/simulationId/test_endpoint.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/test_endpoint.py
diff --git a/opendc/api/v2/simulations/simulationId/topologies/__init__.py b/web-server/opendc/api/v2/simulations/simulationId/topologies/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/simulations/simulationId/topologies/__init__.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/topologies/__init__.py
diff --git a/opendc/api/v2/simulations/simulationId/topologies/endpoint.py b/web-server/opendc/api/v2/simulations/simulationId/topologies/endpoint.py
index ab7b7006..ab7b7006 100644
--- a/opendc/api/v2/simulations/simulationId/topologies/endpoint.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/topologies/endpoint.py
diff --git a/opendc/api/v2/simulations/simulationId/topologies/test_endpoint.py b/web-server/opendc/api/v2/simulations/simulationId/topologies/test_endpoint.py
index 10b5e3c9..10b5e3c9 100644
--- a/opendc/api/v2/simulations/simulationId/topologies/test_endpoint.py
+++ b/web-server/opendc/api/v2/simulations/simulationId/topologies/test_endpoint.py
diff --git a/opendc/api/v2/simulations/test_endpoint.py b/web-server/opendc/api/v2/simulations/test_endpoint.py
index d23df74a..d23df74a 100644
--- a/opendc/api/v2/simulations/test_endpoint.py
+++ b/web-server/opendc/api/v2/simulations/test_endpoint.py
diff --git a/opendc/api/v2/topologies/__init__.py b/web-server/opendc/api/v2/topologies/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/topologies/__init__.py
+++ b/web-server/opendc/api/v2/topologies/__init__.py
diff --git a/opendc/api/v2/topologies/topologyId/__init__.py b/web-server/opendc/api/v2/topologies/topologyId/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/topologies/topologyId/__init__.py
+++ b/web-server/opendc/api/v2/topologies/topologyId/__init__.py
diff --git a/opendc/api/v2/topologies/topologyId/endpoint.py b/web-server/opendc/api/v2/topologies/topologyId/endpoint.py
index 6c6ab9c2..6c6ab9c2 100644
--- a/opendc/api/v2/topologies/topologyId/endpoint.py
+++ b/web-server/opendc/api/v2/topologies/topologyId/endpoint.py
diff --git a/opendc/api/v2/topologies/topologyId/rooms/__init__.py b/web-server/opendc/api/v2/topologies/topologyId/rooms/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/topologies/topologyId/rooms/__init__.py
+++ b/web-server/opendc/api/v2/topologies/topologyId/rooms/__init__.py
diff --git a/opendc/api/v2/topologies/topologyId/rooms/endpoint.py b/web-server/opendc/api/v2/topologies/topologyId/rooms/endpoint.py
index 96ee7028..96ee7028 100644
--- a/opendc/api/v2/topologies/topologyId/rooms/endpoint.py
+++ b/web-server/opendc/api/v2/topologies/topologyId/rooms/endpoint.py
diff --git a/opendc/api/v2/topologies/topologyId/test_endpoint.py b/web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py
index e54052aa..e54052aa 100644
--- a/opendc/api/v2/topologies/topologyId/test_endpoint.py
+++ b/web-server/opendc/api/v2/topologies/topologyId/test_endpoint.py
diff --git a/opendc/api/v2/traces/__init__.py b/web-server/opendc/api/v2/traces/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/traces/__init__.py
+++ b/web-server/opendc/api/v2/traces/__init__.py
diff --git a/opendc/api/v2/traces/endpoint.py b/web-server/opendc/api/v2/traces/endpoint.py
index 58cc6153..58cc6153 100644
--- a/opendc/api/v2/traces/endpoint.py
+++ b/web-server/opendc/api/v2/traces/endpoint.py
diff --git a/opendc/api/v2/traces/traceId/__init__.py b/web-server/opendc/api/v2/traces/traceId/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/traces/traceId/__init__.py
+++ b/web-server/opendc/api/v2/traces/traceId/__init__.py
diff --git a/opendc/api/v2/traces/traceId/endpoint.py b/web-server/opendc/api/v2/traces/traceId/endpoint.py
index f6442a31..f6442a31 100644
--- a/opendc/api/v2/traces/traceId/endpoint.py
+++ b/web-server/opendc/api/v2/traces/traceId/endpoint.py
diff --git a/opendc/api/v2/users/__init__.py b/web-server/opendc/api/v2/users/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/users/__init__.py
+++ b/web-server/opendc/api/v2/users/__init__.py
diff --git a/opendc/api/v2/users/endpoint.py b/web-server/opendc/api/v2/users/endpoint.py
index c6041756..c6041756 100644
--- a/opendc/api/v2/users/endpoint.py
+++ b/web-server/opendc/api/v2/users/endpoint.py
diff --git a/opendc/api/v2/users/test_endpoint.py b/web-server/opendc/api/v2/users/test_endpoint.py
index d60429b3..d60429b3 100644
--- a/opendc/api/v2/users/test_endpoint.py
+++ b/web-server/opendc/api/v2/users/test_endpoint.py
diff --git a/opendc/api/v2/users/userId/__init__.py b/web-server/opendc/api/v2/users/userId/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/api/v2/users/userId/__init__.py
+++ b/web-server/opendc/api/v2/users/userId/__init__.py
diff --git a/opendc/api/v2/users/userId/endpoint.py b/web-server/opendc/api/v2/users/userId/endpoint.py
index e68a2bb3..e68a2bb3 100644
--- a/opendc/api/v2/users/userId/endpoint.py
+++ b/web-server/opendc/api/v2/users/userId/endpoint.py
diff --git a/opendc/api/v2/users/userId/test_endpoint.py b/web-server/opendc/api/v2/users/userId/test_endpoint.py
index 0d590129..0d590129 100644
--- a/opendc/api/v2/users/userId/test_endpoint.py
+++ b/web-server/opendc/api/v2/users/userId/test_endpoint.py
diff --git a/opendc/models/__init__.py b/web-server/opendc/models/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/models/__init__.py
+++ b/web-server/opendc/models/__init__.py
diff --git a/opendc/models/model.py b/web-server/opendc/models/model.py
index 2505ae61..2505ae61 100644
--- a/opendc/models/model.py
+++ b/web-server/opendc/models/model.py
diff --git a/opendc/models/simulation.py b/web-server/opendc/models/simulation.py
index 5cd3d49e..5cd3d49e 100644
--- a/opendc/models/simulation.py
+++ b/web-server/opendc/models/simulation.py
diff --git a/opendc/models/topology.py b/web-server/opendc/models/topology.py
index 6dde3e2a..6dde3e2a 100644
--- a/opendc/models/topology.py
+++ b/web-server/opendc/models/topology.py
diff --git a/web-server/opendc/models/trace.py b/web-server/opendc/models/trace.py
new file mode 100644
index 00000000..916db073
--- /dev/null
+++ b/web-server/opendc/models/trace.py
@@ -0,0 +1,8 @@
+from opendc.models.model import Model
+from opendc.models.user import User
+from opendc.util.exceptions import ClientError
+from opendc.util.rest import Response
+
+
+class Trace(Model):
+ collection_name = 'traces'
diff --git a/opendc/models/user.py b/web-server/opendc/models/user.py
index cd314457..cd314457 100644
--- a/opendc/models/user.py
+++ b/web-server/opendc/models/user.py
diff --git a/opendc/models_old/__init__.py b/web-server/opendc/models_old/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/models_old/__init__.py
+++ b/web-server/opendc/models_old/__init__.py
diff --git a/opendc/models_old/allowed_object.py b/web-server/opendc/models_old/allowed_object.py
index bcadf025..bcadf025 100644
--- a/opendc/models_old/allowed_object.py
+++ b/web-server/opendc/models_old/allowed_object.py
diff --git a/opendc/models_old/authorization.py b/web-server/opendc/models_old/authorization.py
index 43d784e9..43d784e9 100644
--- a/opendc/models_old/authorization.py
+++ b/web-server/opendc/models_old/authorization.py
diff --git a/opendc/models_old/cpu.py b/web-server/opendc/models_old/cpu.py
index 0f50ce1c..0f50ce1c 100644
--- a/opendc/models_old/cpu.py
+++ b/web-server/opendc/models_old/cpu.py
diff --git a/opendc/models_old/datacenter.py b/web-server/opendc/models_old/datacenter.py
index b1ed2eee..b1ed2eee 100644
--- a/opendc/models_old/datacenter.py
+++ b/web-server/opendc/models_old/datacenter.py
diff --git a/opendc/models_old/experiment.py b/web-server/opendc/models_old/experiment.py
index 64b99212..64b99212 100644
--- a/opendc/models_old/experiment.py
+++ b/web-server/opendc/models_old/experiment.py
diff --git a/opendc/models_old/failure_model.py b/web-server/opendc/models_old/failure_model.py
index d1a8c1cc..d1a8c1cc 100644
--- a/opendc/models_old/failure_model.py
+++ b/web-server/opendc/models_old/failure_model.py
diff --git a/opendc/models_old/gpu.py b/web-server/opendc/models_old/gpu.py
index 31b3b6b1..31b3b6b1 100644
--- a/opendc/models_old/gpu.py
+++ b/web-server/opendc/models_old/gpu.py
diff --git a/opendc/models_old/job.py b/web-server/opendc/models_old/job.py
index 9cb7cd7e..9cb7cd7e 100644
--- a/opendc/models_old/job.py
+++ b/web-server/opendc/models_old/job.py
diff --git a/opendc/models_old/machine.py b/web-server/opendc/models_old/machine.py
index 8e5ccb44..8e5ccb44 100644
--- a/opendc/models_old/machine.py
+++ b/web-server/opendc/models_old/machine.py
diff --git a/opendc/models_old/machine_state.py b/web-server/opendc/models_old/machine_state.py
index 0e9f7dad..0e9f7dad 100644
--- a/opendc/models_old/machine_state.py
+++ b/web-server/opendc/models_old/machine_state.py
diff --git a/opendc/models_old/memory.py b/web-server/opendc/models_old/memory.py
index 8edf8f5d..8edf8f5d 100644
--- a/opendc/models_old/memory.py
+++ b/web-server/opendc/models_old/memory.py
diff --git a/opendc/models_old/model.py b/web-server/opendc/models_old/model.py
index 73eabd26..73eabd26 100644
--- a/opendc/models_old/model.py
+++ b/web-server/opendc/models_old/model.py
diff --git a/opendc/models_old/object.py b/web-server/opendc/models_old/object.py
index 8f2e308b..8f2e308b 100644
--- a/opendc/models_old/object.py
+++ b/web-server/opendc/models_old/object.py
diff --git a/opendc/models_old/path.py b/web-server/opendc/models_old/path.py
index 4d07b2d5..4d07b2d5 100644
--- a/opendc/models_old/path.py
+++ b/web-server/opendc/models_old/path.py
diff --git a/opendc/models_old/queued_experiment.py b/web-server/opendc/models_old/queued_experiment.py
index b474dc31..b474dc31 100644
--- a/opendc/models_old/queued_experiment.py
+++ b/web-server/opendc/models_old/queued_experiment.py
diff --git a/opendc/models_old/rack.py b/web-server/opendc/models_old/rack.py
index dc08eb6a..dc08eb6a 100644
--- a/opendc/models_old/rack.py
+++ b/web-server/opendc/models_old/rack.py
diff --git a/opendc/models_old/rack_state.py b/web-server/opendc/models_old/rack_state.py
index 12e0f931..12e0f931 100644
--- a/opendc/models_old/rack_state.py
+++ b/web-server/opendc/models_old/rack_state.py
diff --git a/opendc/models_old/room.py b/web-server/opendc/models_old/room.py
index e0eb7c2f..e0eb7c2f 100644
--- a/opendc/models_old/room.py
+++ b/web-server/opendc/models_old/room.py
diff --git a/opendc/models_old/room_state.py b/web-server/opendc/models_old/room_state.py
index c6635649..c6635649 100644
--- a/opendc/models_old/room_state.py
+++ b/web-server/opendc/models_old/room_state.py
diff --git a/opendc/models_old/room_type.py b/web-server/opendc/models_old/room_type.py
index 755572f8..755572f8 100644
--- a/opendc/models_old/room_type.py
+++ b/web-server/opendc/models_old/room_type.py
diff --git a/opendc/models_old/scheduler.py b/web-server/opendc/models_old/scheduler.py
index b9939321..b9939321 100644
--- a/opendc/models_old/scheduler.py
+++ b/web-server/opendc/models_old/scheduler.py
diff --git a/opendc/models_old/section.py b/web-server/opendc/models_old/section.py
index 0df4967c..0df4967c 100644
--- a/opendc/models_old/section.py
+++ b/web-server/opendc/models_old/section.py
diff --git a/opendc/models_old/simulation.py b/web-server/opendc/models_old/simulation.py
index 9c1820a3..9c1820a3 100644
--- a/opendc/models_old/simulation.py
+++ b/web-server/opendc/models_old/simulation.py
diff --git a/opendc/models_old/storage.py b/web-server/opendc/models_old/storage.py
index 9f0f9215..9f0f9215 100644
--- a/opendc/models_old/storage.py
+++ b/web-server/opendc/models_old/storage.py
diff --git a/opendc/models_old/task.py b/web-server/opendc/models_old/task.py
index e6f99014..e6f99014 100644
--- a/opendc/models_old/task.py
+++ b/web-server/opendc/models_old/task.py
diff --git a/opendc/models_old/task_duration.py b/web-server/opendc/models_old/task_duration.py
index 5058e8de..5058e8de 100644
--- a/opendc/models_old/task_duration.py
+++ b/web-server/opendc/models_old/task_duration.py
diff --git a/opendc/models_old/task_state.py b/web-server/opendc/models_old/task_state.py
index cc3fdd89..cc3fdd89 100644
--- a/opendc/models_old/task_state.py
+++ b/web-server/opendc/models_old/task_state.py
diff --git a/opendc/models_old/tile.py b/web-server/opendc/models_old/tile.py
index e46b29a6..e46b29a6 100644
--- a/opendc/models_old/tile.py
+++ b/web-server/opendc/models_old/tile.py
diff --git a/opendc/models_old/trace.py b/web-server/opendc/models_old/trace.py
index 58abe058..58abe058 100644
--- a/opendc/models_old/trace.py
+++ b/web-server/opendc/models_old/trace.py
diff --git a/opendc/models_old/user.py b/web-server/opendc/models_old/user.py
index 657d5019..657d5019 100644
--- a/opendc/models_old/user.py
+++ b/web-server/opendc/models_old/user.py
diff --git a/opendc/util/__init__.py b/web-server/opendc/util/__init__.py
index e69de29b..e69de29b 100644
--- a/opendc/util/__init__.py
+++ b/web-server/opendc/util/__init__.py
diff --git a/opendc/util/database.py b/web-server/opendc/util/database.py
index 50bc93a8..50bc93a8 100644
--- a/opendc/util/database.py
+++ b/web-server/opendc/util/database.py
diff --git a/opendc/util/exceptions.py b/web-server/opendc/util/exceptions.py
index 2563c419..2563c419 100644
--- a/opendc/util/exceptions.py
+++ b/web-server/opendc/util/exceptions.py
diff --git a/opendc/util/parameter_checker.py b/web-server/opendc/util/parameter_checker.py
index f55e780e..f55e780e 100644
--- a/opendc/util/parameter_checker.py
+++ b/web-server/opendc/util/parameter_checker.py
diff --git a/opendc/util/path_parser.py b/web-server/opendc/util/path_parser.py
index a8bbdeba..a8bbdeba 100644
--- a/opendc/util/path_parser.py
+++ b/web-server/opendc/util/path_parser.py
diff --git a/opendc/util/rest.py b/web-server/opendc/util/rest.py
index dc5478de..dc5478de 100644
--- a/opendc/util/rest.py
+++ b/web-server/opendc/util/rest.py
diff --git a/pytest.ini b/web-server/pytest.ini
index 775a8ff4..775a8ff4 100644
--- a/pytest.ini
+++ b/web-server/pytest.ini
diff --git a/requirements.txt b/web-server/requirements.txt
index b95d3145..b95d3145 100644
--- a/requirements.txt
+++ b/web-server/requirements.txt
diff --git a/static/index.html b/web-server/static/index.html
index ac78cbfb..ac78cbfb 100644
--- a/static/index.html
+++ b/web-server/static/index.html