Commit 3b56986e authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Context component:

- Enhanced notifications of Topology sub-module
parent 84853876
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -29,7 +29,7 @@ from .models.LinkModel import LinkModel
from .models.TopologyModel import TopologyDeviceModel, TopologyLinkModel, TopologyModel
from .uuids.Context import context_get_uuid
from .uuids.Topology import topology_get_uuid
from .Events import notify_event_topology
from .Events import notify_event_context, notify_event_topology

LOGGER = logging.getLogger(__name__)

@@ -127,9 +127,11 @@ def topology_set(db_engine : Engine, messagebroker : MessageBroker, request : To
        return updated_at > created_at
    
    updated = run_transaction(sessionmaker(bind=db_engine), callback)
    topology_id = json_topology_id(topology_uuid, context_id=json_context_id(context_uuid))
    context_id = json_context_id(context_uuid)
    topology_id = json_topology_id(topology_uuid, context_id=context_id)
    event_type = EventTypeEnum.EVENTTYPE_UPDATE if updated else EventTypeEnum.EVENTTYPE_CREATE
    notify_event_topology(messagebroker, event_type, topology_id)
    notify_event_context(messagebroker, EventTypeEnum.EVENTTYPE_UPDATE, context_id)
    return TopologyId(**topology_id)

def topology_delete(db_engine : Engine, messagebroker : MessageBroker, request : TopologyId) -> Empty:
@@ -138,7 +140,9 @@ def topology_delete(db_engine : Engine, messagebroker : MessageBroker, request :
        num_deleted = session.query(TopologyModel).filter_by(topology_uuid=topology_uuid).delete()
        return num_deleted > 0
    deleted = run_transaction(sessionmaker(bind=db_engine), callback)
    topology_id = json_topology_id(topology_uuid, context_id=json_context_id(context_uuid))
    context_id = json_context_id(context_uuid)
    topology_id = json_topology_id(topology_uuid, context_id=context_id)
    if deleted:
        notify_event_topology(messagebroker, EventTypeEnum.EVENTTYPE_REMOVE, topology_id)
        notify_event_context(messagebroker, EventTypeEnum.EVENTTYPE_UPDATE, context_id)
    return Empty()