diff options
Diffstat (limited to 'opendc-web/opendc-web-api/opendc/models/topology.py')
| -rw-r--r-- | opendc-web/opendc-web-api/opendc/models/topology.py | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/opendc-web/opendc-web-api/opendc/models/topology.py b/opendc-web/opendc-web-api/opendc/models/topology.py index 71d2cade..592f82c5 100644 --- a/opendc-web/opendc-web-api/opendc/models/topology.py +++ b/opendc-web/opendc-web-api/opendc/models/topology.py @@ -1,5 +1,7 @@ +from bson import ObjectId from marshmallow import Schema, fields +from opendc.exts import db from opendc.models.project import Project from opendc.models.model import Model @@ -73,7 +75,7 @@ class TopologySchema(Schema): Schema representing a datacenter topology. """ _id = fields.String(dump_only=True) - projectId = fields.String(dump_only=True) + projectId = fields.String() name = fields.String(required=True) rooms = fields.List(fields.Nested(RoomSchema), required=True) @@ -93,3 +95,8 @@ class Topology(Model): """ project = Project.from_id(self.obj['projectId']) project.check_user_access(user_id, edit_access) + + @classmethod + def get_for_project(cls, project_id): + """Get all topologies for the specified project id.""" + return db.fetch_all({'projectId': ObjectId(project_id)}, cls.collection_name) |
