Add 'ip neigh' to ip_lib
This change adds 'ip neigh add' and 'ip neigh delete' as Ip Device commands Partially-Implements: blueprint neutron-ovs-dvr Change-Id: I59428e2fe28c6a632c232b47cc46c097c281f253
This commit is contained in:
parent
3b76d39618
commit
5ce4c0df8a
@ -192,6 +192,7 @@ class IPDevice(SubProcessBase):
|
|||||||
self.link = IpLinkCommand(self)
|
self.link = IpLinkCommand(self)
|
||||||
self.addr = IpAddrCommand(self)
|
self.addr = IpAddrCommand(self)
|
||||||
self.route = IpRouteCommand(self)
|
self.route = IpRouteCommand(self)
|
||||||
|
self.neigh = IpNeighCommand(self)
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
return (other is not None and self.name == other.name
|
return (other is not None and self.name == other.name
|
||||||
@ -439,6 +440,30 @@ class IpRouteCommand(IpDeviceCommandBase):
|
|||||||
'dev', device)
|
'dev', device)
|
||||||
|
|
||||||
|
|
||||||
|
class IpNeighCommand(IpDeviceCommandBase):
|
||||||
|
COMMAND = 'neigh'
|
||||||
|
|
||||||
|
def add(self, ip_version, ip_address, mac_address):
|
||||||
|
self._as_root('add',
|
||||||
|
ip_address,
|
||||||
|
'lladdr',
|
||||||
|
mac_address,
|
||||||
|
'nud',
|
||||||
|
'permanent',
|
||||||
|
'dev',
|
||||||
|
self.name,
|
||||||
|
options=[ip_version])
|
||||||
|
|
||||||
|
def delete(self, ip_version, ip_address, mac_address):
|
||||||
|
self._as_root('del',
|
||||||
|
ip_address,
|
||||||
|
'lladdr',
|
||||||
|
mac_address,
|
||||||
|
'dev',
|
||||||
|
self.name,
|
||||||
|
options=[ip_version])
|
||||||
|
|
||||||
|
|
||||||
class IpNetnsCommand(IpCommandBase):
|
class IpNetnsCommand(IpCommandBase):
|
||||||
COMMAND = 'netns'
|
COMMAND = 'netns'
|
||||||
|
|
||||||
|
@ -799,3 +799,22 @@ class TestDeviceExists(base.BaseTestCase):
|
|||||||
# device doesn't exists
|
# device doesn't exists
|
||||||
ip_lib_mock.link.set_up.side_effect = RuntimeError
|
ip_lib_mock.link.set_up.side_effect = RuntimeError
|
||||||
self.assertFalse(ip_lib.ensure_device_is_ready("eth0"))
|
self.assertFalse(ip_lib.ensure_device_is_ready("eth0"))
|
||||||
|
|
||||||
|
|
||||||
|
class TestIpNeighCommand(TestIPCmdBase):
|
||||||
|
def setUp(self):
|
||||||
|
super(TestIpNeighCommand, self).setUp()
|
||||||
|
self.parent.name = 'tap0'
|
||||||
|
self.command = 'neigh'
|
||||||
|
self.neigh_cmd = ip_lib.IpNeighCommand(self.parent)
|
||||||
|
|
||||||
|
def test_add_entry(self):
|
||||||
|
self.neigh_cmd.add(4, '192.168.45.100', 'cc:dd:ee:ff:ab:cd')
|
||||||
|
self._assert_sudo([4], ('add', '192.168.45.100', 'lladdr',
|
||||||
|
'cc:dd:ee:ff:ab:cd', 'nud', 'permanent',
|
||||||
|
'dev', 'tap0'))
|
||||||
|
|
||||||
|
def test_delete_entry(self):
|
||||||
|
self.neigh_cmd.delete(4, '192.168.45.100', 'cc:dd:ee:ff:ab:cd')
|
||||||
|
self._assert_sudo([4], ('del', '192.168.45.100', 'lladdr',
|
||||||
|
'cc:dd:ee:ff:ab:cd', 'dev', 'tap0'))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user