Skip to content

Commit b104e2c

Browse files
committed
tests: add System.del_address
Add a helper for removing a locally-assigned address. Signed-off-by: Jeremy Kerr <[email protected]>
1 parent 9ed3d1d commit b104e2c

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

tests/conftest.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,14 @@ async def add_address(self, address):
119119
if self.nl:
120120
await self.nl.notify_newaddr(address)
121121

122+
async def del_address(self, address):
123+
addr = self.lookup_address(address.iface, address.eid)
124+
if not addr:
125+
raise NetlinkError(errno.ENOENT)
126+
self.addresses.remove(addr)
127+
if self.nl:
128+
await self.nl.notify_deladdr(address)
129+
122130
async def add_neighbour(self, neigh):
123131
if self.lookup_neighbour(neigh.iface, neigh.eid):
124132
raise NetlinkError(errno.EEXIST)
@@ -166,6 +174,12 @@ def lookup_neighbour(self, iface, eid):
166174
return neighbour
167175
return None
168176

177+
def lookup_address(self, iface, eid):
178+
for address in self.addresses:
179+
if address.iface == iface and address.eid == eid:
180+
return address
181+
return None
182+
169183
def find_endpoint(self, addr):
170184
iface = None
171185
lladdr = None
@@ -725,14 +739,20 @@ async def _handle_getaddr(self, msg):
725739

726740
await self._send_msg(buf)
727741

728-
async def notify_newaddr(self, addr):
729-
msg = self._create_msg(ifaddrmsg_mctp, rtnl.RTM_NEWADDR, 0)
742+
async def _notify_addr(self, addr, typ):
743+
msg = self._create_msg(ifaddrmsg_mctp, typ, 0)
730744
self._format_addr(msg, addr)
731745
buf = bytearray()
732746
msg.encode()
733747
buf.extend(msg.data)
734748
await self._send_msg(buf)
735749

750+
async def notify_newaddr(self, addr):
751+
await self._notify_addr(addr, rtnl.RTM_NEWADDR)
752+
753+
async def notify_deladdr(self, addr):
754+
await self._notify_addr(addr, rtnl.RTM_DELADDR)
755+
736756
def _format_neigh(self, msg, neigh):
737757
msg['ifindex'] = neigh.iface.ifindex
738758
msg['attrs'] = [

0 commit comments

Comments
 (0)