From 34e69abedb61b293dee097e67ecda45457da1b75 Mon Sep 17 00:00:00 2001
From: Christian Poessinger <christian@poessinger.com>
Date: Tue, 20 Aug 2019 11:54:12 +0200
Subject: 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.
---
 python/vyos/interfaces.py | 11 +++++++++++
 1 file changed, 11 insertions(+)

(limited to 'python')

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))
-- 
cgit v1.2.3