Skip to content
Snippets Groups Projects
EndPointModel.py 1.19 KiB
Newer Older
  • Learn to ignore specific revisions
  • Lluis Gifre Renom's avatar
    Lluis Gifre Renom committed
    import logging
    from typing import Dict
    from common.orm.fields.ForeignKeyField import ForeignKeyField
    from common.orm.fields.PrimaryKeyField import PrimaryKeyField
    from common.orm.fields.StringField import StringField
    from common.orm.model.Model import Model
    from context.service.database.DeviceModel import DeviceModel
    from context.service.database.TopologyModel import TopologyModel
    
    LOGGER = logging.getLogger(__name__)
    
    class EndPointModel(Model):
        pk = PrimaryKeyField()
        topology_fk = ForeignKeyField(TopologyModel, required=False)
        device_fk = ForeignKeyField(DeviceModel)
        endpoint_uuid = StringField(required=True, allow_empty=False)
        endpoint_type = StringField()
    
        def dump_id(self) -> Dict:
            device_id = DeviceModel(self.database, self.device_fk).dump_id()
            result = {
                'device_id': device_id,
                'endpoint_uuid': {'uuid': self.endpoint_uuid},
            }
            if self.topology_fk is not None:
                result['topology_id'] = TopologyModel(self.database, self.topology_fk).dump_id()
            return result
    
        def dump(self) -> Dict:
            return {
                'endpoint_id': self.dump_id(),
                'endpoint_type': self.endpoint_type,
            }