removed master from corehandlers and session, since it will not be needed any more
This commit is contained in:
parent
77c7bf798e
commit
fff281a452
6 changed files with 34 additions and 92 deletions
|
@ -83,13 +83,9 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
self.handler_threads.append(thread)
|
||||
thread.start()
|
||||
|
||||
self.master = False
|
||||
self.session = None
|
||||
self.session_clients = {}
|
||||
|
||||
# core emulator
|
||||
self.coreemu = server.coreemu
|
||||
|
||||
utils.close_onexec(request.fileno())
|
||||
socketserver.BaseRequestHandler.__init__(self, request, client_address, server)
|
||||
|
||||
|
@ -591,12 +587,8 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
port = self.request.getpeername()[1]
|
||||
|
||||
# TODO: add shutdown handler for session
|
||||
self.session = self.coreemu.create_session(port, master=False)
|
||||
self.session = self.coreemu.create_session(port)
|
||||
logging.debug("created new session for client: %s", self.session.id)
|
||||
|
||||
if self.master:
|
||||
logging.debug("session set to master")
|
||||
self.session.master = True
|
||||
clients = self.session_clients.setdefault(self.session.id, [])
|
||||
clients.append(self)
|
||||
|
||||
|
@ -942,7 +934,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
file_name = sys.argv[0]
|
||||
|
||||
if os.path.splitext(file_name)[1].lower() == ".xml":
|
||||
session = self.coreemu.create_session(master=False)
|
||||
session = self.coreemu.create_session()
|
||||
try:
|
||||
session.open_xml(file_name)
|
||||
except Exception:
|
||||
|
@ -1012,17 +1004,6 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
logging.debug("ignoring Register message")
|
||||
else:
|
||||
# register capabilities with the GUI
|
||||
self.master = True
|
||||
|
||||
# find the session containing this client and set the session to master
|
||||
for _id in self.coreemu.sessions:
|
||||
clients = self.session_clients.get(_id, [])
|
||||
if self in clients:
|
||||
session = self.coreemu.sessions[_id]
|
||||
logging.debug("setting session to master: %s", session.id)
|
||||
session.master = True
|
||||
break
|
||||
|
||||
replies.append(self.register())
|
||||
replies.append(self.session_message())
|
||||
|
||||
|
@ -1441,11 +1422,6 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
config = ConfigShim.str_to_dict(values_str)
|
||||
self.session.emane.set_configs(config)
|
||||
|
||||
# extra logic to start slave Emane object after nemid has been configured from the master
|
||||
if message_type == ConfigFlags.UPDATE and self.session.master is False:
|
||||
# instantiation was previously delayed by setup returning Emane.NOT_READY
|
||||
self.session.instantiate()
|
||||
|
||||
return replies
|
||||
|
||||
def handle_config_emane_models(self, message_type, config_data):
|
||||
|
@ -1613,20 +1589,11 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
for _id in self.session.nodes:
|
||||
self.send_node_emulation_id(_id)
|
||||
elif event_type == EventTypes.RUNTIME_STATE:
|
||||
if self.session.master:
|
||||
logging.warning(
|
||||
"Unexpected event message: RUNTIME state received at session master"
|
||||
)
|
||||
else:
|
||||
# master event queue is started in session.checkruntime()
|
||||
self.session.start_events()
|
||||
logging.warning("Unexpected event message: RUNTIME state received")
|
||||
elif event_type == EventTypes.DATACOLLECT_STATE:
|
||||
self.session.data_collect()
|
||||
elif event_type == EventTypes.SHUTDOWN_STATE:
|
||||
if self.session.master:
|
||||
logging.warning(
|
||||
"Unexpected event message: SHUTDOWN state received at session master"
|
||||
)
|
||||
logging.warning("Unexpected event message: SHUTDOWN state received")
|
||||
elif event_type in {
|
||||
EventTypes.START,
|
||||
EventTypes.STOP,
|
||||
|
@ -1824,9 +1791,7 @@ class CoreHandler(socketserver.BaseRequestHandler):
|
|||
# set session to join
|
||||
self.session = session
|
||||
|
||||
# add client to session broker and set master if needed
|
||||
if self.master:
|
||||
self.session.master = True
|
||||
# add client to session broker
|
||||
clients = self.session_clients.setdefault(self.session.id, [])
|
||||
clients.append(self)
|
||||
|
||||
|
@ -2022,7 +1987,6 @@ class CoreUdpHandler(CoreHandler):
|
|||
MessageTypes.EVENT.value: self.handle_event_message,
|
||||
MessageTypes.SESSION.value: self.handle_session_message,
|
||||
}
|
||||
self.master = False
|
||||
self.session = None
|
||||
self.coreemu = server.mainserver.coreemu
|
||||
socketserver.BaseRequestHandler.__init__(self, request, client_address, server)
|
||||
|
|
|
@ -269,12 +269,9 @@ class EmaneManager(ModelManager):
|
|||
|
||||
# control network bridge required for EMANE 0.9.2
|
||||
# - needs to exist when eventservice binds to it (initeventservice)
|
||||
if self.session.master:
|
||||
otadev = self.get_config("otamanagerdevice")
|
||||
netidx = self.session.get_control_net_index(otadev)
|
||||
logging.debug(
|
||||
"emane ota manager device: index(%s) otadev(%s)", netidx, otadev
|
||||
)
|
||||
logging.debug("emane ota manager device: index(%s) otadev(%s)", netidx, otadev)
|
||||
if netidx < 0:
|
||||
logging.error(
|
||||
"EMANE cannot start, check core config. invalid OTA device provided: %s",
|
||||
|
|
|
@ -86,12 +86,11 @@ class CoreEmu:
|
|||
session = sessions[_id]
|
||||
session.shutdown()
|
||||
|
||||
def create_session(self, _id=None, master=True, _cls=Session):
|
||||
def create_session(self, _id=None, _cls=Session):
|
||||
"""
|
||||
Create a new CORE session, set to master if running standalone.
|
||||
Create a new CORE session.
|
||||
|
||||
:param int _id: session id for new session
|
||||
:param bool master: sets session to master
|
||||
:param class _cls: Session class to use
|
||||
:return: created session
|
||||
:rtype: EmuSession
|
||||
|
@ -104,9 +103,6 @@ class CoreEmu:
|
|||
|
||||
session = _cls(_id, config=self.config)
|
||||
logging.info("created session: %s", _id)
|
||||
if master:
|
||||
session.master = True
|
||||
|
||||
self.sessions[_id] = session
|
||||
return session
|
||||
|
||||
|
|
|
@ -85,7 +85,6 @@ class Session:
|
|||
:param bool mkdir: flag to determine if a directory should be made
|
||||
"""
|
||||
self.id = _id
|
||||
self.master = False
|
||||
|
||||
# define and create session directory when desired
|
||||
self.session_dir = os.path.join(tempfile.gettempdir(), f"pycore.{self.id}")
|
||||
|
@ -1694,28 +1693,19 @@ class Session:
|
|||
prefixes = prefix_spec.split()
|
||||
if len(prefixes) > 1:
|
||||
# a list of per-host prefixes is provided
|
||||
assign_address = True
|
||||
if self.master:
|
||||
try:
|
||||
# split first (master) entry into server and prefix
|
||||
prefix = prefixes[0].split(":", 1)[1]
|
||||
except IndexError:
|
||||
# no server name. possibly only one server
|
||||
prefix = prefixes[0]
|
||||
|
||||
# len(prefixes) == 1
|
||||
else:
|
||||
# TODO: can we get the server name from the servers.conf or from the node
|
||||
# assignments?o
|
||||
# with one prefix, only master gets a ctrlnet address
|
||||
assign_address = self.master
|
||||
prefix = prefixes[0]
|
||||
|
||||
logging.info(
|
||||
"controlnet(%s) prefix(%s) assign(%s) updown(%s) serverintf(%s)",
|
||||
"controlnet(%s) prefix(%s) updown(%s) serverintf(%s)",
|
||||
_id,
|
||||
prefix,
|
||||
assign_address,
|
||||
updown_script,
|
||||
server_interface,
|
||||
)
|
||||
|
@ -1723,7 +1713,7 @@ class Session:
|
|||
cls=CtrlNet,
|
||||
_id=_id,
|
||||
prefix=prefix,
|
||||
assign_address=assign_address,
|
||||
assign_address=True,
|
||||
updown_script=updown_script,
|
||||
serverintf=server_interface,
|
||||
)
|
||||
|
|
|
@ -75,7 +75,6 @@ def global_coreemu(patcher):
|
|||
def global_session(request, patcher, global_coreemu):
|
||||
mkdir = not request.config.getoption("mock")
|
||||
session = Session(1000, {"emane_prefix": "/usr"}, mkdir)
|
||||
session.master = True
|
||||
yield session
|
||||
session.shutdown()
|
||||
|
||||
|
|
|
@ -606,13 +606,9 @@ class TestGui:
|
|||
coretlv.handle_message(message)
|
||||
|
||||
def test_register_gui(self, coretlv):
|
||||
coretlv.master = False
|
||||
message = coreapi.CoreRegMessage.create(0, [(RegisterTlvs.GUI, "gui")])
|
||||
|
||||
coretlv.handle_message(message)
|
||||
|
||||
assert coretlv.master is True
|
||||
|
||||
def test_register_xml(self, coretlv, tmpdir):
|
||||
xml_file = tmpdir.join("coretlv.session.xml")
|
||||
file_path = xml_file.strpath
|
||||
|
|
Loading…
Add table
Reference in a new issue