Fixed JSON-RPC API, added uvl API-Bindings

This commit is contained in:
Steven Barth 2008-09-05 15:38:53 +00:00
parent 94996dd639
commit 1358f954a7
2 changed files with 65 additions and 22 deletions

View file

@ -33,27 +33,17 @@ function index()
luci.http.status(403, "Forbidden")
end
uci = entry({"rpc", "uci"}, call("rpc_uci"))
uci.sysauth = "root"
uci.sysauth_authenticator = authenticator
uci.notemplate = true
local rpc = node("rpc")
rpc.sysauth = "root"
rpc.sysauth_authenticator = authenticator
rpc.notemplate = true
fs = entry({"rpc", "fs"}, call("rpc_fs"))
fs.sysauth = "root"
fs.sysauth_authenticator = authenticator
fs.notemplate = true
sys = entry({"rpc", "sys"}, call("rpc_sys"))
sys.sysauth = "root"
sys.sysauth_authenticator = authenticator
sys.notemplate = true
ipkg = entry({"rpc", "ipkg"}, call("rpc_ipkg"))
ipkg.sysauth = "root"
ipkg.sysauth_authenticator = authenticator
ipkg.notemplate = true
entry({"rpc", "auth"}, call("rpc_auth")).notemplate = true
entry({"rpc", "uci"}, call("rpc_uci"))
entry({"rpc", "uvl"}, call("rpc_uvl"))
entry({"rpc", "fs"}, call("rpc_fs"))
entry({"rpc", "sys"}, call("rpc_sys"))
entry({"rpc", "ipkg"}, call("rpc_ipkg"))
entry({"rpc", "auth"}, call("rpc_auth")).sysauth = false
end
function rpc_auth()
@ -63,8 +53,6 @@ function rpc_auth()
local sys = require "luci.sys"
local ltn12 = require "luci.ltn12"
http.setfilehandler()
local loginstat
local server = {}
@ -98,6 +86,20 @@ function rpc_uci()
ltn12.pump.all(jsonrpc.handle(uci, http.source()), http.write)
end
function rpc_uvl()
if not pcall(require, "luci.uvl") then
luci.http.status(404, "Not Found")
return nil
end
local uvl = require "luci.controller.rpc.uvl"
local jsonrpc = require "luci.jsonrpc"
local http = require "luci.http"
local ltn12 = require "luci.ltn12"
http.prepare_content("application/json")
ltn12.pump.all(jsonrpc.handle(uvl, http.source()), http.write)
end
function rpc_fs()
local util = require "luci.util"
local io = require "io"

View file

@ -0,0 +1,41 @@
--[[
LuCI - Lua Configuration Interface
Copyright 2008 Steven Barth <steven@midlink.org>
Copyright 2008 Jo-Philipp Wich <xm@leipzig.freifunk.net>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
$Id$
]]--
local uvl = require "luci.model.uvl".UVL()
local table = require "table"
module "luci.controller.rpc.uvl"
_M, _PACKAGE, _NAME = nil, nil, nil
function get_scheme(...)
return uvl:get_scheme(...)
end
function validate(...)
return uvl:validate(...)
end
function validate_config(...)
return uvl:validate_config(...)
end
function validate_section(...)
return uvl:validate_section(...)
end
function validate_option(...)
return uvl:validate_option(...)
end