removed master from corehandlers and session, since it will not be needed any more

This commit is contained in:
bharnden 2019-10-25 22:06:30 -07:00
parent 77c7bf798e
commit fff281a452
6 changed files with 34 additions and 92 deletions

View file

@ -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)

View file

@ -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",

View file

@ -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

View file

@ -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,
)

View file

@ -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()

View file

@ -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