added some data for node events to have a source field to help distinguish what originates from the gui or not
This commit is contained in:
parent
354d227cb3
commit
d1db5e4b4e
7 changed files with 32 additions and 20 deletions
|
@ -428,7 +428,7 @@ class CoreGrpcClient:
|
|||
request = core_pb2.GetNodeRequest(session_id=session_id, node_id=node_id)
|
||||
return self.stub.GetNode(request)
|
||||
|
||||
def edit_node(self, session_id, node_id, position, icon=None):
|
||||
def edit_node(self, session_id, node_id, position, icon=None, source=None):
|
||||
"""
|
||||
Edit a node, currently only changes position.
|
||||
|
||||
|
@ -436,12 +436,17 @@ class CoreGrpcClient:
|
|||
:param int node_id: node id
|
||||
:param core_pb2.Position position: position to set node to
|
||||
:param str icon: path to icon for gui to use for node
|
||||
:param str source: application source editing node
|
||||
:return: response with result of success or failure
|
||||
:rtype: core_pb2.EditNodeResponse
|
||||
:raises grpc.RpcError: when session or node doesn't exist
|
||||
"""
|
||||
request = core_pb2.EditNodeRequest(
|
||||
session_id=session_id, node_id=node_id, position=position, icon=icon
|
||||
session_id=session_id,
|
||||
node_id=node_id,
|
||||
position=position,
|
||||
icon=icon,
|
||||
source=source,
|
||||
)
|
||||
return self.stub.EditNode(request)
|
||||
|
||||
|
|
|
@ -504,7 +504,7 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
position=position,
|
||||
services=services,
|
||||
)
|
||||
return core_pb2.NodeEvent(node=node_proto)
|
||||
return core_pb2.NodeEvent(node=node_proto, source=event.source)
|
||||
|
||||
def _handle_link_event(self, event):
|
||||
"""
|
||||
|
@ -800,7 +800,10 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
result = True
|
||||
try:
|
||||
session.edit_node(node.id, options)
|
||||
node_data = node.data(0)
|
||||
source = None
|
||||
if request.source:
|
||||
source = request.source
|
||||
node_data = node.data(0, source=source)
|
||||
session.broadcast_node(node_data)
|
||||
except CoreError:
|
||||
result = False
|
||||
|
|
|
@ -76,6 +76,7 @@ NodeData = collections.namedtuple(
|
|||
"altitude",
|
||||
"icon",
|
||||
"opaque",
|
||||
"source",
|
||||
],
|
||||
)
|
||||
NodeData.__new__.__defaults__ = (None,) * len(NodeData._fields)
|
||||
|
|
|
@ -176,7 +176,7 @@ class NodeBase:
|
|||
self.ifindex += 1
|
||||
return ifindex
|
||||
|
||||
def data(self, message_type, lat=None, lon=None, alt=None):
|
||||
def data(self, message_type, lat=None, lon=None, alt=None, source=None):
|
||||
"""
|
||||
Build a data object for this node.
|
||||
|
||||
|
@ -184,6 +184,7 @@ class NodeBase:
|
|||
:param str lat: latitude
|
||||
:param str lon: longitude
|
||||
:param str alt: altitude
|
||||
:param str source: source of node data
|
||||
:return: node data object
|
||||
:rtype: core.emulator.data.NodeData
|
||||
"""
|
||||
|
@ -217,6 +218,7 @@ class NodeBase:
|
|||
model=model,
|
||||
server=server,
|
||||
services=services,
|
||||
source=source,
|
||||
)
|
||||
|
||||
return node_data
|
||||
|
|
|
@ -298,6 +298,7 @@ message Event {
|
|||
|
||||
message NodeEvent {
|
||||
Node node = 1;
|
||||
string source = 2;
|
||||
}
|
||||
|
||||
message LinkEvent {
|
||||
|
@ -378,6 +379,7 @@ message EditNodeRequest {
|
|||
int32 node_id = 2;
|
||||
Position position = 3;
|
||||
string icon = 4;
|
||||
string source = 5;
|
||||
}
|
||||
|
||||
message EditNodeResponse {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue