luci-base: add luci.util.ubus()
Add luci.util.ubus() convenience wrapper which establishes a connection on the first call. Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
This commit is contained in:
parent
00da2bbbd2
commit
eb8560061a
1 changed files with 26 additions and 0 deletions
|
@ -30,6 +30,9 @@ local string = require "string"
|
|||
local coroutine = require "coroutine"
|
||||
local tparser = require "luci.template.parser"
|
||||
|
||||
local _ubus = require "ubus"
|
||||
local _ubus_connection = nil
|
||||
|
||||
local getmetatable, setmetatable = getmetatable, setmetatable
|
||||
local rawget, rawset, unpack = rawget, rawset, unpack
|
||||
local tostring, type, assert = tostring, type, assert
|
||||
|
@ -704,6 +707,29 @@ function execl(command)
|
|||
return data
|
||||
end
|
||||
|
||||
--- Issue an ubus call.
|
||||
-- @param object String containing the ubus object to call
|
||||
-- @param method String containing the ubus method to call
|
||||
-- @param values Table containing the values to pass
|
||||
-- @return Table containin the ubus result
|
||||
function ubus(object, method, data)
|
||||
if not _ubus_connection then
|
||||
_ubus_connection = _ubus.connect()
|
||||
assert(_ubus_connection, "Unable to establish ubus connection")
|
||||
end
|
||||
|
||||
if object and method then
|
||||
if type(data) ~= "table" then
|
||||
data = { }
|
||||
end
|
||||
return _ubus_connection:call(object, method, data)
|
||||
elseif object then
|
||||
return _ubus_connection:signatures(object)
|
||||
else
|
||||
return _ubus_connection:objects()
|
||||
end
|
||||
end
|
||||
|
||||
--- Returns the absolute path to LuCI base directory.
|
||||
-- @return String containing the directory path
|
||||
function libpath()
|
||||
|
|
Loading…
Reference in a new issue