luci-base: additionally return error code strings in luci.util.ubus()

Add a 3rd return value to luci.util.ubus() containing the string value
of the error return value.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
This commit is contained in:
Jo-Philipp Wich 2018-04-24 19:22:55 +02:00
parent 914c661b58
commit 11f4a50b3f

View file

@ -631,6 +631,20 @@ function execl(command)
return data
end
local ubus_codes = {
"INVALID_COMMAND",
"INVALID_ARGUMENT",
"METHOD_NOT_FOUND",
"NOT_FOUND",
"NO_DATA",
"PERMISSION_DENIED",
"TIMEOUT",
"NOT_SUPPORTED",
"UNKNOWN_ERROR",
"CONNECTION_FAILED"
}
function ubus(object, method, data)
if not _ubus_connection then
_ubus_connection = _ubus.connect()
@ -641,7 +655,8 @@ function ubus(object, method, data)
if type(data) ~= "table" then
data = { }
end
return _ubus_connection:call(object, method, data)
local rv, err = _ubus_connection:call(object, method, data)
return rv, err, ubus_codes[err]
elseif object then
return _ubus_connection:signatures(object)
else