[Ovirt-devel] [PATCH node] Change DNS setup to match NTP. rhbz#508677
Joey Boggs
jboggs at redhat.com
Thu Jul 9 21:14:13 UTC 2009
On 07/09/2009 10:18 AM, Darryl L. Pierce wrote:
> Rather than expecting the DNS entries to be on one line, they are now
> entered as two separate entries.
>
> Also fixes a bug that caused the first DNS entry to be lost when a
> second entry was provided.
>
> In both cases, the input is collected in a colon-delimited string that
> is then processed. This is to provide consistency between the
> interactive setup and the automated setup.
>
> Signed-off-by: Darryl L. Pierce<dpierce at redhat.com>
> ---
> scripts/ovirt-config-networking | 53 +++++++++++++++++++++++++-------------
> scripts/ovirt-functions | 18 +++++++++++++
> 2 files changed, 53 insertions(+), 18 deletions(-)
>
> diff --git a/scripts/ovirt-config-networking b/scripts/ovirt-config-networking
> index aa04a7c..730381e 100755
> --- a/scripts/ovirt-config-networking
> +++ b/scripts/ovirt-config-networking
> @@ -212,17 +212,30 @@ function configure_dns
>
> if [ -z "$AUTO" ]; then
> while true; do
> - printf "\n"
> - echo "Enter up to two DNS servers separated by commas:"
> - if [ -n "$OVIRT_DNS" ]; then
> - echo "Press Enter for defaults: ($OVIRT_DNS)"
> - fi
> - read -ep ": "
> - DNS=$REPLY
> -
> - if [ -z "$DNS" ]; then
> - DNS=$OVIRT_DNS
> - fi
> + for dns in first second; do
> + while true; do
> + printf "\n"
> + read -ep "Please enter the ${dns} DNS server (or ENTER to exit): "
> + if [[ -z "${REPLY}" ]]; then
> + if [[ -z "${DNS}" ]]; then
> + printf "\nAborted...\n"
> + return
> + else
> + break
> + fi
> + fi
> + if is_valid_ipv4 $REPLY; then
> + if [[ -z "${DNS}" ]]; then
> + DNS="${REPLY}"
> + elif [[ -n "${REPLY}" ]]; then
> + DNS="${DNS}:${REPLY}"
> + fi
> + break
> + else
> + printf "${REPLY} is an invalid address.\n"
> + fi
> + done
> + done
>
> printf "\n"
> ask_yes_or_no "Is this correct (y/n/a)?" true true
> @@ -235,12 +248,11 @@ function configure_dns
> fi
>
> if [ -n "$DNS" ]; then
> - DNS1=$(echo "$DNS" | awk -F, '{print $1}')
> - DNS2=$(echo "$DNS" | awk -F, '{print $2}')
> + DNS1=$(echo "$DNS" | awk -F\: '{print $1}')
> + DNS2=$(echo "$DNS" | awk -F\: '{print $2}')
>
> - test -n "$DNS1"&& IF_CONFIG="set $IF_ROOT/DNS1 $DNS1"
> - test -n "$DNS2"&& IF_CONFIG="set $IF_ROOT/DNS2 $DNS2"
> - printf "$IF_CONFIG\n">> $IF_FILENAME
> + test -n "$DNS1"&& printf "set $IF_ROOT/DNS1 $DNS1\n">> $IF_FILENAME
> + test -n "$DNS2"&& printf "set $IF_ROOT/DNS2 $DNS2\n">> $IF_FILENAME
> fi
> }
>
> @@ -259,7 +271,11 @@ function configure_ntp
>
> if [ -z "$REPLY" ]; then break; fi
>
> - NTPSERVERS="$NTPSERVERS $REPLY"
> + if is_valid_ipv4 $REPLY; then
> + NTPSERVERS="${NTPSERVERS}:${REPLY}"
> + else
> + printf "${REPLY} is an invalid address.\n"
> + fi
> done
> fi
> }
> @@ -278,7 +294,8 @@ save\n"> $ntpconf
>
> if [ -n "$NTPSERVERS" ]; then
> offset=1
> - for server in $NTPSERVERS; do
> + SERVERS=$(echo $NTPSERVERS | awk 'BEGIN{FS=":"}{for (i=1; i<=NF; i++) print $i}')
> + for server in $SERVERS; do
> printf "set /files/etc/ntp.conf/server[${offset}] ${server}\n">> $ntpconf
> offset=$(echo "$offset+1" | bc)
> done
> diff --git a/scripts/ovirt-functions b/scripts/ovirt-functions
> index ecde762..81db36b 100755
> --- a/scripts/ovirt-functions
> +++ b/scripts/ovirt-functions
> @@ -654,6 +654,24 @@ ask_yes_or_no () {
> done
> }
>
> +# Verifies the address entered is a valid IPv4 address.
> +is_valid_ipv4 () {
> + local address=${1}
> + local result=1
> +
> + if [[ "$address" =~ "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" ]]; then
> + OIFS=$IFS
> + IFS='.'
> + ip=($address)
> + IFS=$OIFS
> + [[ ${ip[0]} -le 255&& ${ip[1]} -le 255 \
> +&& ${ip[2]} -le 255&& ${ip[3]} -le 255 ]]
> + result=$?
> + fi
> +
> + return $result
> +}
> +
> # execute a function if called as a script, e.g.
> # ovirt-functions ovirt_store_config /etc/hosts
>
>
Can't get this one to apply against next, using: last change was
(Allows viewing of log files. bz#506289) and did a fresh clone/checkout
to make sure.
[jboggs at localhost ovirt-node]$ git am ~/mbox-patch/\[Ovirt-devel\]\
\[PATCH\ node\]\ Change\ DNS\ setup\ to\ match\ NTP.\ rhbz#508677.eml
Applying: Change DNS setup to match NTP. rhbz#508677
/home/jboggs/ovirt-node/.git/rebase-apply/patch:25: trailing whitespace.
for dns in first second; do
/home/jboggs/ovirt-node/.git/rebase-apply/patch:26: trailing whitespace.
while true; do
/home/jboggs/ovirt-node/.git/rebase-apply/patch:27: trailing whitespace.
printf "\n"
/home/jboggs/ovirt-node/.git/rebase-apply/patch:28: trailing whitespace.
read -ep "Please enter the ${dns} DNS server (or
ENTER to exit): "
/home/jboggs/ovirt-node/.git/rebase-apply/patch:29: trailing whitespace.
if [[ -z "${REPLY}" ]]; then
error: patch failed: scripts/ovirt-config-networking:212
error: scripts/ovirt-config-networking: patch does not apply
error: patch failed: scripts/ovirt-functions:654
error: scripts/ovirt-functions: patch does not apply
Patch failed at 0001 Change DNS setup to match NTP. rhbz#508677
When you have resolved this problem run "git am --resolved".
If you would prefer to skip this patch, instead run "git am --skip".
To restore the original branch and stop patching run "git am --abort".
More information about the ovirt-devel
mailing list