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

Reply via email to