diff --git a/src/context/service/database/Device.py b/src/context/service/database/Device.py index cde8751b417072f3f0de53217dab99308ea882f3..9138da7c40809c2214a1c24f43843ab7e1333e95 100644 --- a/src/context/service/database/Device.py +++ b/src/context/service/database/Device.py @@ -19,9 +19,10 @@ from sqlalchemy.orm import Session, sessionmaker from sqlalchemy_cockroachdb import run_transaction from typing import Dict, List, Optional, Set, Tuple from common.method_wrappers.ServiceExceptions import InvalidArgumentException, NotFoundException -from common.proto.context_pb2 import Device, DeviceId +from common.proto.context_pb2 import Device, DeviceId, TopologyId from common.tools.grpc.Tools import grpc_message_to_json_string from common.tools.object_factory.Device import json_device_id +from context.service.database.uuids.Topology import topology_get_uuid from .models.DeviceModel import DeviceModel from .models.EndPointModel import EndPointModel from .models.TopologyModel import TopologyDeviceModel @@ -73,6 +74,15 @@ def device_set(db_engine : Engine, request : Device) -> Tuple[Dict, bool]: topology_uuids : Set[str] = set() related_topologies : List[Dict] = list() + + # By default, always add device to default Context/Topology + _,topology_uuid = topology_get_uuid(TopologyId(), allow_random=False, allow_default=True) + related_topologies.append({ + 'topology_uuid': topology_uuid, + 'device_uuid' : device_uuid, + }) + topology_uuids.add(topology_uuid) + endpoints_data : List[Dict] = list() for i, endpoint in enumerate(request.device_endpoints): endpoint_device_uuid = endpoint.endpoint_id.device_id.device_uuid.uuid