changes to support better type checking for retrieving an arbitrary node from a session, get_node now requires an expected class that the node would be an instance of, if the returned node is not an instance a CoreError is thrown, this also helps editors pick up expected types to account for variable/function usage better as well
This commit is contained in:
parent
19ee367dc5
commit
d5254e6a91
21 changed files with 149 additions and 126 deletions
|
@ -41,6 +41,7 @@ from core.emulator.enumerations import (
|
|||
)
|
||||
from core.errors import CoreCommandError, CoreError
|
||||
from core.location.mobility import BasicRangeModel
|
||||
from core.nodes.base import CoreNodeBase, NodeBase
|
||||
from core.nodes.network import WlanNode
|
||||
from core.services.coreservices import ServiceManager, ServiceShim
|
||||
|
||||
|
@ -836,7 +837,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
return ()
|
||||
|
||||
try:
|
||||
node = self.session.get_node(node_num)
|
||||
node = self.session.get_node(node_num, CoreNodeBase)
|
||||
|
||||
# build common TLV items for reply
|
||||
tlv_data = b""
|
||||
|
@ -1228,7 +1229,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
if not node_id:
|
||||
return replies
|
||||
|
||||
node = self.session.get_node(node_id)
|
||||
node = self.session.get_node(node_id, CoreNodeBase)
|
||||
if node is None:
|
||||
logging.warning(
|
||||
"request to configure service for unknown node %s", node_id
|
||||
|
@ -1373,7 +1374,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
self.session.mobility.set_model_config(node_id, object_name, parsed_config)
|
||||
if self.session.state == EventTypes.RUNTIME_STATE and parsed_config:
|
||||
try:
|
||||
node = self.session.get_node(node_id)
|
||||
node = self.session.get_node(node_id, WlanNode)
|
||||
if object_name == BasicRangeModel.name:
|
||||
node.updatemodel(parsed_config)
|
||||
except CoreError:
|
||||
|
@ -1553,7 +1554,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
logging.debug("handling event %s at %s", event_type.name, time.ctime())
|
||||
if event_type.value <= EventTypes.SHUTDOWN_STATE.value:
|
||||
if node_id is not None:
|
||||
node = self.session.get_node(node_id)
|
||||
node = self.session.get_node(node_id, NodeBase)
|
||||
|
||||
# configure mobility models for WLAN added during runtime
|
||||
if event_type == EventTypes.INSTANTIATION_STATE and isinstance(
|
||||
|
@ -1647,7 +1648,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
name = event_data.name
|
||||
|
||||
try:
|
||||
node = self.session.get_node(node_id)
|
||||
node = self.session.get_node(node_id, CoreNodeBase)
|
||||
except CoreError:
|
||||
logging.warning(
|
||||
"ignoring event for service '%s', unknown node '%s'", name, node_id
|
||||
|
@ -1883,7 +1884,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
data_types = tuple(
|
||||
repeat(ConfigDataTypes.STRING.value, len(ServiceShim.keys))
|
||||
)
|
||||
node = self.session.get_node(node_id)
|
||||
node = self.session.get_node(node_id, CoreNodeBase)
|
||||
values = ServiceShim.tovaluelist(node, service)
|
||||
config_data = ConfigData(
|
||||
message_type=0,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue