Arik Hadas has uploaded a new change for review. Change subject: core: add audit log if snapshot is created without memory ......................................................................
core: add audit log if snapshot is created without memory It is possible that the user invokes snapshot with memory creation and the result will be snapshot without memory, if the VM went down after the command started. So this patch adds an audit log in order to present to the user a message that in this case the resulted snapshot doesn't contain memory as requested. Change-Id: Id66a5c8d394e1b961d7869538603adb7e6fbaeca Bug-Url: https://bugzilla.redhat.com/985739 Signed-off-by: Arik Hadas <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java M backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties 4 files changed, 15 insertions(+), 3 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/48/17248/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java index aacacb8..fe6462f 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/CreateAllSnapshotsFromVmCommand.java @@ -239,9 +239,12 @@ else { // If the created snapshot contains memory, remove the memory volumes as // they are not in use since no live snapshot was created - if (!removeMemoryFromSnapshot(createdSnapshot, true)) { - log.errorFormat("Failed to remove unused memory {0} of snapshot {1}", - createdSnapshot.getMemoryVolume(), createdSnapshot.getId()); + if (!createdSnapshot.getMemoryVolume().isEmpty()) { + logMemorySavingFailed(); + if (!removeMemoryFromSnapshot(createdSnapshot, true)) { + log.errorFormat("Failed to remove unused memory {0} of snapshot {1}", + createdSnapshot.getMemoryVolume(), createdSnapshot.getId()); + } } } } else { @@ -277,6 +280,12 @@ } } + private void logMemorySavingFailed() { + addCustomValue("SnapshotName", getSnapshotName()); + addCustomValue("VmName", getVmName()); + AuditLogDirector.log(this, AuditLogType.USER_CREATE_LIVE_SNAPSHOT_NO_MEMORY_FAILURE); + } + private boolean removeMemoryFromSnapshot(Snapshot snapshot, boolean clearFromDB) { final String memoryVolume = snapshot.getMemoryVolume(); if (memoryVolume.isEmpty()) { diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java index ec0f72d..d9425dd 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java @@ -300,6 +300,7 @@ USER_CREATE_SNAPSHOT_FINISHED_FAILURE(69), USER_CREATE_LIVE_SNAPSHOT_FINISHED_FAILURE(170), USER_FAILED_CREATE_SNAPSHOT(117), + USER_CREATE_LIVE_SNAPSHOT_NO_MEMORY_FAILURE(173), USER_REMOVE_SNAPSHOT(342), USER_FAILED_REMOVE_SNAPSHOT(343), USER_REMOVE_SNAPSHOT_FINISHED_SUCCESS(356), diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java index d3bd77c..0f3d159 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogDirector.java @@ -585,6 +585,7 @@ severities.put(AuditLogType.USER_CREATE_SNAPSHOT_FINISHED_FAILURE, AuditLogSeverity.ERROR); severities.put(AuditLogType.USER_CREATE_LIVE_SNAPSHOT_FINISHED_FAILURE, AuditLogSeverity.WARNING); severities.put(AuditLogType.USER_FAILED_CREATE_SNAPSHOT, AuditLogSeverity.ERROR); + severities.put(AuditLogType.USER_CREATE_LIVE_SNAPSHOT_NO_MEMORY_FAILURE, AuditLogSeverity.ERROR); severities.put(AuditLogType.USER_REMOVE_SNAPSHOT, AuditLogSeverity.NORMAL); severities.put(AuditLogType.USER_REMOVE_SNAPSHOT_FINISHED_SUCCESS, AuditLogSeverity.NORMAL); severities.put(AuditLogType.USER_REMOVE_SNAPSHOT_FINISHED_FAILURE, AuditLogSeverity.ERROR); diff --git a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties index 115490f..20efaca 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties @@ -52,6 +52,7 @@ USER_FAILED_ATTACH_USER_TO_VM=Failed to attach User ${AdUserName} to VM ${VmName} (User: ${UserName}). USER_FAILED_CHANGE_DISK_VM=Failed to change disk in VM ${VmName} (Host: ${VdsName}, User: ${UserName}). USER_FAILED_CREATE_SNAPSHOT=Failed to create Snapshot ${SnapshotName} for VM ${VmName} (User: ${UserName}). +USER_CREATE_LIVE_SNAPSHOT_NO_MEMORY_FAILURE=Failed to save memory as part of Snapshot ${SnapshotName} for VM ${VmName} (User: ${UserName}). USER_FAILED_REMOVE_SNAPSHOT=Failed to remove Snapshot ${SnapshotName} for VM ${VmName} (User: ${UserName}). USER_FAILED_PAUSE_VM=Failed to suspend VM ${VmName} (Host: ${VdsName}, User: ${UserName}). USER_FAILED_REMOVE_VDS=Failed to remove Host ${VdsName} (User: ${UserName}). -- To view, visit http://gerrit.ovirt.org/17248 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Id66a5c8d394e1b961d7869538603adb7e6fbaeca Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Arik Hadas <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
