Add get_by_bvi_name() and add a few hints on the difference between 'bridgename' (bd*) and 'bvi interfacename' (bvi*)
This commit is contained in:
@ -36,8 +36,23 @@ def get_by_lcp_name(yaml, lcpname):
|
|||||||
return None,None
|
return None,None
|
||||||
|
|
||||||
|
|
||||||
|
def get_by_bvi_name(yaml, ifname):
|
||||||
|
""" Return the BridgeDomain by BVI interface name (bvi*), if it exists. Return None,None otherwise. """
|
||||||
|
|
||||||
|
if not ifname.startswith("bvi"):
|
||||||
|
return None,None
|
||||||
|
idx = ifname[3:]
|
||||||
|
if not idx.isnumeric():
|
||||||
|
return None,None
|
||||||
|
|
||||||
|
bridgename = "bd%d" % int(idx)
|
||||||
|
if bridgename in yaml['bridgedomains'] and 'lcp' in yaml['bridgedomains'][bridgename]:
|
||||||
|
return bridgename, yaml['bridgedomains'][bridgename]
|
||||||
|
return None, None
|
||||||
|
|
||||||
|
|
||||||
def get_by_name(yaml, ifname):
|
def get_by_name(yaml, ifname):
|
||||||
""" Return the BridgeDomain by name, if it exists. Return None,None otherwise. """
|
""" Return the BridgeDomain by name (bd*), if it exists. Return None,None otherwise. """
|
||||||
try:
|
try:
|
||||||
if ifname in yaml['bridgedomains']:
|
if ifname in yaml['bridgedomains']:
|
||||||
return ifname, yaml['bridgedomains'][ifname]
|
return ifname, yaml['bridgedomains'][ifname]
|
||||||
@ -47,19 +62,15 @@ def get_by_name(yaml, ifname):
|
|||||||
|
|
||||||
|
|
||||||
def is_bridgedomain(yaml, ifname):
|
def is_bridgedomain(yaml, ifname):
|
||||||
""" Returns True if the name is an existing bridgedomain (ie bd[0-9]+). """
|
""" Returns True if the name (bd*) is an existing bridgedomain. """
|
||||||
ifname, iface = get_by_name(yaml, ifname)
|
ifname, iface = get_by_name(yaml, ifname)
|
||||||
return not iface == None
|
return not iface == None
|
||||||
|
|
||||||
|
|
||||||
def is_bvi(yaml, ifname):
|
def is_bvi(yaml, ifname):
|
||||||
""" Returns True if the interface name is an existing BVI. """
|
""" Returns True if the interface name (bvi*) is an existing BVI. """
|
||||||
if not ifname.startswith("bvi"):
|
|
||||||
return False
|
bridgename, bridge = get_by_bvi_name(yaml, ifname)
|
||||||
idx = ifname[3:]
|
|
||||||
if not idx.isnumeric():
|
|
||||||
return False
|
|
||||||
bridgename, bridge = get_by_name(yaml, "bd%d" % (int(idx)))
|
|
||||||
if not bridge:
|
if not bridge:
|
||||||
return False
|
return False
|
||||||
|
|
||||||
|
@ -16,6 +16,19 @@ class TestBridgeDomainMethods(unittest.TestCase):
|
|||||||
self.assertIsNone(iface)
|
self.assertIsNone(iface)
|
||||||
self.assertIsNone(ifname)
|
self.assertIsNone(ifname)
|
||||||
|
|
||||||
|
def test_get_by_bvi_name(self):
|
||||||
|
ifname, iface = bridgedomain.get_by_bvi_name(self.cfg, "bvi11")
|
||||||
|
self.assertEqual("bd11", ifname)
|
||||||
|
self.assertIsNotNone(iface)
|
||||||
|
|
||||||
|
ifname, iface = bridgedomain.get_by_bvi_name(self.cfg, "bvi10")
|
||||||
|
self.assertIsNone(ifname)
|
||||||
|
self.assertIsNone(iface)
|
||||||
|
|
||||||
|
ifname, iface = bridgedomain.get_by_bvi_name(self.cfg, "bd11")
|
||||||
|
self.assertIsNone(ifname)
|
||||||
|
self.assertIsNone(iface)
|
||||||
|
|
||||||
def test_get_by_name(self):
|
def test_get_by_name(self):
|
||||||
ifname, iface = bridgedomain.get_by_name(self.cfg, "bd10")
|
ifname, iface = bridgedomain.get_by_name(self.cfg, "bd10")
|
||||||
self.assertIsNotNone(iface)
|
self.assertIsNotNone(iface)
|
||||||
|
Reference in New Issue
Block a user