diff options
| -rw-r--r-- | opendc/api/v1/datacenters/__init__.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/datacenters/datacenterId/__init__.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/datacenters/datacenterId/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/datacenters/datacenterId/rooms/__init__.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/datacenters/datacenterId/rooms/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/endpoint.py) | 2 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/__init__.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/__init__.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/endpoint.py) | 3 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/last-simulated-tick/__init__.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/last-simulated-tick/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/last-simulated-tick/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/machine-states/__init__.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/machine-states/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/machine-states/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/rack-states/__init__.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/position/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/rack-states/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/rack-states/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/room-states/__init__.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/room-states/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/room-states/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/statistics/__init__.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/last-simulated-tick/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/statistics/task-durations/__init__.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/machine-states/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/statistics/task-durations/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/task-durations/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/task-states/__init__.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/rack-states/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/experiments/experimentId/task-states/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/task-states/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/jobs/__init__.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/room-states/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/jobs/jobId/__init__.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/jobs/jobId/endpoint.py | 33 | ||||
| -rw-r--r-- | opendc/api/v1/jobs/jobId/tasks/__init__.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/task-durations/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/jobs/jobId/tasks/endpoint.py | 36 | ||||
| -rw-r--r-- | opendc/api/v1/paths.json | 97 | ||||
| -rw-r--r-- | opendc/api/v1/paths/__init__.py (renamed from opendc/api/v1/simulations/simulationId/experiments/experimentId/task-states/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/paths/pathId/__init__.py (renamed from opendc/api/v1/simulations/simulationId/paths/pathId/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/paths/pathId/branches/__init__.py (renamed from opendc/api/v1/simulations/simulationId/paths/pathId/branches/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/paths/pathId/branches/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/paths/pathId/branches/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/paths/pathId/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/paths/pathId/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/paths/pathId/sections/__init__.py (renamed from opendc/api/v1/simulations/simulationId/paths/pathId/sections/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/paths/pathId/sections/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/paths/pathId/sections/endpoint.py) | 1 | ||||
| -rw-r--r-- | opendc/api/v1/rooms/__init__.py (renamed from opendc/api/v1/simulations/simulationId/paths/pathId/sections/sectionId/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/rooms/roomId/__init__.py (renamed from opendc/api/v1/traces/traceId/tasks/__init__.py) | 0 | ||||
| -rw-r--r-- | opendc/api/v1/rooms/roomId/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/endpoint.py) | 6 | ||||
| -rw-r--r-- | opendc/api/v1/rooms/roomId/tiles/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/rooms/roomId/tiles/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/endpoint.py) | 4 | ||||
| -rw-r--r-- | opendc/api/v1/sections/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/sections/sectionId/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/sections/sectionId/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/paths/pathId/sections/sectionId/endpoint.py) | 2 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/tileId/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/tileId/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/endpoint.py) | 6 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/tileId/rack/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/tileId/rack/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/endpoint.py) | 12 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/tileId/rack/machines/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/tileId/rack/machines/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/endpoint.py) | 6 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/tileId/rack/machines/position/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/tiles/tileId/rack/machines/position/endpoint.py (renamed from opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/position/endpoint.py) | 9 | ||||
| -rw-r--r-- | opendc/api/v1/traces/endpoint.py | 2 | ||||
| -rw-r--r-- | opendc/api/v1/traces/traceId/jobs/__init__.py | 0 | ||||
| -rw-r--r-- | opendc/api/v1/traces/traceId/jobs/endpoint.py (renamed from opendc/api/v1/traces/traceId/tasks/endpoint.py) | 12 | ||||
| -rw-r--r-- | opendc/models/job.py | 19 | ||||
| -rw-r--r-- | opendc/models/machine.py | 2 | ||||
| -rw-r--r-- | opendc/models/rack.py | 2 | ||||
| -rw-r--r-- | opendc/models/room.py | 2 | ||||
| -rw-r--r-- | opendc/models/task.py | 4 | ||||
| -rw-r--r-- | opendc/models/tile.py | 2 |
60 files changed, 152 insertions, 119 deletions
diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/__init__.py b/opendc/api/v1/datacenters/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/__init__.py +++ b/opendc/api/v1/datacenters/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/__init__.py b/opendc/api/v1/datacenters/datacenterId/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/__init__.py +++ b/opendc/api/v1/datacenters/datacenterId/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/endpoint.py b/opendc/api/v1/datacenters/datacenterId/endpoint.py index c9c78a8a..75d0a9cf 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/endpoint.py +++ b/opendc/api/v1/datacenters/datacenterId/endpoint.py @@ -10,7 +10,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'datacenterId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/__init__.py b/opendc/api/v1/datacenters/datacenterId/rooms/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/__init__.py +++ b/opendc/api/v1/datacenters/datacenterId/rooms/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/endpoint.py b/opendc/api/v1/datacenters/datacenterId/rooms/endpoint.py index 1127ce95..31545a1e 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/endpoint.py +++ b/opendc/api/v1/datacenters/datacenterId/rooms/endpoint.py @@ -11,7 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'datacenterId': 'int' } ) @@ -50,7 +49,6 @@ def POST(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'datacenterId': 'int' }, body = { diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/__init__.py b/opendc/api/v1/experiments/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/__init__.py +++ b/opendc/api/v1/experiments/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/__init__.py b/opendc/api/v1/experiments/experimentId/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/__init__.py +++ b/opendc/api/v1/experiments/experimentId/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/endpoint.py b/opendc/api/v1/experiments/experimentId/endpoint.py index 7af62b92..3bdd30d2 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/endpoint.py +++ b/opendc/api/v1/experiments/experimentId/endpoint.py @@ -8,7 +8,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' } ) @@ -48,7 +47,6 @@ def PUT(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' }, body = { @@ -107,7 +105,6 @@ def DELETE(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/__init__.py b/opendc/api/v1/experiments/experimentId/last-simulated-tick/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/__init__.py +++ b/opendc/api/v1/experiments/experimentId/last-simulated-tick/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/last-simulated-tick/endpoint.py b/opendc/api/v1/experiments/experimentId/last-simulated-tick/endpoint.py index d39fafe4..24eb8932 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/last-simulated-tick/endpoint.py +++ b/opendc/api/v1/experiments/experimentId/last-simulated-tick/endpoint.py @@ -10,7 +10,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/__init__.py b/opendc/api/v1/experiments/experimentId/machine-states/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/__init__.py +++ b/opendc/api/v1/experiments/experimentId/machine-states/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/machine-states/endpoint.py b/opendc/api/v1/experiments/experimentId/machine-states/endpoint.py index c5ba0abe..97113e4a 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/machine-states/endpoint.py +++ b/opendc/api/v1/experiments/experimentId/machine-states/endpoint.py @@ -11,7 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/position/__init__.py b/opendc/api/v1/experiments/experimentId/rack-states/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/position/__init__.py +++ b/opendc/api/v1/experiments/experimentId/rack-states/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/rack-states/endpoint.py b/opendc/api/v1/experiments/experimentId/rack-states/endpoint.py index 6e71c496..daed45c5 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/rack-states/endpoint.py +++ b/opendc/api/v1/experiments/experimentId/rack-states/endpoint.py @@ -11,7 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/__init__.py b/opendc/api/v1/experiments/experimentId/room-states/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/__init__.py +++ b/opendc/api/v1/experiments/experimentId/room-states/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/room-states/endpoint.py b/opendc/api/v1/experiments/experimentId/room-states/endpoint.py index d8c9fb45..9e283d34 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/room-states/endpoint.py +++ b/opendc/api/v1/experiments/experimentId/room-states/endpoint.py @@ -11,7 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/last-simulated-tick/__init__.py b/opendc/api/v1/experiments/experimentId/statistics/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/last-simulated-tick/__init__.py +++ b/opendc/api/v1/experiments/experimentId/statistics/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/machine-states/__init__.py b/opendc/api/v1/experiments/experimentId/statistics/task-durations/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/machine-states/__init__.py +++ b/opendc/api/v1/experiments/experimentId/statistics/task-durations/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/task-durations/endpoint.py b/opendc/api/v1/experiments/experimentId/statistics/task-durations/endpoint.py index 1bb60ca2..ad73daa7 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/task-durations/endpoint.py +++ b/opendc/api/v1/experiments/experimentId/statistics/task-durations/endpoint.py @@ -11,7 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/rack-states/__init__.py b/opendc/api/v1/experiments/experimentId/task-states/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/rack-states/__init__.py +++ b/opendc/api/v1/experiments/experimentId/task-states/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/task-states/endpoint.py b/opendc/api/v1/experiments/experimentId/task-states/endpoint.py index b11512c0..805d86fb 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/task-states/endpoint.py +++ b/opendc/api/v1/experiments/experimentId/task-states/endpoint.py @@ -11,7 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'experimentId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/room-states/__init__.py b/opendc/api/v1/jobs/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/room-states/__init__.py +++ b/opendc/api/v1/jobs/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/__init__.py b/opendc/api/v1/jobs/jobId/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/__init__.py +++ b/opendc/api/v1/jobs/jobId/__init__.py diff --git a/opendc/api/v1/jobs/jobId/endpoint.py b/opendc/api/v1/jobs/jobId/endpoint.py new file mode 100644 index 00000000..84b8f3c4 --- /dev/null +++ b/opendc/api/v1/jobs/jobId/endpoint.py @@ -0,0 +1,33 @@ +from opendc.models.job import Job +from opendc.util import exceptions +from opendc.util.rest import Response + +def GET(request): + """Get this Job.""" + + # Make sure required parameters are there + + try: + request.check_required_parameters( + path = { + 'jobId': 'int' + } + ) + + except exceptions.ParameterError as e: + return Response(400, e.message) + + # Instantiate a Job and make sure it exists + + job = Job.from_primary_key((request.params_path['jobId'],)) + + if not job.exists(): + return Response(404, '{} not found.'.format(job)) + + # Return this Job + + return Response( + 200, + 'Successfully retrieved {}.'.format(job), + job.to_JSON() + ) diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/task-durations/__init__.py b/opendc/api/v1/jobs/jobId/tasks/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/statistics/task-durations/__init__.py +++ b/opendc/api/v1/jobs/jobId/tasks/__init__.py diff --git a/opendc/api/v1/jobs/jobId/tasks/endpoint.py b/opendc/api/v1/jobs/jobId/tasks/endpoint.py new file mode 100644 index 00000000..9b6a1cab --- /dev/null +++ b/opendc/api/v1/jobs/jobId/tasks/endpoint.py @@ -0,0 +1,36 @@ +from opendc.models.job import Job +from opendc.models.task import Task +from opendc.util import database, exceptions +from opendc.util.rest import Response + +def GET(request): + """Get this Job's Tasks.""" + + # Make sure required parameters are there + + try: + request.check_required_parameters( + path = { + 'jobId': 'int' + } + ) + + except exceptions.ParameterError as e: + return Response(400, e.message) + + # Instantiate a Job and make sure it exists + + job = Job.from_primary_key((request.params_path['jobId'],)) + + if not job.exists(): + return Response(404, '{} not found.'.format(job)) + + # Get and return the Tasks + + tasks = Task.query('job_id', request.params_path['jobId']) + + return Response( + 200, + 'Successfully retrieved Tasks for {}.'.format(job), + [x.to_JSON() for x in tasks] + ) diff --git a/opendc/api/v1/paths.json b/opendc/api/v1/paths.json index 08908c25..79133968 100644 --- a/opendc/api/v1/paths.json +++ b/opendc/api/v1/paths.json @@ -1,48 +1,53 @@ [ - "room-types", - "room-types/{name}", - "room-types/{name}/allowed-objects", - "schedulers", - "simulations", - "simulations/{simulationId}", - "simulations/{simulationId}/authorizations", - "simulations/{simulationId}/authorizations/{userId}", - "simulations/{simulationId}/datacenters", - "simulations/{simulationId}/datacenters/{datacenterId}", - "simulations/{simulationId}/datacenters/{datacenterId}/rooms", - "simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}", - "simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}/tiles", - "simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}/tiles/{tileId}", - "simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}/tiles/{tileId}/rack", - "simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}/tiles/{tileId}/rack/machines", - "simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}/tiles/{tileId}/rack/machines/{position}", - "simulations/{simulationId}/experiments/", - "simulations/{simulationId}/experiments/{experimentId}", - "simulations/{simulationId}/experiments/{experimentId}/last-simulated-tick", - "simulations/{simulationId}/experiments/{experimentId}/machine-states", - "simulations/{simulationId}/experiments/{experimentId}/rack-states", - "simulations/{simulationId}/experiments/{experimentId}/room-states", - "simulations/{simulationId}/experiments/{experimentId}/statistics/task-durations", - "simulations/{simulationId}/experiments/{experimentId}/task-states", - "simulations/{simulationId}/paths/", - "simulations/{simulationId}/paths/{pathId}", - "simulations/{simulationId}/paths/{pathId}/branches", - "simulations/{simulationId}/paths/{pathId}/sections", - "simulations/{simulationId}/paths/{pathId}/sections/{sectionId}", - "specifications/cpus", - "specifications/cpus/{id}", - "specifications/failure-models", - "specifications/failure-models/{id}", - "specifications/gpus", - "specifications/gpus/{id}", - "specifications/memories", - "specifications/memories/{id}", - "specifications/storages", - "specifications/storages/{id}", - "specifications/traces", - "specifications/traces/{traceId}", - "specifications/traces/{traceId}/tasks", - "users", - "users/{userId}", - "users/{userId}/authorizations" + "/users", + "/users/{userId}", + "/users/{userId}/authorizations", + "/simulations", + "/simulations/{simulationId}", + "/simulations/{simulationId}/authorizations", + "/simulations/{simulationId}/authorizations/{userId}", + "/datacenters/{datacenterId}", + "/datacenters/{datacenterId}/rooms", + "/rooms/{roomId}", + "/rooms/{roomId}/tiles", + "/tiles/{tileId}", + "/tiles/{tileId}/cooling-item", + "/tiles/{tileId}/psu", + "/tiles/{tileId}/rack", + "/tiles/{tileId}/rack/machines", + "/tiles/{tileId}/rack/machines/{position}", + "/simulations/{simulationId}/experiments", + "/experiments/{experimentId}", + "/experiments/{experimentId}/last-simulated-tick", + "/experiments/{experimentId}/machine-states", + "/experiments/{experimentId}/rack-states", + "/experiments/{experimentId}/room-states", + "/experiments/{experimentId}/task-states", + "/simulations/{simulationId}/paths", + "/paths/{pathId}", + "/paths/{pathId}/branches", + "/paths/{pathId}/sections", + "/sections/{sectionId}", + "/schedulers", + "/traces", + "/traces/{traceId}", + "/traces/{traceId}/jobs", + "/jobs/{jobId}", + "/jobs/{jobId}/tasks", + "/room-types", + "/room-types/{name}/allowed-objects", + "/specifications/cooling-items", + "/specifications/cooling-items/{id}", + "/specifications/cpus", + "/specifications/cpus/{id}", + "/specifications/failure-models", + "/specifications/failure-models/{id}", + "/specifications/gpus", + "/specifications/gpus/{id}", + "/specifications/memories", + "/specifications/memories/{id}", + "/specifications/psus", + "/specifications/psus/{id}", + "/specifications/storages", + "/specifications/storages/{id}" ]
\ No newline at end of file diff --git a/opendc/api/v1/simulations/simulationId/experiments/experimentId/task-states/__init__.py b/opendc/api/v1/paths/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/experiments/experimentId/task-states/__init__.py +++ b/opendc/api/v1/paths/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/paths/pathId/__init__.py b/opendc/api/v1/paths/pathId/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/paths/pathId/__init__.py +++ b/opendc/api/v1/paths/pathId/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/paths/pathId/branches/__init__.py b/opendc/api/v1/paths/pathId/branches/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/paths/pathId/branches/__init__.py +++ b/opendc/api/v1/paths/pathId/branches/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/paths/pathId/branches/endpoint.py b/opendc/api/v1/paths/pathId/branches/endpoint.py index 2aa34238..2ac4236a 100644 --- a/opendc/api/v1/simulations/simulationId/paths/pathId/branches/endpoint.py +++ b/opendc/api/v1/paths/pathId/branches/endpoint.py @@ -19,7 +19,6 @@ def POST(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'pathId': 'int' }, body = { diff --git a/opendc/api/v1/simulations/simulationId/paths/pathId/endpoint.py b/opendc/api/v1/paths/pathId/endpoint.py index 71d97a67..470063d2 100644 --- a/opendc/api/v1/simulations/simulationId/paths/pathId/endpoint.py +++ b/opendc/api/v1/paths/pathId/endpoint.py @@ -11,7 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'pathId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/paths/pathId/sections/__init__.py b/opendc/api/v1/paths/pathId/sections/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/paths/pathId/sections/__init__.py +++ b/opendc/api/v1/paths/pathId/sections/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/paths/pathId/sections/endpoint.py b/opendc/api/v1/paths/pathId/sections/endpoint.py index 775de346..5b08863b 100644 --- a/opendc/api/v1/simulations/simulationId/paths/pathId/sections/endpoint.py +++ b/opendc/api/v1/paths/pathId/sections/endpoint.py @@ -11,7 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', 'pathId': 'int' } ) diff --git a/opendc/api/v1/simulations/simulationId/paths/pathId/sections/sectionId/__init__.py b/opendc/api/v1/rooms/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/simulations/simulationId/paths/pathId/sections/sectionId/__init__.py +++ b/opendc/api/v1/rooms/__init__.py diff --git a/opendc/api/v1/traces/traceId/tasks/__init__.py b/opendc/api/v1/rooms/roomId/__init__.py index e69de29b..e69de29b 100644 --- a/opendc/api/v1/traces/traceId/tasks/__init__.py +++ b/opendc/api/v1/rooms/roomId/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/endpoint.py b/opendc/api/v1/rooms/roomId/endpoint.py index 44ed82d6..6d7ab261 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/endpoint.py +++ b/opendc/api/v1/rooms/roomId/endpoint.py @@ -10,8 +10,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', 'roomId': 'int' } ) @@ -51,8 +49,6 @@ def PUT(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', 'roomId': 'int' }, body = { @@ -106,8 +102,6 @@ def DELETE(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', 'roomId': 'int' } ) diff --git a/opendc/api/v1/rooms/roomId/tiles/__init__.py b/opendc/api/v1/rooms/roomId/tiles/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/rooms/roomId/tiles/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/endpoint.py b/opendc/api/v1/rooms/roomId/tiles/endpoint.py index f615a6d4..9d17c644 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/endpoint.py +++ b/opendc/api/v1/rooms/roomId/tiles/endpoint.py @@ -11,8 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', 'roomId': 'int' } ) @@ -55,8 +53,6 @@ def POST(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', 'roomId': 'int' }, body = { diff --git a/opendc/api/v1/sections/__init__.py b/opendc/api/v1/sections/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/sections/__init__.py diff --git a/opendc/api/v1/sections/sectionId/__init__.py b/opendc/api/v1/sections/sectionId/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/sections/sectionId/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/paths/pathId/sections/sectionId/endpoint.py b/opendc/api/v1/sections/sectionId/endpoint.py index 9cd397d0..48e724bd 100644 --- a/opendc/api/v1/simulations/simulationId/paths/pathId/sections/sectionId/endpoint.py +++ b/opendc/api/v1/sections/sectionId/endpoint.py @@ -10,8 +10,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'pathId': 'int', 'sectionId': 'int' } ) diff --git a/opendc/api/v1/tiles/__init__.py b/opendc/api/v1/tiles/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/tiles/__init__.py diff --git a/opendc/api/v1/tiles/tileId/__init__.py b/opendc/api/v1/tiles/tileId/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/tiles/tileId/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/endpoint.py b/opendc/api/v1/tiles/tileId/endpoint.py index b15a10f7..deb76195 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/endpoint.py +++ b/opendc/api/v1/tiles/tileId/endpoint.py @@ -10,9 +10,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int' } ) @@ -52,9 +49,6 @@ def DELETE(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int' } ) diff --git a/opendc/api/v1/tiles/tileId/rack/__init__.py b/opendc/api/v1/tiles/tileId/rack/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/tiles/tileId/rack/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/endpoint.py b/opendc/api/v1/tiles/tileId/rack/endpoint.py index d9fb1959..59338e9a 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/endpoint.py +++ b/opendc/api/v1/tiles/tileId/rack/endpoint.py @@ -11,9 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int' }, ) @@ -62,9 +59,6 @@ def POST(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int' }, body = { @@ -127,9 +121,6 @@ def PUT(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int' }, body = { @@ -192,9 +183,6 @@ def DELETE(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int' }, ) diff --git a/opendc/api/v1/tiles/tileId/rack/machines/__init__.py b/opendc/api/v1/tiles/tileId/rack/machines/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/tiles/tileId/rack/machines/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/endpoint.py b/opendc/api/v1/tiles/tileId/rack/machines/endpoint.py index a67bb1c3..2d160713 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/endpoint.py +++ b/opendc/api/v1/tiles/tileId/rack/machines/endpoint.py @@ -11,9 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int' } ) @@ -56,9 +53,6 @@ def POST(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int' }, body = { diff --git a/opendc/api/v1/tiles/tileId/rack/machines/position/__init__.py b/opendc/api/v1/tiles/tileId/rack/machines/position/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/tiles/tileId/rack/machines/position/__init__.py diff --git a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/position/endpoint.py b/opendc/api/v1/tiles/tileId/rack/machines/position/endpoint.py index e33da5d6..15e6cf96 100644 --- a/opendc/api/v1/simulations/simulationId/datacenters/datacenterId/rooms/roomId/tiles/tileId/rack/machines/position/endpoint.py +++ b/opendc/api/v1/tiles/tileId/rack/machines/position/endpoint.py @@ -11,9 +11,6 @@ def GET(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int', 'position': 'int' } @@ -52,9 +49,6 @@ def PUT(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int', 'position': 'int' }, @@ -132,9 +126,6 @@ def DELETE(request): try: request.check_required_parameters( path = { - 'simulationId': 'int', - 'datacenterId': 'int', - 'roomId': 'int', 'tileId': 'int', 'position': 'int' } diff --git a/opendc/api/v1/traces/endpoint.py b/opendc/api/v1/traces/endpoint.py index d383b335..05d6fd48 100644 --- a/opendc/api/v1/traces/endpoint.py +++ b/opendc/api/v1/traces/endpoint.py @@ -2,7 +2,7 @@ from opendc.models.trace import Trace from opendc.util.rest import Response def GET(request): - """Get all avaialble Traces.""" + """Get all available Traces.""" # Get the Traces diff --git a/opendc/api/v1/traces/traceId/jobs/__init__.py b/opendc/api/v1/traces/traceId/jobs/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/opendc/api/v1/traces/traceId/jobs/__init__.py diff --git a/opendc/api/v1/traces/traceId/tasks/endpoint.py b/opendc/api/v1/traces/traceId/jobs/endpoint.py index 6acf790c..2f271c9e 100644 --- a/opendc/api/v1/traces/traceId/tasks/endpoint.py +++ b/opendc/api/v1/traces/traceId/jobs/endpoint.py @@ -1,10 +1,10 @@ from opendc.models.trace import Trace -from opendc.models.task import Task +from opendc.models.job import Job from opendc.util import database, exceptions from opendc.util.rest import Response def GET(request): - """Get this Trace's Tasks.""" + """Get this Trace's Jobs.""" # Make sure required parameters are there @@ -25,12 +25,12 @@ def GET(request): if not trace.exists(): return Response(404, '{} not found.'.format(trace)) - # Get and return the Tasks + # Get and return the Jobs - tasks = Task.query('trace_id', request.params_path['traceId']) + jobs = Job.query('trace_id', request.params_path['traceId']) return Response( 200, - 'Successfully retrieved Tasks for {}.'.format(trace), - [x.to_JSON() for x in tasks] + 'Successfully retrieved Jobs for {}.'.format(trace), + [x.to_JSON() for x in jobs] ) diff --git a/opendc/models/job.py b/opendc/models/job.py new file mode 100644 index 00000000..fb133a72 --- /dev/null +++ b/opendc/models/job.py @@ -0,0 +1,19 @@ +from opendc.models.model import Model + +class Job(Model): + + JSON_TO_PYTHON_DICT = { + 'Job': { + 'id': 'id', + 'name': 'name' + } + } + + TABLE_NAME = 'jobs' + COLUMNS = ['id', 'name'] + COLUMNS_PRIMARY_KEY = ['id'] + + def google_id_has_at_least(self, google_id, authorization_level): + """Return True if the user has at least the given auth level over this Job.""" + + return authorization_level not in ['EDIT', 'OWN'] diff --git a/opendc/models/machine.py b/opendc/models/machine.py index a2b7f57d..90945ef1 100644 --- a/opendc/models/machine.py +++ b/opendc/models/machine.py @@ -19,7 +19,7 @@ class Machine(Model): } } - PATH = '/v1/simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}/tiles/{tileId}/rack/machines' + PATH = '/v1/tiles/{tileId}/rack/machines' TABLE_NAME = 'machines' COLUMNS = ['id', 'rack_id', 'position'] diff --git a/opendc/models/rack.py b/opendc/models/rack.py index a9aeeff9..b547afa1 100644 --- a/opendc/models/rack.py +++ b/opendc/models/rack.py @@ -14,7 +14,7 @@ class Rack(Model): } } - PATH = '/v1/simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}/tiles/{tileId}/rack' + PATH = '/v1/tiles/{tileId}/rack' TABLE_NAME = 'racks' COLUMNS = ['id', 'name', 'capacity', 'power_capacity_w'] diff --git a/opendc/models/room.py b/opendc/models/room.py index b8be88f9..76f9f7b3 100644 --- a/opendc/models/room.py +++ b/opendc/models/room.py @@ -13,7 +13,7 @@ class Room(Model): } } - PATH = '/v1/simulations/{simulationId}/datacenters/{datacenterId}/rooms' + PATH = '/v1/datacenters/{datacenterId}/rooms' TABLE_NAME = 'rooms' COLUMNS = ['id', 'name', 'datacenter_id', 'type'] diff --git a/opendc/models/task.py b/opendc/models/task.py index aa9838a5..da0f5785 100644 --- a/opendc/models/task.py +++ b/opendc/models/task.py @@ -7,14 +7,14 @@ class Task(Model): 'id': 'id', 'startTick': 'start_tick', 'totalFlopCount': 'total_flop_count', - 'traceId': 'trace_id', + 'jobId': 'job_id', 'taskDependencyId': 'task_dependency_id', 'parallelizability': 'parallelizability' } } TABLE_NAME = 'tasks' - COLUMNS = ['id', 'start_tick', 'total_flop_count', 'trace_id', 'task_dependency_id', 'parallelizability'] + COLUMNS = ['id', 'start_tick', 'total_flop_count', 'job_id', 'task_dependency_id', 'parallelizability'] COLUMNS_PRIMARY_KEY = ['id'] def google_id_has_at_least(self, google_id, authorization_level): diff --git a/opendc/models/tile.py b/opendc/models/tile.py index 95445419..748c76c5 100644 --- a/opendc/models/tile.py +++ b/opendc/models/tile.py @@ -16,7 +16,7 @@ class Tile(Model): } } - PATH = '/v1/simulations/{simulationId}/datacenters/{datacenterId}/rooms/{roomId}/tiles' + PATH = '/v1/rooms/{roomId}/tiles' TABLE_NAME = 'tiles' COLUMNS = ['id', 'position_x', 'position_y', 'room_id', 'object_id'] |
