luci-mod-admin-full: fallback to generic switch topology
authorJo-Philipp Wich <jo@mein.io>
Thu, 18 Aug 2016 07:23:28 +0000 (09:23 +0200)
committerJo-Philipp Wich <jo@mein.io>
Thu, 18 Aug 2016 07:23:32 +0000 (09:23 +0200)
Use a generic default topology if we cannot infer switch information from
board.json and display an error message in this case. Should fix #779 and
similar issues.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
modules/luci-mod-admin-full/luasrc/model/cbi/admin_network/vlan.lua

index 20715f0ed8a5826d470ecf259f1b2a5a9c3004a2..902767c903826d8aa3303012c0b1a4b3dcd0a9e1 100644 (file)
@@ -30,9 +30,23 @@ m.uci:foreach("network", "switch",
 
                local topo = topologies[switch_name]
 
+               if not topo then
+                       m.message = translatef("Switch %q has an unknown topology - the VLAN settings might not be accurate.", switch_name)
+                       topo = {
+                               ports = {
+                                       { num = 0, label = "Port 1" },
+                                       { num = 1, label = "Port 2" },
+                                       { num = 2, label = "Port 3" },
+                                       { num = 3, label = "Port 4" },
+                                       { num = 4, label = "Port 5" },
+                                       { num = 5, label = "CPU (eth0)", tagged = false }
+                               }
+                       }
+               end
+
                -- Parse some common switch properties from swconfig help output.
                local swc = io.popen("swconfig dev %q help 2>/dev/null" % switch_name)
-               if swc and topo then
+               if swc then
 
                        local is_port_attr = false
                        local is_vlan_attr = false