summaryrefslogtreecommitdiff
path: root/api
diff options
context:
space:
mode:
Diffstat (limited to 'api')
-rw-r--r--api/opendc/api/v2/portfolios/portfolioId/scenarios/endpoint.py6
-rw-r--r--api/opendc/api/v2/schedulers/endpoint.py12
2 files changed, 17 insertions, 1 deletions
diff --git a/api/opendc/api/v2/portfolios/portfolioId/scenarios/endpoint.py b/api/opendc/api/v2/portfolios/portfolioId/scenarios/endpoint.py
index fc2cab16..2f042e06 100644
--- a/api/opendc/api/v2/portfolios/portfolioId/scenarios/endpoint.py
+++ b/api/opendc/api/v2/portfolios/portfolioId/scenarios/endpoint.py
@@ -1,5 +1,6 @@
from opendc.models.portfolio import Portfolio
from opendc.models.scenario import Scenario
+from opendc.models.topology import Topology
from opendc.util.rest import Response
@@ -32,8 +33,13 @@ def POST(request):
scenario = Scenario(request.params_body['scenario'])
+ topology = Topology.from_id(scenario.obj['topology']['topologyId'])
+ topology.check_exists()
+ topology.check_user_access(request.google_id, True)
+
scenario.set_property('portfolioId', portfolio.get_id())
scenario.set_property('simulation', {'state': 'QUEUED'})
+ scenario.set_property('topology.topologyId', topology.get_id())
scenario.insert()
diff --git a/api/opendc/api/v2/schedulers/endpoint.py b/api/opendc/api/v2/schedulers/endpoint.py
index 127b5f1a..f33159bf 100644
--- a/api/opendc/api/v2/schedulers/endpoint.py
+++ b/api/opendc/api/v2/schedulers/endpoint.py
@@ -1,6 +1,16 @@
from opendc.util.rest import Response
-SCHEDULERS = ['core-mem']
+SCHEDULERS = [
+ 'mem',
+ 'mem-inv',
+ 'core-mem',
+ 'core-mem-inv',
+ 'active-servers',
+ 'active-servers-inv',
+ 'provisioned-cores',
+ 'provisioned-cores-inv',
+ 'random'
+]
def GET(_):