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 coroutine = require "coroutine"
|
||||||
local tparser = require "luci.template.parser"
|
local tparser = require "luci.template.parser"
|
||||||
|
|
||||||
|
local _ubus = require "ubus"
|
||||||
|
local _ubus_connection = nil
|
||||||
|
|
||||||
local getmetatable, setmetatable = getmetatable, setmetatable
|
local getmetatable, setmetatable = getmetatable, setmetatable
|
||||||
local rawget, rawset, unpack = rawget, rawset, unpack
|
local rawget, rawset, unpack = rawget, rawset, unpack
|
||||||
local tostring, type, assert = tostring, type, assert
|
local tostring, type, assert = tostring, type, assert
|
||||||
|
@ -704,6 +707,29 @@ function execl(command)
|
||||||
return data
|
return data
|
||||||
end
|
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.
|
--- Returns the absolute path to LuCI base directory.
|
||||||
-- @return String containing the directory path
|
-- @return String containing the directory path
|
||||||
function libpath()
|
function libpath()
|
||||||
|
|
Loading…
Reference in a new issue