daemon/grpc/gui: further updates for a new working wireless node, added grpc support for control and additions to gui for creation
This commit is contained in:
parent
e4a6ecf3c2
commit
84acb82c18
19 changed files with 399 additions and 90 deletions
|
@ -16,7 +16,13 @@ from core.api.grpc.configservices_pb2 import (
|
|||
GetConfigServiceDefaultsRequest,
|
||||
GetNodeConfigServiceRequest,
|
||||
)
|
||||
from core.api.grpc.core_pb2 import ExecuteScriptRequest, GetConfigRequest, LinkedRequest
|
||||
from core.api.grpc.core_pb2 import (
|
||||
ExecuteScriptRequest,
|
||||
GetConfigRequest,
|
||||
LinkedRequest,
|
||||
WirelessConfigRequest,
|
||||
WirelessLinkedRequest,
|
||||
)
|
||||
from core.api.grpc.emane_pb2 import (
|
||||
EmaneLinkRequest,
|
||||
GetEmaneEventChannelRequest,
|
||||
|
@ -43,6 +49,7 @@ from core.api.grpc.wlan_pb2 import (
|
|||
WlanConfig,
|
||||
WlanLinkRequest,
|
||||
)
|
||||
from core.api.grpc.wrappers import LinkOptions
|
||||
from core.emulator.data import IpPrefixes
|
||||
from core.errors import CoreError
|
||||
|
||||
|
@ -1079,6 +1086,42 @@ class CoreGrpcClient:
|
|||
)
|
||||
self.stub.Linked(request)
|
||||
|
||||
def wireless_linked(
|
||||
self,
|
||||
session_id: int,
|
||||
wireless_id: int,
|
||||
node1_id: int,
|
||||
node2_id: int,
|
||||
linked: bool,
|
||||
) -> None:
|
||||
request = WirelessLinkedRequest(
|
||||
session_id=session_id,
|
||||
wireless_id=wireless_id,
|
||||
node1_id=node1_id,
|
||||
node2_id=node2_id,
|
||||
linked=linked,
|
||||
)
|
||||
self.stub.WirelessLinked(request)
|
||||
|
||||
def wireless_config(
|
||||
self,
|
||||
session_id: int,
|
||||
wireless_id: int,
|
||||
node1_id: int,
|
||||
node2_id: int,
|
||||
options1: LinkOptions,
|
||||
options2: LinkOptions = None,
|
||||
) -> None:
|
||||
request = WirelessConfigRequest(
|
||||
session_id=session_id,
|
||||
wireless_id=wireless_id,
|
||||
node1_id=node1_id,
|
||||
node2_id=node2_id,
|
||||
options1=options1.to_proto(),
|
||||
options2=options2.to_proto(),
|
||||
)
|
||||
self.stub.WirelessConfig(request)
|
||||
|
||||
def connect(self) -> None:
|
||||
"""
|
||||
Open connection to server, must be closed manually.
|
||||
|
|
|
@ -26,7 +26,15 @@ from core.api.grpc.configservices_pb2 import (
|
|||
GetNodeConfigServiceRequest,
|
||||
GetNodeConfigServiceResponse,
|
||||
)
|
||||
from core.api.grpc.core_pb2 import ExecuteScriptResponse, LinkedRequest, LinkedResponse
|
||||
from core.api.grpc.core_pb2 import (
|
||||
ExecuteScriptResponse,
|
||||
LinkedRequest,
|
||||
LinkedResponse,
|
||||
WirelessConfigRequest,
|
||||
WirelessConfigResponse,
|
||||
WirelessLinkedRequest,
|
||||
WirelessLinkedResponse,
|
||||
)
|
||||
from core.api.grpc.emane_pb2 import (
|
||||
EmaneLinkRequest,
|
||||
EmaneLinkResponse,
|
||||
|
@ -82,6 +90,7 @@ from core.errors import CoreCommandError, CoreError
|
|||
from core.location.mobility import BasicRangeModel, Ns2ScriptedMobility
|
||||
from core.nodes.base import CoreNode, NodeBase
|
||||
from core.nodes.network import CoreNetwork, WlanNode
|
||||
from core.nodes.wireless import WirelessNode
|
||||
from core.services.coreservices import ServiceManager
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
@ -1329,3 +1338,23 @@ class CoreGrpcServer(core_pb2_grpc.CoreApiServicer):
|
|||
request.linked,
|
||||
)
|
||||
return LinkedResponse()
|
||||
|
||||
def WirelessLinked(
|
||||
self, request: WirelessLinkedRequest, context: ServicerContext
|
||||
) -> WirelessLinkedResponse:
|
||||
session = self.get_session(request.session_id, context)
|
||||
wireless = self.get_node(session, request.wireless_id, context, WirelessNode)
|
||||
wireless.link_control(request.node1_id, request.node2_id, request.linked)
|
||||
return WirelessLinkedResponse()
|
||||
|
||||
def WirelessConfig(
|
||||
self, request: WirelessConfigRequest, context: ServicerContext
|
||||
) -> WirelessConfigResponse:
|
||||
session = self.get_session(request.session_id, context)
|
||||
wireless = self.get_node(session, request.wireless_id, context, WirelessNode)
|
||||
options1 = request.options1
|
||||
options2 = options1
|
||||
if request.HasField("options2"):
|
||||
options2 = request.options2
|
||||
wireless.link_config(request.node1_id, request.node2_id, options1, options2)
|
||||
return WirelessConfigResponse()
|
||||
|
|
|
@ -67,6 +67,7 @@ class NodeType(Enum):
|
|||
CONTROL_NET = 13
|
||||
DOCKER = 15
|
||||
LXC = 16
|
||||
WIRELESS = 17
|
||||
|
||||
|
||||
class LinkType(Enum):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue