#!/bin/bash
#
# Copyright (c) 2017 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
# This script logs to user.log
#
# An instance with vTPM enable will have a QEMU config section in its XML file.
# e.g.
#
#
#
#
#
#
#
#
#
# For more information see the vTPM HLD in /folk/cgts/docs/security/
#
# The script is called with the following parameters
# e.g. /etc/libvirt/hooks/qemu
#
# Save the instance's XML. The guest qemu hook scrips are given the full XML description
# on their stdin.
XML_DATA=$(/bin/cat)
GUEST_NAME=$1
shift
OPERATION=$*
logger -p info -t $0 "hook qemu file guest $GUEST_NAME with operation $OPERATION"
VTPM_OPER=""
if [ "$OPERATION" == "prepare begin -" ]; then
# Get the instance's uuid
UUID=$(echo $XML_DATA | grep -oP '(?<=).*?(?=)')
if [ -z "$UUID" ]; then
# This should not happen
logger -p err -t $0 "Failed to retrieve uuid for guest $GUEST_NAME"
exit 1
fi
# Grab the qemu line "&1 > /dev/null
rc=$?
if [[ $rc != 0 ]]; then
logger -p err -t $0 "setup_vtpm failed with return value $rc for device $VTPM and guest $UUID"
# Do not return error if we were just doing a clear
if [ "$VTPM_OPER" != "clear" ]; then
exit 1;
fi
fi
fi
exit 0