#!/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