daemon: add linked method to session and grpc support leveraging new linking semantics, update add_link validation check
This commit is contained in:
parent
e5e14ad67b
commit
7ed007496c
4 changed files with 106 additions and 3 deletions
|
@ -16,7 +16,7 @@ from core.api.grpc.configservices_pb2 import (
|
|||
GetConfigServiceDefaultsRequest,
|
||||
GetNodeConfigServiceRequest,
|
||||
)
|
||||
from core.api.grpc.core_pb2 import ExecuteScriptRequest, GetConfigRequest
|
||||
from core.api.grpc.core_pb2 import ExecuteScriptRequest, GetConfigRequest, LinkedRequest
|
||||
from core.api.grpc.emane_pb2 import (
|
||||
EmaneLinkRequest,
|
||||
GetEmaneEventChannelRequest,
|
||||
|
@ -1049,6 +1049,36 @@ class CoreGrpcClient:
|
|||
"""
|
||||
self.stub.EmanePathlosses(streamer.iter())
|
||||
|
||||
def linked(
|
||||
self,
|
||||
session_id: int,
|
||||
node1_id: int,
|
||||
node2_id: int,
|
||||
iface1_id: int,
|
||||
iface2_id: int,
|
||||
linked: bool,
|
||||
) -> None:
|
||||
"""
|
||||
Link or unlink an existing core wired link.
|
||||
|
||||
:param session_id: session containing the link
|
||||
:param node1_id: first node in link
|
||||
:param node2_id: second node in link
|
||||
:param iface1_id: node1 interface
|
||||
:param iface2_id: node2 interface
|
||||
:param linked: True to connect link, False to disconnect
|
||||
:return: nothing
|
||||
"""
|
||||
request = LinkedRequest(
|
||||
session_id=session_id,
|
||||
node1_id=node1_id,
|
||||
node2_id=node2_id,
|
||||
iface1_id=iface1_id,
|
||||
iface2_id=iface2_id,
|
||||
linked=linked,
|
||||
)
|
||||
self.stub.Linked(request)
|
||||
|
||||
def connect(self) -> None:
|
||||
"""
|
||||
Open connection to server, must be closed manually.
|
||||
|
|
|
@ -26,7 +26,7 @@ from core.api.grpc.configservices_pb2 import (
|
|||
GetNodeConfigServiceRequest,
|
||||
GetNodeConfigServiceResponse,
|
||||
)
|
||||
from core.api.grpc.core_pb2 import ExecuteScriptResponse
|
||||
from core.api.grpc.core_pb2 import ExecuteScriptResponse, LinkedRequest, LinkedResponse
|
||||
from core.api.grpc.emane_pb2 import (
|
||||
EmaneLinkRequest,
|
||||
EmaneLinkResponse,
|
||||
|
@ -1315,3 +1315,16 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
nem2 = grpcutils.get_nem_id(session, node2, request.iface2_id, context)
|
||||
session.emane.publish_pathloss(nem1, nem2, request.rx1, request.rx2)
|
||||
return EmanePathlossesResponse()
|
||||
|
||||
def Linked(
|
||||
self, request: LinkedRequest, context: ServicerContext
|
||||
) -> LinkedResponse:
|
||||
session = self.get_session(request.session_id, context)
|
||||
session.linked(
|
||||
request.node1_id,
|
||||
request.node2_id,
|
||||
request.iface1_id,
|
||||
request.iface2_id,
|
||||
request.linked,
|
||||
)
|
||||
return LinkedResponse()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue