gluon-luci-admin: remove backup/restore
This commit is contained in:
parent
08bc198e36
commit
3712f8795c
@ -17,51 +17,9 @@ module("luci.controller.admin.system", package.seeall)
|
|||||||
|
|
||||||
function index()
|
function index()
|
||||||
entry({"admin", "passwd"}, cbi("admin/passwd"), "Admin Password", 10)
|
entry({"admin", "passwd"}, cbi("admin/passwd"), "Admin Password", 10)
|
||||||
entry({"admin", "backup"}, call("action_backup"), "Backup / Restore", 80)
|
|
||||||
entry({"admin", "upgrade"}, call("action_upgrade"), "Flash Firmware", 90)
|
entry({"admin", "upgrade"}, call("action_upgrade"), "Flash Firmware", 90)
|
||||||
end
|
end
|
||||||
|
|
||||||
function action_backup()
|
|
||||||
local reset_avail = os.execute([[grep '"rootfs_data"' /proc/mtd >/dev/null 2>&1]]) == 0
|
|
||||||
local restore_cmd = "gunzip | tar -xC/ >/dev/null 2>&1"
|
|
||||||
local backup_cmd = "tar -c %s | gzip 2>/dev/null"
|
|
||||||
|
|
||||||
local restore_fpi
|
|
||||||
luci.http.setfilehandler(
|
|
||||||
function(meta, chunk, eof)
|
|
||||||
if not restore_fpi then
|
|
||||||
restore_fpi = io.popen(restore_cmd, "w")
|
|
||||||
end
|
|
||||||
if chunk then
|
|
||||||
restore_fpi:write(chunk)
|
|
||||||
end
|
|
||||||
if eof then
|
|
||||||
restore_fpi:close()
|
|
||||||
end
|
|
||||||
end
|
|
||||||
)
|
|
||||||
|
|
||||||
local upload = luci.http.formvalue("archive")
|
|
||||||
local backup = luci.http.formvalue("backup")
|
|
||||||
local reset = reset_avail and luci.http.formvalue("reset")
|
|
||||||
|
|
||||||
if upload and #upload > 0 then
|
|
||||||
luci.template.render("admin/applyreboot")
|
|
||||||
luci.sys.reboot()
|
|
||||||
elseif backup then
|
|
||||||
local reader = ltn12_popen(backup_cmd:format(_keep_pattern()))
|
|
||||||
luci.http.header('Content-Disposition', 'attachment; filename="backup-%s-%s.tar.gz"' % {
|
|
||||||
luci.sys.hostname(), os.date("%Y-%m-%d")})
|
|
||||||
luci.http.prepare_content("application/x-targz")
|
|
||||||
luci.ltn12.pump.all(reader, luci.http.write)
|
|
||||||
elseif reset then
|
|
||||||
luci.template.render("admin/applyreboot")
|
|
||||||
luci.util.exec("mtd -r erase rootfs_data")
|
|
||||||
else
|
|
||||||
luci.template.render("admin/backup", {reset_avail = reset_avail})
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function action_upgrade()
|
function action_upgrade()
|
||||||
require("luci.model.uci")
|
require("luci.model.uci")
|
||||||
|
|
||||||
@ -187,36 +145,6 @@ function _keep_pattern()
|
|||||||
return kpattern
|
return kpattern
|
||||||
end
|
end
|
||||||
|
|
||||||
function ltn12_popen(command)
|
|
||||||
|
|
||||||
local fdi, fdo = nixio.pipe()
|
|
||||||
local pid = nixio.fork()
|
|
||||||
|
|
||||||
if pid > 0 then
|
|
||||||
fdo:close()
|
|
||||||
local close
|
|
||||||
return function()
|
|
||||||
local buffer = fdi:read(2048)
|
|
||||||
local wpid, stat = nixio.waitpid(pid, "nohang")
|
|
||||||
if not close and wpid and stat == "exited" then
|
|
||||||
close = true
|
|
||||||
end
|
|
||||||
|
|
||||||
if buffer and #buffer > 0 then
|
|
||||||
return buffer
|
|
||||||
elseif close then
|
|
||||||
fdi:close()
|
|
||||||
return nil
|
|
||||||
end
|
|
||||||
end
|
|
||||||
elseif pid == 0 then
|
|
||||||
nixio.dup(fdo, nixio.stdout)
|
|
||||||
fdi:close()
|
|
||||||
fdo:close()
|
|
||||||
nixio.exec("/bin/sh", "-c", command)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
function fork_exec(command)
|
function fork_exec(command)
|
||||||
local pid = nixio.fork()
|
local pid = nixio.fork()
|
||||||
if pid > 0 then
|
if pid > 0 then
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
<%#
|
|
||||||
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$
|
|
||||||
|
|
||||||
-%>
|
|
||||||
<%+header%>
|
|
||||||
<h2><a id="content" name="content">System</a></h2>
|
|
||||||
<br />
|
|
||||||
<p><% if msg then %><%=msg%><% else %>Changes applied.<% end %></p>
|
|
||||||
<p>Please wait: Device rebooting...</p>
|
|
||||||
<script type="text/javascript">setTimeout("location='<%=controller%>'", 60000)</script>
|
|
||||||
<%+footer%>
|
|
@ -1,39 +0,0 @@
|
|||||||
<%#
|
|
||||||
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$
|
|
||||||
|
|
||||||
-%>
|
|
||||||
<%+header%>
|
|
||||||
<h2><a id="content" name="content">Backup / Restore</a></h2>
|
|
||||||
<p>Here you can backup and restore your configuration and - if possible - reset this device to the default settings.</p>
|
|
||||||
<br />
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
<li><a href="<%=REQUEST_URI%>?backup=kthxbye">Create backup</a></li>
|
|
||||||
<% if reset_avail then -%>
|
|
||||||
<li><a href="<%=REQUEST_URI%>?reset=yarly" onclick="return confirm('Proceed reverting all settings and resetting to firmware defaults?')">Reset this device to defaults</a></li>
|
|
||||||
<% end -%>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br />
|
|
||||||
|
|
||||||
<form method="post" action="<%=REQUEST_URI%>" enctype="multipart/form-data">
|
|
||||||
<div class="left">Backup Archive:</div>
|
|
||||||
<div>
|
|
||||||
<input type="file" size="30" name="archive" />
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input type="submit" class="cbi-button cbi-input-apply" value="Restore backup" />
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<%+footer%>
|
|
Loading…
Reference in New Issue
Block a user