scripts: Collect script now shows osbuilder file

Changed the collect script to display the contents of the
osbuilder metadata file which provides details of the image.

Partially fixes #237.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
This commit is contained in:
James O. D. Hunt 2018-04-20 16:48:17 +01:00
parent 4281bc3543
commit 72056eb89b

View File

@ -13,6 +13,8 @@ typeset -r script_version="@VERSION@ (commit @COMMIT@)"
typeset -r unknown="unknown" typeset -r unknown="unknown"
typeset -r osbuilder_file="/var/lib/osbuilder/osbuilder.yaml"
# Maximum number of errors to show for a single system component # Maximum number of errors to show for a single system component
# (such as runtime or proxy). # (such as runtime or proxy).
PROBLEM_LIMIT=${PROBLEM_LIMIT:-50} PROBLEM_LIMIT=${PROBLEM_LIMIT:-50}
@ -347,8 +349,8 @@ show_runtime()
} }
# Parameter 1: Path to disk image file. # Parameter 1: Path to disk image file.
# Returns: Agent version string, or "$unknown" on error. # Returns: Details of the image, or "$unknown" on error.
get_agent_version() get_image_details()
{ {
local img="$1" local img="$1"
@ -361,7 +363,7 @@ get_agent_version()
local partition local partition
local count local count
local mountpoint local mountpoint
local version local contents
local expected local expected
loop_device=$(loopmount_image "$img") loop_device=$(loopmount_image "$img")
@ -392,16 +394,13 @@ get_agent_version()
mountpoint=$(mount_partition "$partition_path") mountpoint=$(mount_partition "$partition_path")
agent="/bin/@PROJECT_TYPE@-agent" contents=$(read_osbuilder_file "${mountpoint}")
[ -z "$contents" ] && contents="$unknown"
version=$(chroot "$mountpoint" "$agent" --version 2>/dev/null)
unmount_partition "$mountpoint" unmount_partition "$mountpoint"
release_device "$loop_device" release_device "$loop_device"
[ -z "$version" ] && version="$unknown" echo "$contents"
echo "$version"
} }
# Returns: Full path to the image file. # Returns: Full path to the image file.
@ -493,23 +492,41 @@ release_device()
losetup -d "$device" losetup -d "$device"
} }
show_agent_version() # Retrieve details of the image containing
# the rootfs used to boot the virtual machine.
show_image_details()
{ {
local image local image
local version local details
image=$(get_image_file) image=$(get_image_file)
version=$(get_agent_version "$image")
heading "Agent" heading "Image details"
msg "version:" if [ -n "$image" ]
then
show_quoted_text "$version" details=$(get_image_details "$image")
show_quoted_text "$details"
else
msg "No image"
fi
separator separator
} }
read_osbuilder_file()
{
local rootdir="$1"
[ -n "$rootdir" ] || die "need root directory"
local file="${rootdir}/${osbuilder_file}"
[ ! -e "$file" ] && return
cat "$file"
}
main() main()
{ {
args=$(getopt \ args=$(getopt \
@ -552,7 +569,7 @@ main()
show_meta show_meta
show_runtime show_runtime
show_runtime_configs show_runtime_configs
show_agent_version show_image_details
show_log_details show_log_details
show_container_mgr_details show_container_mgr_details
show_package_versions show_package_versions