[RFC,13/15] fff-web: Add downgrade interface to upgrade.html

Submitted by Adrian Schmutzler on July 26, 2017, 7:49 p.m.

Details

Message ID 1501098543-26815-2-git-send-email-freifunk@adrianschmutzler.de
State Superseded
Headers show

Commit Message

Adrian Schmutzler July 26, 2017, 7:49 p.m.
This includes some XHTML conformity fixes

Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>

Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
---
 .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 35 ++++++++++++++++++----
 1 file changed, 29 insertions(+), 6 deletions(-)

Patch hide | download patch | download mbox

diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
index a0dc5b3..7314047 100755
--- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
+++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
@@ -18,6 +18,9 @@  if [ "$REQUEST_METHOD" == "POST" ] ; then
 		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ; then
 			MSG="<span class=\"red\">Firmware Datei ung&uuml;ltig: <tt>${error}</tt></span>"
 		else
+			if [ "$POST_pre_downgrade" == "on" ] ; then
+				/usr/sbin/prepare_firmware_downgrade.sh
+			fi
 			if [ "$POST_keep_config" == "on" ] ; then
 				args=""
 			else
@@ -26,23 +29,43 @@  if [ "$REQUEST_METHOD" == "POST" ] ; then
 			do_sysupgrade=1
 			MSG='<span class="green">Firmware Upgrade wird gestartet...</span>'
 		fi
+	elif [ "$POST_downgrade" != "" ] ; then
+		# downgrade preparation script
+		/usr/sbin/prepare_firmware_downgrade.sh
+		MSG='<span class="green">Firmware-Downgrade-Vorbereitung durchgeführt.</span>'
 	fi
 fi
+if grep -q '/etc/config/system' /etc/sysupgrade.conf 2> /dev/null ; then
+	downgrade_text='<p>&gt; <span style="color:green">Downgrade wurde bereits vorbereitet.</span></p>'
+else
+	downgrade_text='<p>&gt; <span style="color:red">Downgrade muss durch Klicken auf "Skript ausf&uuml;hren" vorbereitet werden.</span></p>'
+fi
+
 %>
 <%in /www/ssl/cgi-bin/header %>
 <%in /www/ssl/cgi-bin/helpers %>
 <% show_msg %>
-<form method="POST" enctype="multipart/form-data">
+<form method="post" enctype="multipart/form-data">
 <table style="width: 100%;">
 <tr><td>
 <fieldset style="min-height: 9em;">
 	<legend>Manuelles Upgrade</legend>
 	<table>
-		<tr><th style="width: 1em;">Firmware&nbsp;Image:</th><td><input type="file" name="firmware" /></td></tr>
-		<tr><th>Konfiguration&nbsp;erhalten:</th><td><input type="checkbox" name="keep_config" checked /></td></tr>
-		<tr><td colspan="2"><input type="submit" name="upgrade" value="Upgrade" /></td></tr>
+		<tr><td colspan="2" style="font-style:italic">Hier kann ein Freifunk- oder OpenWrt-Image verwendet werden (*-sysupgrade.bin).</td></tr>
+		<tr><td colspan="2"></td></tr>
+		<tr><th style="width: 18em;">Firmware&nbsp;Image:</th><td><input type="file" name="firmware" style="width:40em" /></td></tr>
+		<tr><th>Konfiguration&nbsp;erhalten:</th><td><input type="checkbox" name="keep_config" checked="checked" /></td></tr>
+		<tr><th>Downgrade-Skript ausführen:</th><td><input type="checkbox" name="pre_downgrade" /></td></tr>
 		<tr><td colspan="2"></td></tr>
-		<tr><td colspan="2">Hier kann ein Freifunk- oder OpenWrt-Image verwendet werden (*-sysupgrade.bin).</td></tr>
+		<tr><td colspan="2"><input type="submit" name="upgrade" value="Upgrade" /></td></tr>
+	</table>
+</fieldset>
+<fieldset style="min-height: 7em;">
+	<legend>Firmware-Downgrade vorbereiten</legend>
+	<table>
+		<tr><td colspan="2" style="font-style:italic">Bei einem Downgrade auf &auml;ltere Firmware-Versionen bis inklusive 20170218-alpha muss zuvor die Konfiguration angepasst werden.</td></tr>
+		<tr><td colspan="2"><%= "$downgrade_text" %></td></tr>
+		<tr><td colspan="2"><input type="submit" name="downgrade" value="Skript ausf&uuml;hren" /></td></tr>
 	</table>
 </fieldset>
 </td><td>
@@ -50,7 +73,7 @@  fi
 	<legend>Router zur&uuml;cksetzen</legend>
 	<table>
 		<tr><th style="width: 1em;">Wirklich&nbsp;zur&uuml;cksetzen:</th><td>
-			<input type="checkbox" name="really_reset">
+			<input type="checkbox" name="really_reset" />
 		</td></tr>
 		<tr><td colspan="2"><input type="submit" name="reset" value="Zur&uuml;cksetzen" /></td></tr>
 		<tr><td colspan="2"></td></tr>

Comments

Christian Dresel Aug. 20, 2017, 10:25 a.m.
Hallo

hier bräuchte ich mal eine Erklärung was du damit eigentlich genau
bezweckst? Das Firmware Upgradefeld kann meines wissens auch problemlos
ältere Firmwareversionen mit aufnehmen. Woher kommt die von dir
aufgerufene /usr/sbin/prepare_firmware_downgrade.sh file? Die ist mir
nicht bekannt und ich seh sie auch gerade auf anhieb in keinen Patch?

mfg

Christianj

On 26.07.2017 21:49, Adrian Schmutzler wrote:
> This includes some XHTML conformity fixes
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 35 ++++++++++++++++++----
>  1 file changed, 29 insertions(+), 6 deletions(-)
> 
> diff --git a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> index a0dc5b3..7314047 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> @@ -18,6 +18,9 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ; then
>  			MSG="<span class=\"red\">Firmware Datei ung&uuml;ltig: <tt>${error}</tt></span>"
>  		else
> +			if [ "$POST_pre_downgrade" == "on" ] ; then
> +				/usr/sbin/prepare_firmware_downgrade.sh
> +			fi
>  			if [ "$POST_keep_config" == "on" ] ; then
>  				args=""
>  			else
> @@ -26,23 +29,43 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>  			do_sysupgrade=1
>  			MSG='<span class="green">Firmware Upgrade wird gestartet...</span>'
>  		fi
> +	elif [ "$POST_downgrade" != "" ] ; then
> +		# downgrade preparation script
> +		/usr/sbin/prepare_firmware_downgrade.sh
> +		MSG='<span class="green">Firmware-Downgrade-Vorbereitung durchgeführt.</span>'
>  	fi
>  fi
> +if grep -q '/etc/config/system' /etc/sysupgrade.conf 2> /dev/null ; then
> +	downgrade_text='<p>&gt; <span style="color:green">Downgrade wurde bereits vorbereitet.</span></p>'
> +else
> +	downgrade_text='<p>&gt; <span style="color:red">Downgrade muss durch Klicken auf "Skript ausf&uuml;hren" vorbereitet werden.</span></p>'
> +fi
> +
>  %>
>  <%in /www/ssl/cgi-bin/header %>
>  <%in /www/ssl/cgi-bin/helpers %>
>  <% show_msg %>
> -<form method="POST" enctype="multipart/form-data">
> +<form method="post" enctype="multipart/form-data">
>  <table style="width: 100%;">
>  <tr><td>
>  <fieldset style="min-height: 9em;">
>  	<legend>Manuelles Upgrade</legend>
>  	<table>
> -		<tr><th style="width: 1em;">Firmware&nbsp;Image:</th><td><input type="file" name="firmware" /></td></tr>
> -		<tr><th>Konfiguration&nbsp;erhalten:</th><td><input type="checkbox" name="keep_config" checked /></td></tr>
> -		<tr><td colspan="2"><input type="submit" name="upgrade" value="Upgrade" /></td></tr>
> +		<tr><td colspan="2" style="font-style:italic">Hier kann ein Freifunk- oder OpenWrt-Image verwendet werden (*-sysupgrade.bin).</td></tr>
> +		<tr><td colspan="2"></td></tr>
> +		<tr><th style="width: 18em;">Firmware&nbsp;Image:</th><td><input type="file" name="firmware" style="width:40em" /></td></tr>
> +		<tr><th>Konfiguration&nbsp;erhalten:</th><td><input type="checkbox" name="keep_config" checked="checked" /></td></tr>
> +		<tr><th>Downgrade-Skript ausführen:</th><td><input type="checkbox" name="pre_downgrade" /></td></tr>
>  		<tr><td colspan="2"></td></tr>
> -		<tr><td colspan="2">Hier kann ein Freifunk- oder OpenWrt-Image verwendet werden (*-sysupgrade.bin).</td></tr>
> +		<tr><td colspan="2"><input type="submit" name="upgrade" value="Upgrade" /></td></tr>
> +	</table>
> +</fieldset>
> +<fieldset style="min-height: 7em;">
> +	<legend>Firmware-Downgrade vorbereiten</legend>
> +	<table>
> +		<tr><td colspan="2" style="font-style:italic">Bei einem Downgrade auf &auml;ltere Firmware-Versionen bis inklusive 20170218-alpha muss zuvor die Konfiguration angepasst werden.</td></tr>
> +		<tr><td colspan="2"><%= "$downgrade_text" %></td></tr>
> +		<tr><td colspan="2"><input type="submit" name="downgrade" value="Skript ausf&uuml;hren" /></td></tr>
>  	</table>
>  </fieldset>
>  </td><td>
> @@ -50,7 +73,7 @@ fi
>  	<legend>Router zur&uuml;cksetzen</legend>
>  	<table>
>  		<tr><th style="width: 1em;">Wirklich&nbsp;zur&uuml;cksetzen:</th><td>
> -			<input type="checkbox" name="really_reset">
> +			<input type="checkbox" name="really_reset" />
>  		</td></tr>
>  		<tr><td colspan="2"><input type="submit" name="reset" value="Zur&uuml;cksetzen" /></td></tr>
>  		<tr><td colspan="2"></td></tr>
>
Adrian Schmutzler Aug. 20, 2017, 9 p.m.
Siehe Patch 4/11 und 8/11, dies baut auf der fff-config-Datei auf (die einen
Downgrade eben erschwert, wenn wieder Werte in die config/system geschrieben
werden müssen).

-----Original Message-----
From: franken-dev [mailto:franken-dev-bounces@freifunk.net] On Behalf Of
Christian Dresel
Sent: Sonntag, 20. August 2017 12:25
To: franken-dev@freifunk.net
Subject: Re: [RFC PATCH 13/15] fff-web: Add downgrade interface to
upgrade.html

Hallo

hier bräuchte ich mal eine Erklärung was du damit eigentlich genau
bezweckst? Das Firmware Upgradefeld kann meines wissens auch problemlos
ältere Firmwareversionen mit aufnehmen. Woher kommt die von dir aufgerufene
/usr/sbin/prepare_firmware_downgrade.sh file? Die ist mir nicht bekannt und
ich seh sie auch gerade auf anhieb in keinen Patch?

mfg

Christianj

On 26.07.2017 21:49, Adrian Schmutzler wrote:
> This includes some XHTML conformity fixes
> 
> Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> 
> Tested-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
> ---
>  .../fff/fff-web/files/www/ssl/cgi-bin/upgrade.html | 35 
> ++++++++++++++++++----
>  1 file changed, 29 insertions(+), 6 deletions(-)
> 
> diff --git 
> a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html 
> b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> index a0dc5b3..7314047 100755
> --- a/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> +++ b/src/packages/fff/fff-web/files/www/ssl/cgi-bin/upgrade.html
> @@ -18,6 +18,9 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>  		elif ! error=$(sysupgrade -T "$HASERL_firmware_path") ; then
>  			MSG="<span class=\"red\">Firmware Datei
ung&uuml;ltig: <tt>${error}</tt></span>"
>  		else
> +			if [ "$POST_pre_downgrade" == "on" ] ; then
> +				/usr/sbin/prepare_firmware_downgrade.sh
> +			fi
>  			if [ "$POST_keep_config" == "on" ] ; then
>  				args=""
>  			else
> @@ -26,23 +29,43 @@ if [ "$REQUEST_METHOD" == "POST" ] ; then
>  			do_sysupgrade=1
>  			MSG='<span class="green">Firmware Upgrade wird
gestartet...</span>'
>  		fi
> +	elif [ "$POST_downgrade" != "" ] ; then
> +		# downgrade preparation script
> +		/usr/sbin/prepare_firmware_downgrade.sh
> +		MSG='<span class="green">Firmware-Downgrade-Vorbereitung
durchgeführt.</span>'
>  	fi
>  fi
> +if grep -q '/etc/config/system' /etc/sysupgrade.conf 2> /dev/null ; then
> +	downgrade_text='<p>&gt; <span style="color:green">Downgrade wurde
bereits vorbereitet.</span></p>'
> +else
> +	downgrade_text='<p>&gt; <span style="color:red">Downgrade muss durch
Klicken auf "Skript ausf&uuml;hren" vorbereitet werden.</span></p>'
> +fi
> +
>  %>
>  <%in /www/ssl/cgi-bin/header %>
>  <%in /www/ssl/cgi-bin/helpers %>
>  <% show_msg %>
> -<form method="POST" enctype="multipart/form-data">
> +<form method="post" enctype="multipart/form-data">
>  <table style="width: 100%;">
>  <tr><td>
>  <fieldset style="min-height: 9em;">
>  	<legend>Manuelles Upgrade</legend>
>  	<table>
> -		<tr><th style="width:
1em;">Firmware&nbsp;Image:</th><td><input type="file" name="firmware"
/></td></tr>
> -		<tr><th>Konfiguration&nbsp;erhalten:</th><td><input
type="checkbox" name="keep_config" checked /></td></tr>
> -		<tr><td colspan="2"><input type="submit" name="upgrade"
value="Upgrade" /></td></tr>
> +		<tr><td colspan="2" style="font-style:italic">Hier kann ein
Freifunk- oder OpenWrt-Image verwendet werden (*-sysupgrade.bin).</td></tr>
> +		<tr><td colspan="2"></td></tr>
> +		<tr><th style="width:
18em;">Firmware&nbsp;Image:</th><td><input type="file" name="firmware"
style="width:40em" /></td></tr>
> +		<tr><th>Konfiguration&nbsp;erhalten:</th><td><input
type="checkbox" name="keep_config" checked="checked" /></td></tr>
> +		<tr><th>Downgrade-Skript ausführen:</th><td><input
type="checkbox" 
> +name="pre_downgrade" /></td></tr>
>  		<tr><td colspan="2"></td></tr>
> -		<tr><td colspan="2">Hier kann ein Freifunk- oder
OpenWrt-Image verwendet werden (*-sysupgrade.bin).</td></tr>
> +		<tr><td colspan="2"><input type="submit" name="upgrade"
value="Upgrade" /></td></tr>
> +	</table>
> +</fieldset>
> +<fieldset style="min-height: 7em;">
> +	<legend>Firmware-Downgrade vorbereiten</legend>
> +	<table>
> +		<tr><td colspan="2" style="font-style:italic">Bei einem
Downgrade auf &auml;ltere Firmware-Versionen bis inklusive 20170218-alpha
muss zuvor die Konfiguration angepasst werden.</td></tr>
> +		<tr><td colspan="2"><%= "$downgrade_text" %></td></tr>
> +		<tr><td colspan="2"><input type="submit" name="downgrade" 
> +value="Skript ausf&uuml;hren" /></td></tr>
>  	</table>
>  </fieldset>
>  </td><td>
> @@ -50,7 +73,7 @@ fi
>  	<legend>Router zur&uuml;cksetzen</legend>
>  	<table>
>  		<tr><th style="width:
1em;">Wirklich&nbsp;zur&uuml;cksetzen:</th><td>
> -			<input type="checkbox" name="really_reset">
> +			<input type="checkbox" name="really_reset" />
>  		</td></tr>
>  		<tr><td colspan="2"><input type="submit" name="reset"
value="Zur&uuml;cksetzen" /></td></tr>
>  		<tr><td colspan="2"></td></tr>
>