qemuProcessStartWithMemoryState: allow setting reason for audit log

When called by snapshot code we will need to use different reason.

Signed-off-by: Pavel Hrdina <phrdina@redhat.com>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
Pavel Hrdina 2023-09-18 14:26:41 +02:00
parent 6c0f30b37e
commit 6a88060d32
3 changed files with 8 additions and 2 deletions

View File

@ -8102,11 +8102,14 @@ qemuProcessStart(virConnectPtr conn,
* @data: data from memory state file
* @asyncJob: type of asynchronous job
* @start_flags: flags to start QEMU process with
* @reason: audit log reason
* @started: boolean to store if QEMU process was started
*
* Start VM with existing memory state. Make sure that the stored memory state
* is correctly decompressed so it can be loaded by QEMU process.
*
* For audit purposes the expected @reason is one of `restored` or `from-snapshot`.
*
* Returns 0 on success, -1 on error.
*/
int
@ -8118,6 +8121,7 @@ qemuProcessStartWithMemoryState(virConnectPtr conn,
virQEMUSaveData *data,
virDomainAsyncJob asyncJob,
unsigned int start_flags,
const char *reason,
bool *started)
{
qemuDomainObjPrivate *priv = vm->privateData;
@ -8152,7 +8156,7 @@ qemuProcessStartWithMemoryState(virConnectPtr conn,
rc = qemuSaveImageDecompressionStop(cmd, fd, &intermediatefd, errbuf, *started, path);
virDomainAuditStart(vm, "restored", *started);
virDomainAuditStart(vm, reason, *started);
if (!*started || rc < 0)
return -1;

View File

@ -99,6 +99,7 @@ int qemuProcessStartWithMemoryState(virConnectPtr conn,
virQEMUSaveData *data,
virDomainAsyncJob asyncJob,
unsigned int start_flags,
const char *reason,
bool *started);
int qemuProcessCreatePretendCmdPrepare(virQEMUDriver *driver,

View File

@ -699,7 +699,8 @@ qemuSaveImageStartVM(virConnectPtr conn,
start_flags |= VIR_QEMU_PROCESS_START_RESET_NVRAM;
if (qemuProcessStartWithMemoryState(conn, driver, vm, fd, path, data,
asyncJob, start_flags, &started) < 0) {
asyncJob, start_flags, "restored",
&started) < 0) {
goto cleanup;
}