Unverified Commit ebca47be authored by Jakob Görgen's avatar Jakob Görgen
Browse files

helpers example type error fixes + new helper sugggestion

parent 6584973e
...@@ -16,17 +16,18 @@ def boilerplate(): ...@@ -16,17 +16,18 @@ def boilerplate():
# create client host # create client host
host0 = sys_host_base.CorundumLinuxHost() host0 = sys_host_base.CorundumLinuxHost()
host0_app = sys_app_base.PingClient(host0) host0_app = sys_app_base.PingClient(host0)
host0_app.server_ip = '10.0.0.2'
host0.add_app(host0_app) host0.add_app(host0_app)
# create client nic # create client nic
nic0 = sys_nic.CorundumNIC() nic0 = sys_nic.CorundumNIC()
nic0.set_ipv4("10.0.0.1") nic0.add_ipv4("10.0.0.1")
# connect client host and nic # connect client host and nic
host_pci0 = sys_pcie.PCIeHostInterface(host0) host_pci0 = sys_pcie.PCIeHostInterface(host0)
host0.add_if(host_pci0) host0.add_if(host_pci0)
nic_pci0 = sys_pcie.PCIeDeviceInterface(nic0) nic_pci0 = sys_pcie.PCIeDeviceInterface(nic0)
nic0.set_pcie_if(nic_pci0) nic0.add_if(nic_pci0)
host0_nic0_chan = sys_pcie.PCIeChannel(host_pci0, nic_pci0) host0_nic0_chan = sys_pcie.PCIeChannel(host_pci0, nic_pci0)
# create host server # create host server
...@@ -36,13 +37,13 @@ def boilerplate(): ...@@ -36,13 +37,13 @@ def boilerplate():
# create host nic # create host nic
nic1 = sys_nic.IntelI40eNIC() nic1 = sys_nic.IntelI40eNIC()
nic1.set_ipv4("10.0.0.2") nic1.add_ipv4("10.0.0.2")
# connect host server to host client # connect host server to host client
host_pci1 = sys_pcie.PCIeHostInterface(host0) host_pci1 = sys_pcie.PCIeHostInterface(host0)
host1.add_if(host_pci1) host1.add_if(host_pci1)
nic_pci1 = sys_pcie.PCIeDeviceInterface(nic1) nic_pci1 = sys_pcie.PCIeDeviceInterface(nic1)
nic1.set_pcie_if(nic_pci1) nic1.add_if(nic_pci1)
host1_nic1_chan = sys_pcie.PCIeChannel(host_pci1, nic_pci1) host1_nic1_chan = sys_pcie.PCIeChannel(host_pci1, nic_pci1)
# create first switch # create first switch
...@@ -85,7 +86,7 @@ def syntactic_sugar(): ...@@ -85,7 +86,7 @@ def syntactic_sugar():
# create client host # create client host
host0 = sys_host_base.CorundumLinuxHost() host0 = sys_host_base.CorundumLinuxHost()
install_application(host0, sys_app_base.PingClient(host0)) helpers_sys.install_app(host=host0, app_ty=sys_app_base.PingClient, server_ip='10.0.0.2')
# create client nic # create client nic
nic0 = sys_nic.CorundumNIC() nic0 = sys_nic.CorundumNIC()
...@@ -96,11 +97,11 @@ def syntactic_sugar(): ...@@ -96,11 +97,11 @@ def syntactic_sugar():
# create host server # create host server
host1 = sys_host_base.I40ELinuxHost() host1 = sys_host_base.I40ELinuxHost()
install_application(host1, system.Sleep(host1)) helpers_sys.install_app(host=host1, app_ty=sys_app_base.Sleep, delay=10)
# create host nic # create host nic
nic1 = sys_nic.IntelI40eNIC() nic1 = sys_nic.IntelI40eNIC()
nic1.set_ipv4("10.0.0.2") nic1.add_ipv4("10.0.0.2")
# connect host server to host client # connect host server to host client
helpers_sys.connect_host_and_device(host=host1, device=nic1) helpers_sys.connect_host_and_device(host=host1, device=nic1)
......
...@@ -24,11 +24,12 @@ ...@@ -24,11 +24,12 @@
from simbricks.orchestration import system from simbricks.orchestration import system
from simbricks.orchestration.utils import base as utils_base from simbricks.orchestration.utils import base as utils_base
def connect_host_and_device( def connect_host_and_device(
host: system.host.base.Host, device: system.base.Component host: system.Host, device: system.Component
) -> system.pcie.PCIeChannel: ) -> system.pcie.PCIeChannel:
utils_base.has_expected_type(obj=host, expected_type=system.host.base.Host) utils_base.has_expected_type(obj=host, expected_type=system.Host)
utils_base.has_expected_type(obj=device, expected_type=system.base.Component) utils_base.has_expected_type(obj=device, expected_type=system.Component)
host_interface = system.pcie.PCIeHostInterface(c=host) host_interface = system.pcie.PCIeHostInterface(c=host)
host.add_if(interface=host_interface) host.add_if(interface=host_interface)
...@@ -40,9 +41,11 @@ def connect_host_and_device( ...@@ -40,9 +41,11 @@ def connect_host_and_device(
return pcie_channel return pcie_channel
def connect_eth_devices(device_a: system.base.Component, device_b: system.base.Component) -> system.eth.EthChannel: def connect_eth_devices(
utils_base.has_expected_type(obj=device_a, expected_type=system.base.Component) device_a: system.Component, device_b: system.Component
utils_base.has_expected_type(obj=device_b, expected_type=system.base.Component) ) -> system.EthChannel:
utils_base.has_expected_type(obj=device_a, expected_type=system.Component)
utils_base.has_expected_type(obj=device_b, expected_type=system.Component)
eth_inter_a = system.eth.EthInterface(c=device_a) eth_inter_a = system.eth.EthInterface(c=device_a)
device_a.add_if(interface=eth_inter_a) device_a.add_if(interface=eth_inter_a)
...@@ -52,3 +55,15 @@ def connect_eth_devices(device_a: system.base.Component, device_b: system.base.C ...@@ -52,3 +55,15 @@ def connect_eth_devices(device_a: system.base.Component, device_b: system.base.C
eth_channel = system.eth.EthChannel(a=eth_inter_a, b=eth_inter_b) eth_channel = system.eth.EthChannel(a=eth_inter_a, b=eth_inter_b)
return eth_channel return eth_channel
def install_app(
host: system.Host, app_ty: system.Application, **kwargs
) -> system.Application:
utils_base.has_expected_type(obj=host, expected_type=system.Host)
utils_base.has_expected_type(obj=app_ty, expected_type=system.Application)
application = app_ty(h=host, **kwargs)
host.add_app(a=application)
return application
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment