From d5ffab23b65fc37719752d122e0d37b38f471870 Mon Sep 17 00:00:00 2001 From: Jo-Philipp Wich Date: Fri, 18 Oct 2019 11:49:13 +0200 Subject: luci-base: network.js: simplify rpc error handling Use L.resolveDefault() catch unexpected RPC replies and rename declared rpc functions in a consistent manner. Signed-off-by: Jo-Philipp Wich --- .../htdocs/luci-static/resources/network.js | 110 ++++----------------- 1 file changed, 21 insertions(+), 89 deletions(-) (limited to 'modules') diff --git a/modules/luci-base/htdocs/luci-static/resources/network.js b/modules/luci-base/htdocs/luci-static/resources/network.js index 30d508df2..c5b0c3027 100644 --- a/modules/luci-base/htdocs/luci-static/resources/network.js +++ b/modules/luci-base/htdocs/luci-static/resources/network.js @@ -44,13 +44,13 @@ var iface_patterns_wireless = [ var iface_patterns_virtual = [ ]; -var callLuciNetdevs = rpc.declare({ +var callLuciNetworkDevices = rpc.declare({ object: 'luci', method: 'getNetworkDevices', expect: { '': {} } }); -var callLuciWifidevs = rpc.declare({ +var callLuciWirelessDevices = rpc.declare({ object: 'luci', method: 'getWirelessDevices', expect: { '': {} } @@ -62,11 +62,17 @@ var callLuciIfaddrs = rpc.declare({ expect: { result: [] } }); -var callLuciBoardjson = rpc.declare({ +var callLuciBoardJSON = rpc.declare({ object: 'luci', method: 'getBoardJSON' }); +var callLuciHostHints = rpc.declare({ + object: 'luci', + method: 'getHostHints', + expect: { '': {} } +}); + var callIwinfoAssoclist = rpc.declare({ object: 'iwinfo', method: 'assoclist', @@ -82,7 +88,7 @@ var callIwinfoScan = rpc.declare({ expect: { results: [] } }); -var callNetworkInterfaceStatus = rpc.declare({ +var callNetworkInterfaceDump = rpc.declare({ object: 'network.interface', method: 'dump', expect: { 'interface': [] } @@ -94,88 +100,19 @@ var callNetworkDeviceStatus = rpc.declare({ expect: { '': {} } }); -var callGetProtoHandlers = rpc.declare({ +var callNetworkProtoHandlers = rpc.declare({ object: 'network', method: 'get_proto_handlers', expect: { '': {} } }); -var callGetHostHints = rpc.declare({ - object: 'luci', - method: 'getHostHints', - expect: { '': {} } -}); - var _init = null, _state = null, _protocols = {}, _protospecs = {}; -function getInterfaceState(cache) { - return callNetworkInterfaceStatus().then(function(state) { - if (!Array.isArray(state)) - throw !1; - return state; - }).catch(function() { - return []; - }); -} - -function getDeviceState(cache) { - return callNetworkDeviceStatus().then(function(state) { - if (!L.isObject(state)) - throw !1; - return state; - }).catch(function() { - return {}; - }); -} - -function getIfaddrState(cache) { - return callLuciIfaddrs().then(function(addrs) { - if (!Array.isArray(addrs)) - throw !1; - return addrs; - }).catch(function() { - return []; - }); -} - -function getNetdevState(cache) { - return callLuciNetdevs().then(function(state) { - if (!L.isObject(state)) - throw !1; - return state; - }).catch(function() { - return {}; - }); -} - -function getWifidevState(cache) { - return callLuciWifidevs().then(function(state) { - if (!L.isObject(state)) - throw !1; - return state; - }).catch(function() { - return {}; - }); -} - -function getBoardState(cache) { - return callLuciBoardjson().then(function(state) { - if (!L.isObject(state)) - throw !1; - return state; - }).catch(function() { - return {}; - }); -} - function getProtocolHandlers(cache) { - return callGetProtoHandlers().then(function(protos) { - if (!L.isObject(protos)) - throw !1; - + return callNetworkProtoHandlers().then(function(protos) { /* Register "none" protocol */ if (!protos.hasOwnProperty('none')) Object.assign(protos, { none: { no_device: false } }); @@ -199,16 +136,6 @@ function getProtocolHandlers(cache) { }); } -function getHostHints(cache) { - return callGetHostHints().then(function(hosts) { - if (!L.isObject(hosts)) - throw !1; - return hosts; - }).catch(function() { - return {}; - }); -} - function getWifiStateBySid(sid) { var s = uci.get('wireless', sid); @@ -433,10 +360,15 @@ function maskToPrefix(mask, v6) { function initNetworkState(refresh) { if (_state == null || refresh) { _init = _init || Promise.all([ - getInterfaceState(), getDeviceState(), getBoardState(), - getIfaddrState(), getNetdevState(), getWifidevState(), - getHostHints(), getProtocolHandlers(), - uci.load('network'), uci.load('wireless'), uci.load('luci') + L.resolveDefault(callNetworkInterfaceDump(), []), + L.resolveDefault(callNetworkDeviceStatus(), {}), + L.resolveDefault(callLuciBoardJSON(), {}), + L.resolveDefault(callLuciIfaddrs(), []), + L.resolveDefault(callLuciNetworkDevices(), {}), + L.resolveDefault(callLuciWirelessDevices(), {}), + L.resolveDefault(callLuciHostHints(), {}), + getProtocolHandlers(), + uci.load(['network', 'wireless', 'luci']) ]).then(function(data) { var netifd_ifaces = data[0], netifd_devs = data[1], -- cgit v1.2.3