luci-app-advanced-reboot: bugfix: luci error on reboot, logger errors 3333/head
authorStan Grishin <stangri@melmac.net>
Tue, 19 Nov 2019 16:54:08 +0000 (09:54 -0700)
committerStan Grishin <stangri@melmac.net>
Tue, 19 Nov 2019 16:54:08 +0000 (09:54 -0700)
Signed-off-by: Stan Grishin <stangri@melmac.net>
applications/luci-app-advanced-reboot/Makefile
applications/luci-app-advanced-reboot/luasrc/controller/advanced_reboot.lua
applications/luci-app-advanced-reboot/luasrc/view/advanced_reboot/applyreboot.htm

index a08d57fd8b12425a9e3074d07c1210def7a2997f..e3037df2f8ba5d528aa925a945bd29a52de15f77 100644 (file)
@@ -13,7 +13,7 @@ LUCI_DESCRIPTION:=Provides Web UI (found under System/Advanced Reboot) to reboot
 
 LUCI_DEPENDS:=+luci-compat +luci-mod-admin-full
 LUCI_PKGARCH:=all
-PKG_RELEASE:=43
+PKG_RELEASE:=45
 
 include ../../luci.mk
 
index 8b97f2e560b7b1eddcffd2f58a89c77b5b162fe5..e1e63bcbf8a61c54b1812a8827e99042d5e4ca67 100644 (file)
@@ -45,7 +45,6 @@ end
 function alt_partition_mount(op_ubi)
        local ubi_dev
        util.exec('for i in rom overlay firmware; do [ ! -d "$i" ] && mkdir -p "/alt/${i}"; done')
-       util.exec("ubidetach -m " .. tostring(op_ubi))
        ubi_dev = tostring(util.exec("ubiattach -m " .. tostring(op_ubi)))
        _, _, ubi_dev = ubi_dev:find("UBI device number (%d+)")
        if not ubi_dev then 
@@ -54,17 +53,23 @@ function alt_partition_mount(op_ubi)
        end
        util.exec("ubiblock --create /dev/ubi" .. ubi_dev .. "_0")
        util.exec("mount -t squashfs -o ro /dev/ubiblock" .. ubi_dev .. "_0 /alt/rom")
-       util.exec("mount -t ubifs /dev/ubi1_" .. ubi_dev .. " /alt/overlay")
-       util.exec("mount -t overlay overlay -o noatime,lowerdir=/alt/rom,upperdir=/alt/overlay/upper,workdir=/alt/overlay/work /alt/firmware")
+       util.exec("mount -t ubifs /dev/ubi" .. ubi_dev .. "_1 /alt/overlay")
+--     util.exec("mount -t overlay overlay -o noatime,lowerdir=/alt/rom,upperdir=/alt/overlay/upper,workdir=/alt/overlay/work /alt/firmware")
 end
 
 function alt_partition_unmount(op_ubi)
-       util.exec("umount /alt/firmware")
-       util.exec("umount /alt/overlay")
-       util.exec("umount /alt/rom")
-       util.exec("ubiblock --remove /dev/ubi1_0")
-       util.exec("ubidetach -m " .. tostring(op_ubi))
-       util.exec('rm -rf /alt')
+--     util.exec("[ -d /alt/firmware ] && umount /alt/firmware")
+       util.exec("[ -d /alt/overlay ] && umount /alt/overlay")
+       util.exec("[ -d /alt/rom ] && umount /alt/rom")
+       for i = 0, 10 do
+               if not fs.access("/sys/devices/virtual/ubi/ubi" .. tostring(i) .. "/mtd_num") then break end
+               ubi_mtd =  tonumber(util.trim(util.exec("cat /sys/devices/virtual/ubi/ubi" .. i .. "/mtd_num")))
+               if ubi_mtd and ubi_mtd == op_ubi then
+                       util.exec("ubiblock --remove /dev/ubi" .. tostring(i) .. "_0")
+                       util.exec("ubidetach -m " .. tostring(op_ubi))
+                       util.exec('rm -rf /alt')
+               end
+       end
 end
 
 devices = {
@@ -169,7 +174,7 @@ function index()
 end
 
 function action_reboot()
-       ltemplate.render("admin_system/applyreboot", {
+       ltemplate.render("advanced_reboot/applyreboot", {
                                title = i18n.translate("Rebooting..."),
                                msg   = i18n.translate("The system is rebooting now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
                                addr  = ip.new(type(ip) == "string" and ip or "192.168.1.1") or "192.168.1.1"
@@ -240,7 +245,7 @@ function action_altreboot()
                        end
                end
                if not errorMessage then
-                       ltemplate.render("admin_system/applyreboot", {
+                       ltemplate.render("advanced_reboot/applyreboot", {
                                                title = i18n.translate("Rebooting..."),
                                                msg   = i18n.translate("The system is rebooting to an alternative partition now.<br /> DO NOT POWER OFF THE DEVICE!<br /> Wait a few minutes before you try to reconnect. It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
                                                addr  = ip.new(uci:get("network", "lan", "ipaddr")) or "192.168.1.1"
@@ -274,7 +279,7 @@ function action_poweroff()
                        ltemplate.render("advanced_reboot/advanced_reboot",{})
                end
        elseif step == 2 then
-               ltemplate.render("admin_system/applyreboot", {
+               ltemplate.render("advanced_reboot/applyreboot", {
                                        title = i18n.translate("Shutting down..."),
                                        msg   = i18n.translate("The system is shutting down now.<br /> DO NOT POWER OFF THE DEVICE!<br /> It might be necessary to renew the address of your computer to reach the device again, depending on your settings."),
                                        addr  = ip.new(uci:get("network", "lan", "ipaddr")) or "192.168.1.1"
index e235bd467993315d3aa0805c25ca260e2fa3a030..94ac36bd7013e4a28fdf525a723a96771ddb2ae3 100644 (file)
@@ -7,8 +7,8 @@
 <html>
        <head>
                <title><%=luci.sys.hostname()%> - <%= title or translate("Rebooting...") %></title>
-               <link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css" />
-               <script type="text/javascript" src="<%=resource%>/xhr.js"></script>
+               <link rel="stylesheet" type="text/css" media="screen" href="<%=media%>/cascade.css?v=git-19.271.68204-f8775ee" />
+               <script type="text/javascript" src="<%=resource%>/xhr.js?v=git-19.271.68204-f8775ee"></script>
                <script type="text/javascript">//<![CDATA[
                        var interval = window.setInterval(function() {
                                var img = new Image();