diff options
author | Christian Poessinger <christian@poessinger.com> | 2019-08-20 11:54:12 +0200 |
---|---|---|
committer | Christian Poessinger <christian@poessinger.com> | 2019-08-20 11:55:07 +0200 |
commit | 34e69abedb61b293dee097e67ecda45457da1b75 (patch) | |
tree | 8f454d8396e041426c4dcd1513be8be2f70bb077 | |
parent | dc0f641956d002fa8588ef8d1213791cf36e92f2 (diff) | |
download | vyos-1x-34e69abedb61b293dee097e67ecda45457da1b75.tar.gz vyos-1x-34e69abedb61b293dee097e67ecda45457da1b75.zip |
vyos.interfaces: T1595: add method to query for interface type
As of now we only could list the available interfaces for a given interface
type. There was no reverse mapping available which told us that interface
eth0.201 is an ethernet interface or vtun0 is openvpn.
-rw-r--r-- | python/vyos/interfaces.py | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/python/vyos/interfaces.py b/python/vyos/interfaces.py index 2e8ee4feb..d69ce9d04 100644 --- a/python/vyos/interfaces.py +++ b/python/vyos/interfaces.py @@ -43,3 +43,14 @@ def list_interfaces_of_type(typ): else: r = re.compile('^{0}\d+'.format(types_data[typ])) return list(filter(lambda i: re.match(r, i), all_intfs)) + +def get_type_of_interface(intf): + with open(intf_type_data_file, 'r') as f: + types_data = json.load(f) + + for key,val in types_data.items(): + r = re.compile('^{0}\d+'.format(val)) + if re.match(r, intf): + return key + + raise ValueError("No type found for interface name: {0}".format(intf)) |