mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-30 04:33:00 +02:00
42 lines
1.2 KiB
Python
Executable File
42 lines
1.2 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""DHCP Basic
|
|
|
|
This is a very basic DHCP test that requests an IPv4 lease
|
|
from a DHCP server and checks that the lease is set on the
|
|
interface.
|
|
|
|
"""
|
|
|
|
import infamy, infamy.dhcp
|
|
import infamy.iface as iface
|
|
from infamy.util import until
|
|
|
|
with infamy.Test() as test:
|
|
ADDRESS = '10.0.0.42'
|
|
|
|
with test.step("Initialize"):
|
|
env = infamy.Env()
|
|
client = env.attach("client", "mgmt")
|
|
_, host = env.ltop.xlate("host", "data")
|
|
|
|
with infamy.IsolatedMacVlan(host) as netns:
|
|
netns.addip("10.0.0.1")
|
|
with infamy.dhcp.Server(netns, ip=ADDRESS):
|
|
_, port = env.ltop.xlate("client", "data")
|
|
config = {
|
|
"interfaces": {
|
|
"interface": [{
|
|
"name": f"{port}",
|
|
"ipv4": {
|
|
"infix-dhcp-client:dhcp": {}
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
client.put_config_dicts({"ietf-interfaces": config})
|
|
|
|
with test.step("Verify client lease for 10.0.0.42"):
|
|
until(lambda: iface.address_exist(client, port, ADDRESS), attempts=60)
|
|
|
|
test.succeed()
|