diff --git a/daemon/core/future/coreemu.py b/daemon/core/future/coreemu.py index 39ab6b00..5bb2859e 100644 --- a/daemon/core/future/coreemu.py +++ b/daemon/core/future/coreemu.py @@ -8,7 +8,7 @@ from core import logger from core.coreobj import PyCoreNode, PyCoreNet from core.data import NodeData from core.enumerations import NodeTypes, EventTypes, LinkTypes -from core.future.futuredata import InterfaceData, LinkOptions, NodeOptions +from core.future.futuredata import LinkOptions, NodeOptions from core.misc import nodeutils from core.session import Session from core.xml.xmlparser import core_document_parser @@ -34,35 +34,6 @@ signal.signal(signal.SIGUSR1, signal_handler) signal.signal(signal.SIGUSR2, signal_handler) -def get_interfaces(link_data): - """ - Creates interface data objects for the interfaces defined within link data. - - :param core.data.LinkData link_data: data to create interface data from - :return: interface one and two data - :rtype: tuple[core.future.futuredata.InterfaceData] - """ - interface_one = InterfaceData( - _id=link_data.interface1_id, - name=link_data.interface1_name, - mac=link_data.interface1_mac, - ip4=link_data.interface1_ip4, - ip4_mask=link_data.interface1_ip4_mask, - ip6=link_data.interface1_ip6, - ip6_mask=link_data.interface1_ip6_mask, - ) - interface_two = InterfaceData( - _id=link_data.interface2_id, - name=link_data.interface2_name, - mac=link_data.interface2_mac, - ip4=link_data.interface2_ip4, - ip4_mask=link_data.interface2_ip4_mask, - ip6=link_data.interface2_ip6, - ip6_mask=link_data.interface2_ip6_mask, - ) - return interface_one, interface_two - - def create_interface(node, network, interface_data): """ Create an interface for a node on a network using provided interface data. @@ -782,27 +753,6 @@ class FutureSession(Session): """ self.mobility.handleevent(event_data) - def create_node(self, cls, name=None, model=None): - """ - Create a node - - :param cls: - :param name: - :param model: - :return: - """ - object_id = self.node_id_gen.next() - - if not name: - name = "%s%s" % (cls.__name__, object_id) - - node = self.add_object(cls=cls, name=name, objid=object_id) - node.type = model - if node.type: - self.services.addservicestonode(node, node.type, services_str=None) - - return node - def create_emane_node(self, _id=None, node_options=NodeOptions()): """ Create an EMANE node for use within an EMANE network. @@ -909,16 +859,24 @@ class CoreEmu(object): def delete_session(self, _id): """ - Deletes a CORE session. + Shutdown and delete a CORE session. :param int _id: session id to delete - :return: nothing + :return: True if deleted, False otherwise + :rtype: bool """ logger.info("deleting session: %s", _id) session = self.sessions.pop(_id, None) - if not session: + result = False + if session: + logger.info("shutting session down: %s", _id) + session.shutdown() + result = True + else: logger.error("session to delete did not exist: %s", _id) + return result + def set_wireless_model(self, node, model): """ Convenience method for setting a wireless model. @@ -941,17 +899,3 @@ class CoreEmu(object): for node in nodes: for common_network, interface_one, interface_two in node.commonnets(network): common_network.link(interface_one, interface_two) - - def add_interface(self, network, node, prefixes): - """ - Convenience method for adding an interface with a prefix based on node id. - - :param network: network to add interface with - :param node: node to add interface to - :param core.future.futuredata.IpPrefixes prefixes: to get address from for interface - :return: created interface - """ - interface_data = prefixes.create_interface(node) - logger.info("adding interface: %s", interface_data.get_addresses()) - interface_index = node.newnetif(network, interface_data.get_addresses(), ifindex=interface_data.id) - return node.netif(interface_index) diff --git a/daemon/core/future/futurehandler.py b/daemon/core/future/futurehandler.py index 3ea50e88..7fb90a5a 100644 --- a/daemon/core/future/futurehandler.py +++ b/daemon/core/future/futurehandler.py @@ -130,7 +130,6 @@ class FutureHandler(SocketServer.BaseRequestHandler): self.session.broker.session_clients.remove(self) if not self.session.broker.session_clients and not self.session.is_active(): logger.info("no session clients left and not active, initiating shutdown") - self.session.shutdown() self.coreemu.delete_session(self.session.session_id) return SocketServer.BaseRequestHandler.finish(self) @@ -551,9 +550,6 @@ class FutureHandler(SocketServer.BaseRequestHandler): except IOError: logger.exception("error dispatching reply") - def session_shutdown(self, session): - self.coreemu.delete_session(session.session_id) - def handle(self): """ Handle a new connection request from a client. Dispatch to the @@ -856,7 +852,6 @@ class FutureHandler(SocketServer.BaseRequestHandler): try: session.open_xml(file_name, start=True) except: - session.shutdown() self.coreemu.delete_session(session.session_id) raise else: @@ -1189,7 +1184,6 @@ class FutureHandler(SocketServer.BaseRequestHandler): self.remove_session_handlers() self.session.broker.session_clients.remove(self) if not self.session.broker.session_clients and not self.session.is_active(): - self.session.shutdown() self.coreemu.delete_session(self.session.session_id) # set session to join