added a simple test for a tunnel node, although better testing awwma to require configuration outside of core

This commit is contained in:
Blake J. Harnden 2017-08-03 09:37:22 -07:00
parent b62076c240
commit d915436c7d
3 changed files with 102 additions and 26 deletions

View file

@ -9,6 +9,7 @@ from core.enumerations import EventTypes
from core.enumerations import ExecuteTlvs
from core.enumerations import MessageFlags
from core.enumerations import NodeTypes
from core.misc.ipaddress import IpAddress
def validate_response(replies, _):
@ -29,25 +30,26 @@ def validate_response(replies, _):
class TestDistributed:
def test_distributed(self, cored, distributed_address):
"""
Test session broker creation.
Test creating a distributed network.
:param core.coreserver.CoreServer conftest.Core cored: core daemon server to test with
:param str distributed_address: distributed server to test against
"""
assert distributed_address, "distributed server address was not provided"
# initialize server for testing
cored.setup(distributed_address)
# create local node
message = conftest.node_message(1, "n1", model="host")
message = conftest.node_message(
objid=1,
name="n1",
model="host"
)
cored.request_handler.handle_message(message)
# create distributed node and assign to distributed server
message = conftest.node_message(
2,
"n2",
objid=2,
name="n2",
emulation_server=cored.distributed_server,
model="host"
)
@ -55,8 +57,8 @@ class TestDistributed:
# create distributed switch and assign to distributed server
message = conftest.node_message(
3,
"n3",
objid=3,
name="n3",
emulation_server=cored.distributed_server,
node_type=NodeTypes.SWITCH
)
@ -64,12 +66,22 @@ class TestDistributed:
# link message one
ip4_address = cored.prefix.addr(1)
message = conftest.link_message(1, 3, intf_one=0, address_one=ip4_address)
message = conftest.link_message(
n1=1,
n2=3,
intf_one=0,
address_one=ip4_address
)
cored.request_handler.handle_message(message)
# link message two
ip4_address = cored.prefix.addr(2)
message = conftest.link_message(3, 2, intf_two=0, address_two=ip4_address)
message = conftest.link_message(
n1=3,
n2=2,
intf_two=0,
address_two=ip4_address
)
cored.request_handler.handle_message(message)
# change session to instantiation state
@ -84,25 +96,26 @@ class TestDistributed:
def test_prouter(self, cored, distributed_address):
"""
Test session broker creation.
Test creating a distributed prouter node.
:param core.coreserver.CoreServer conftest.Core cored: core daemon server to test with
:param str distributed_address: distributed server to test against
"""
assert distributed_address, "distributed server address was not provided"
# initialize server for testing
cored.setup(distributed_address)
# create local node
message = conftest.node_message(1, "n1", model="host")
message = conftest.node_message(
objid=1,
name="n1",
model="host"
)
cored.request_handler.handle_message(message)
# create distributed node and assign to distributed server
message = conftest.node_message(
2,
"n2",
objid=2,
name="n2",
emulation_server=cored.distributed_server,
node_type=NodeTypes.PHYSICAL,
model="prouter"
@ -111,20 +124,30 @@ class TestDistributed:
# create distributed switch and assign to distributed server
message = conftest.node_message(
3,
"n3",
objid=3,
name="n3",
node_type=NodeTypes.SWITCH
)
cored.request_handler.handle_message(message)
# link message one
ip4_address = cored.prefix.addr(1)
message = conftest.link_message(1, 3, intf_one=0, address_one=ip4_address)
message = conftest.link_message(
n1=1,
n2=3,
intf_one=0,
address_one=ip4_address
)
cored.request_handler.handle_message(message)
# link message two
ip4_address = cored.prefix.addr(2)
message = conftest.link_message(3, 2, intf_two=0, address_two=ip4_address)
message = conftest.link_message(
n1=3,
n2=2,
intf_two=0,
address_two=ip4_address
)
cored.request_handler.handle_message(message)
# change session to instantiation state
@ -137,3 +160,48 @@ class TestDistributed:
cored.request_handler.dispatch_replies = validate_response
cored.request_handler.handle_message(message)
cored.request_handler.handle_message(message)
def test_tunnel(self, cored, distributed_address):
"""
Test session broker creation.
:param core.coreserver.CoreServer conftest.Core cored: core daemon server to test with
:param str distributed_address: distributed server to test against
"""
# initialize server for testing
cored.setup(distributed_address)
# create local node
message = conftest.node_message(
objid=1,
name="n1",
model="host"
)
cored.request_handler.handle_message(message)
# create distributed node and assign to distributed server
message = conftest.node_message(
objid=2,
name=distributed_address,
emulation_server=cored.distributed_server,
node_type=NodeTypes.TUNNEL
)
cored.request_handler.handle_message(message)
# link message one
ip4_address = cored.prefix.addr(1)
address_two = IpAddress.from_string(distributed_address)
message = conftest.link_message(
n1=1,
n2=2,
intf_one=0,
address_one=ip4_address,
intf_two=0,
address_two=address_two,
key=1
)
cored.request_handler.handle_message(message)
# change session to instantiation state
message = conftest.state_message(EventTypes.INSTANTIATION_STATE)
cored.request_handler.handle_message(message)