diff options
author | Simon Rettberg | 2016-10-31 15:56:27 +0100 |
---|---|---|
committer | Simon Rettberg | 2016-10-31 15:56:27 +0100 |
commit | bc9bf92025c2dbe1742da1af39a9738ea7c9eb55 (patch) | |
tree | 67897eb54ce718bb5726e13a56c81daa92fe8f92 | |
parent | [vmware] Update to 12.5.1 (diff) | |
download | tm-scripts-bc9bf92025c2dbe1742da1af39a9738ea7c9eb55.tar.gz tm-scripts-bc9bf92025c2dbe1742da1af39a9738ea7c9eb55.tar.xz tm-scripts-bc9bf92025c2dbe1742da1af39a9738ea7c9eb55.zip |
[run-virt] Use xmlstarlet for xml operations
4 files changed, 13 insertions, 3 deletions
diff --git a/remote/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/get_xml_file_variables.inc b/remote/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/get_xml_file_variables.inc index d40d97bb..cf0d545b 100644 --- a/remote/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/get_xml_file_variables.inc +++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/get_xml_file_variables.inc @@ -8,9 +8,7 @@ declare -rg VMSTORE_PATH=/mnt/vmstore # Need some lean and mean xml parser some day in the far future get_xml () { - grep -Pio "<$1"'\s+param=[^"]*".*' "${xmlfile}" \ - | awk -F '"' '{ print $2 }' \ - | sed 's/&/+/g;s/"/"/g;s/</</g;s/>/>/g' + xmlextract "//settings/eintrag/${1}/@param" "${xmlfile}" } IMGUUID=$(get_xml "uuid") diff --git a/remote/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/vmchooser_runvirt_functions.inc b/remote/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/vmchooser_runvirt_functions.inc index 7519a48d..ca475da0 100644 --- a/remote/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/vmchooser_runvirt_functions.inc +++ b/remote/modules/run-virt/data/opt/openslx/vmchooser/run-virt-includes/vmchooser_runvirt_functions.inc @@ -96,3 +96,12 @@ notempty() { return 0 } +## +# Extract given xpath from given xml file +# e.g.: xmlextract '//node/nestednode/@attribute' "$file" +# @param +# @return Plain text, UTF-8 +xmlextract() { + xmlstarlet sel -T -E utf-8 -t -v "$1" "$2" +} + diff --git a/remote/modules/run-virt/module.conf b/remote/modules/run-virt/module.conf index 73155f89..cc1b34a6 100644 --- a/remote/modules/run-virt/module.conf +++ b/remote/modules/run-virt/module.conf @@ -3,5 +3,6 @@ REQUIRED_BINARIES=" mcopy pwdaemon slxfwtool + xmlstarlet " diff --git a/remote/modules/run-virt/module.conf.ubuntu b/remote/modules/run-virt/module.conf.ubuntu index b06efa7a..b6008fa0 100644 --- a/remote/modules/run-virt/module.conf.ubuntu +++ b/remote/modules/run-virt/module.conf.ubuntu @@ -1,9 +1,11 @@ REQUIRED_INSTALLED_PACKAGES=" usbutils mtools + xmlstarlet " REQUIRED_CONTENT_PACKAGES=" usbutils mtools + xmlstarlet " |