integrated creation into the standard session.add_node call, currently requires an extra check due to the need for being able to specify an image

This commit is contained in:
Blake Harnden 2019-06-28 15:41:55 -07:00
parent 0e7464d419
commit 2397cd58ee
6 changed files with 49 additions and 34 deletions

View file

@ -1,7 +1,7 @@
import logging
from core.emulator.coreemu import CoreEmu
from core.emulator.emudata import IpPrefixes
from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import NodeTypes, EventTypes
@ -12,14 +12,14 @@ if __name__ == "__main__":
session.set_state(EventTypes.CONFIGURATION_STATE)
try:
# create nodes one
prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16")
node_one = session.add_node(_type=NodeTypes.DOCKER)
session.services.add_services(node_one, node_one.type, ["SSH"])
logging.info("docker node(%s): %s", node_one.name, node_one.services)
options = NodeOptions(image="ubuntu:ifconfig")
# create node one
node_one = session.add_node(_type=NodeTypes.DOCKER, node_options=options)
interface_one = prefixes.create_interface(node_one)
# create nodes two
# create node two
node_two = session.add_node()
interface_two = prefixes.create_interface(node_two)
@ -27,8 +27,6 @@ if __name__ == "__main__":
session.add_link(node_one.id, node_two.id, interface_one, interface_two)
# instantiate
logging.info("INSTANTIATE")
logging.info("docker node(%s): %s", node_one.name, node_one.services)
session.instantiate()
finally:
input("continue to shutdown")

View file

@ -1,7 +1,7 @@
import logging
from core.emulator.coreemu import CoreEmu
from core.emulator.emudata import IpPrefixes
from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import NodeTypes, EventTypes
@ -15,17 +15,20 @@ if __name__ == "__main__":
# create nodes and interfaces
try:
prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16")
node_one = session.add_node(_type=NodeTypes.DOCKER)
node_two = session.add_node(_type=NodeTypes.DOCKER)
options = NodeOptions(image="ubuntu:ifconfig")
# create node one
node_one = session.add_node(_type=NodeTypes.DOCKER, node_options=options)
interface_one = prefixes.create_interface(node_one)
# create node two
node_two = session.add_node(_type=NodeTypes.DOCKER, node_options=options)
interface_two = prefixes.create_interface(node_two)
# add link
input("press key to continue")
session.add_link(node_one.id, node_two.id, interface_one, interface_two)
print(node_one.cmd_output("ifconfig"))
print(node_two.cmd_output("ifconfig"))
input("press key to continue")
# instantiate
session.instantiate()
finally:
input("continue to shutdown")

View file

@ -1,7 +1,7 @@
import logging
from core.emulator.coreemu import CoreEmu
from core.emulator.emudata import IpPrefixes
from core.emulator.emudata import IpPrefixes, NodeOptions
from core.emulator.enumerations import NodeTypes, EventTypes
@ -12,25 +12,31 @@ if __name__ == "__main__":
session = coreemu.create_session()
session.set_state(EventTypes.CONFIGURATION_STATE)
# create nodes and interfaces
try:
prefixes = IpPrefixes(ip4_prefix="10.83.0.0/16")
options = NodeOptions(image="ubuntu:ifconfig")
# create switch
switch = session.add_node(_type=NodeTypes.SWITCH)
node_one = session.add_node(_type=NodeTypes.DOCKER)
node_two = session.add_node(_type=NodeTypes.DOCKER)
node_three = session.add_node()
# node one
node_one = session.add_node(_type=NodeTypes.DOCKER, node_options=options)
interface_one = prefixes.create_interface(node_one)
# node two
node_two = session.add_node(_type=NodeTypes.DOCKER, node_options=options)
interface_two = prefixes.create_interface(node_two)
# node three
node_three = session.add_node()
interface_three = prefixes.create_interface(node_three)
# add link
input("press key to continue")
# add links
session.add_link(node_one.id, switch.id, interface_one)
session.add_link(node_two.id, switch.id, interface_two)
session.add_link(node_three.id, switch.id, interface_three)
print(node_one.cmd_output("ifconfig"))
print(node_two.cmd_output("ifconfig"))
input("press key to continue")
# instantiate
session.instantiate()
finally:
input("continue to shutdown")