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