removed unused code, updated delete session to shutdown session as well and return if session was deleted or not
This commit is contained in:
parent
c0b450789a
commit
f431895357
2 changed files with 12 additions and 74 deletions
|
@ -8,7 +8,7 @@ from core import logger
|
||||||
from core.coreobj import PyCoreNode, PyCoreNet
|
from core.coreobj import PyCoreNode, PyCoreNet
|
||||||
from core.data import NodeData
|
from core.data import NodeData
|
||||||
from core.enumerations import NodeTypes, EventTypes, LinkTypes
|
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.misc import nodeutils
|
||||||
from core.session import Session
|
from core.session import Session
|
||||||
from core.xml.xmlparser import core_document_parser
|
from core.xml.xmlparser import core_document_parser
|
||||||
|
@ -34,35 +34,6 @@ signal.signal(signal.SIGUSR1, signal_handler)
|
||||||
signal.signal(signal.SIGUSR2, 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):
|
def create_interface(node, network, interface_data):
|
||||||
"""
|
"""
|
||||||
Create an interface for a node on a network using provided 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)
|
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()):
|
def create_emane_node(self, _id=None, node_options=NodeOptions()):
|
||||||
"""
|
"""
|
||||||
Create an EMANE node for use within an EMANE network.
|
Create an EMANE node for use within an EMANE network.
|
||||||
|
@ -909,16 +859,24 @@ class CoreEmu(object):
|
||||||
|
|
||||||
def delete_session(self, _id):
|
def delete_session(self, _id):
|
||||||
"""
|
"""
|
||||||
Deletes a CORE session.
|
Shutdown and delete a CORE session.
|
||||||
|
|
||||||
:param int _id: session id to delete
|
:param int _id: session id to delete
|
||||||
:return: nothing
|
:return: True if deleted, False otherwise
|
||||||
|
:rtype: bool
|
||||||
"""
|
"""
|
||||||
logger.info("deleting session: %s", _id)
|
logger.info("deleting session: %s", _id)
|
||||||
session = self.sessions.pop(_id, None)
|
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)
|
logger.error("session to delete did not exist: %s", _id)
|
||||||
|
|
||||||
|
return result
|
||||||
|
|
||||||
def set_wireless_model(self, node, model):
|
def set_wireless_model(self, node, model):
|
||||||
"""
|
"""
|
||||||
Convenience method for setting a wireless model.
|
Convenience method for setting a wireless model.
|
||||||
|
@ -941,17 +899,3 @@ class CoreEmu(object):
|
||||||
for node in nodes:
|
for node in nodes:
|
||||||
for common_network, interface_one, interface_two in node.commonnets(network):
|
for common_network, interface_one, interface_two in node.commonnets(network):
|
||||||
common_network.link(interface_one, interface_two)
|
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)
|
|
||||||
|
|
|
@ -130,7 +130,6 @@ class FutureHandler(SocketServer.BaseRequestHandler):
|
||||||
self.session.broker.session_clients.remove(self)
|
self.session.broker.session_clients.remove(self)
|
||||||
if not self.session.broker.session_clients and not self.session.is_active():
|
if not self.session.broker.session_clients and not self.session.is_active():
|
||||||
logger.info("no session clients left and not active, initiating shutdown")
|
logger.info("no session clients left and not active, initiating shutdown")
|
||||||
self.session.shutdown()
|
|
||||||
self.coreemu.delete_session(self.session.session_id)
|
self.coreemu.delete_session(self.session.session_id)
|
||||||
|
|
||||||
return SocketServer.BaseRequestHandler.finish(self)
|
return SocketServer.BaseRequestHandler.finish(self)
|
||||||
|
@ -551,9 +550,6 @@ class FutureHandler(SocketServer.BaseRequestHandler):
|
||||||
except IOError:
|
except IOError:
|
||||||
logger.exception("error dispatching reply")
|
logger.exception("error dispatching reply")
|
||||||
|
|
||||||
def session_shutdown(self, session):
|
|
||||||
self.coreemu.delete_session(session.session_id)
|
|
||||||
|
|
||||||
def handle(self):
|
def handle(self):
|
||||||
"""
|
"""
|
||||||
Handle a new connection request from a client. Dispatch to the
|
Handle a new connection request from a client. Dispatch to the
|
||||||
|
@ -856,7 +852,6 @@ class FutureHandler(SocketServer.BaseRequestHandler):
|
||||||
try:
|
try:
|
||||||
session.open_xml(file_name, start=True)
|
session.open_xml(file_name, start=True)
|
||||||
except:
|
except:
|
||||||
session.shutdown()
|
|
||||||
self.coreemu.delete_session(session.session_id)
|
self.coreemu.delete_session(session.session_id)
|
||||||
raise
|
raise
|
||||||
else:
|
else:
|
||||||
|
@ -1189,7 +1184,6 @@ class FutureHandler(SocketServer.BaseRequestHandler):
|
||||||
self.remove_session_handlers()
|
self.remove_session_handlers()
|
||||||
self.session.broker.session_clients.remove(self)
|
self.session.broker.session_clients.remove(self)
|
||||||
if not self.session.broker.session_clients and not self.session.is_active():
|
if not self.session.broker.session_clients and not self.session.is_active():
|
||||||
self.session.shutdown()
|
|
||||||
self.coreemu.delete_session(self.session.session_id)
|
self.coreemu.delete_session(self.session.session_id)
|
||||||
|
|
||||||
# set session to join
|
# set session to join
|
||||||
|
|
Loading…
Add table
Reference in a new issue