Darryl L. Pierce
2010-Mar-10 13:26 UTC
[Ovirt-devel] [PATCH] Fixes how o-process-config handles missing field names or values.
When a name/value pair in the node configuration payload is received and is missing one or the other, the script will now display an error message and exit rather than applying the configuration payload. Resolves: rhbz#571556 Signed-off-by: Darryl L. Pierce <dpierce at redhat.com> --- scripts/ovirt-process-config | 27 +++++++++++++++++++++++++-- 1 files changed, 25 insertions(+), 2 deletions(-) diff --git a/scripts/ovirt-process-config b/scripts/ovirt-process-config index 6011cd7..8f6a8b6 100755 --- a/scripts/ovirt-process-config +++ b/scripts/ovirt-process-config @@ -9,6 +9,8 @@ ME=$(basename "$0") warn() { printf '%s: %s\n' "$ME" "$*" >&2; } +die() { warn "$*"; exit 1; } + try_h() { printf "Try \`$ME -h' for more information.\n" >&2; exit 1;} try_help() { printf "Usage: \`$ME [config] [module output] [config output]\n" >&2; exit 1;} @@ -55,20 +57,41 @@ networking=$(awk '/^[ \t]*ifcfg=/ { field=values[1] value=values[2] + if(length(field) == 0) { + print "Missing field name." + exit 1 + } + + if(length(value) == 0) { + print "Missing field value." + exit 2 + } + printf("set %s/ifcfg-%s/%s %s\n", ifcfg_dir, iface, field, value) } } }' $CONFIG) +SUCCESS=$? + +if [ SUCCESS != 0 ]; then + case $SUCCESS in + 1) error="missing field name";; + 2) error="missing field value";; + esac + + die "Bad data received: ${error}" +fi + echo "$networking" > $OVIRT_CONFIG_OUTPUT_FILE if [ -f $OVIRT_CONFIG_OUTPUT_FILE ]; then augtool $OVIRT_CONFIG_OUTPUT_FILE \ - && RESULT=0 || RESULT=1 + && RESULT=0 || RESULT=1 # FIXME do not store ifcfg-lo if ls /etc/sysconfig/network-scripts/ifcfg* >/dev/null 2>/dev/null; then - ovirt_store_config /etc/sysconfig/network-scripts/ifcfg* + ovirt_store_config /etc/sysconfig/network-scripts/ifcfg* fi fi -- 1.6.6.1
Arthur CLEMENT
2010-Mar-23 14:10 UTC
[Ovirt-devel] [PATCH] Fixes how o-process-config handles missing field names or values.
Signed-off-by: Arthur CLEMENT <aclement at linagora.com> --- scripts/ovirt-process-config | 27 +++++++++++++++++++++++++-- 1 files changed, 25 insertions(+), 2 deletions(-) diff --git a/scripts/ovirt-process-config b/scripts/ovirt-process-config index 6011cd7..7a78a57 100755 --- a/scripts/ovirt-process-config +++ b/scripts/ovirt-process-config @@ -9,6 +9,8 @@ ME=$(basename "$0") warn() { printf '%s: %s\n' "$ME" "$*" >&2; } +die() { warn "$*"; exit 1; } + try_h() { printf "Try \`$ME -h' for more information.\n" >&2; exit 1;} try_help() { printf "Usage: \`$ME [config] [module output] [config output]\n" >&2; exit 1;} @@ -55,20 +57,41 @@ networking=$(awk '/^[ \t]*ifcfg=/ { field=values[1] value=values[2] + if(length(field) == 0) { + print "Missing field name." + exit 1 + } + + if(length(value) == 0) { + print "Missing field value." + exit 2 + } + printf("set %s/ifcfg-%s/%s %s\n", ifcfg_dir, iface, field, value) } } }' $CONFIG) +SUCCESS=$? + +if [ SUCCESS != 0 ]; then + case $SUCCESS in + 1) error="missing field name";; + 2) error="missing field value";; + esac + + die "Bad data received: ${error}" +fi + echo "$networking" > $OVIRT_CONFIG_OUTPUT_FILE if [ -f $OVIRT_CONFIG_OUTPUT_FILE ]; then augtool $OVIRT_CONFIG_OUTPUT_FILE \ - && RESULT=0 || RESULT=1 + && RESULT=0 || RESULT=1 # FIXME do not store ifcfg-lo if ls /etc/sysconfig/network-scripts/ifcfg* >/dev/null 2>/dev/null; then - ovirt_store_config /etc/sysconfig/network-scripts/ifcfg* + ovirt_store_config /etc/sysconfig/network-scripts/ifcfg* fi fi -- 1.6.6.1