diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-07-02 14:26:23 +0200 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2021-07-02 18:07:42 +0200 |
| commit | 45b73e4683cce35de79117c5b4a6919556d9644f (patch) | |
| tree | fdbb282b639d03e0cc940c8587d5fe90c2283aa5 /opendc-web/opendc-web-api/opendc/models/scenario.py | |
| parent | e2ec16a1a40f3ffc437378b4e22fda64f86fe284 (diff) | |
api: Add stricter validation of input/output data
This change adds stricter validation of data that enters and leaves the
database. As a result, we clearly separate the database model from the
data model that the REST API exports.
Diffstat (limited to 'opendc-web/opendc-web-api/opendc/models/scenario.py')
| -rw-r--r-- | opendc-web/opendc-web-api/opendc/models/scenario.py | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/opendc-web/opendc-web-api/opendc/models/scenario.py b/opendc-web/opendc-web-api/opendc/models/scenario.py index 2911b1ae..658d790e 100644 --- a/opendc-web/opendc-web-api/opendc/models/scenario.py +++ b/opendc-web/opendc-web-api/opendc/models/scenario.py @@ -34,17 +34,39 @@ class OperationalSchema(Schema): schedulerName = fields.String() +class ResultSchema(Schema): + """ + Schema representing the simulation results. + """ + max_num_deployed_images = fields.List(fields.Number()) + max_cpu_demand = fields.List(fields.Number()) + max_cpu_usage = fields.List(fields.Number()) + mean_num_deployed_images = fields.List(fields.Number()) + total_failure_slices = fields.List(fields.Number()) + total_failure_vm_slices = fields.List(fields.Number()) + total_granted_burst = fields.List(fields.Number()) + total_interfered_burst = fields.List(fields.Number()) + total_overcommitted_burst = fields.List(fields.Number()) + total_power_draw = fields.List(fields.Number()) + total_requested_burst = fields.List(fields.Number()) + total_vms_failed = fields.List(fields.Number()) + total_vms_finished = fields.List(fields.Number()) + total_vms_queued = fields.List(fields.Number()) + total_vms_submitted = fields.List(fields.Number()) + + class ScenarioSchema(Schema): """ Schema representing a scenario. """ - _id = fields.String() + _id = fields.String(dump_only=True) portfolioId = fields.String() name = fields.String(required=True) simulation = fields.Nested(SimulationSchema) trace = fields.Nested(TraceSchema) topology = fields.Nested(TopologySchema) operational = fields.Nested(OperationalSchema) + results = fields.Nested(ResultSchema, dump_only=True) class Scenario(Model): |
