Alona Kaplan has uploaded a new change for review.

Change subject: engine: Updating the maintenance_reason on 
MaintenanceNumberOfVdssCommand
......................................................................

engine: Updating the maintenance_reason on MaintenanceNumberOfVdssCommand

SetVdsStatusVdsCommand gets the maintenanceReason as a parameter and stores
it in the db. If the reason is not set, a null will be stored.

When the maintenance command is executed the reason (if there is one) is
passed to SetVdsStatusVdsCommand.
Since all the vds status changes are done via SetVdsStatusVdsCommand, when
the status of the vds is changed to another status the maintenance reason
will be nullified (since other places that executes SetVdsStatusVdsCommand
doesn't pass mainternenceReason via the parameters).

Change-Id: If1ab2e0b3e2cc154d14282bc38b158b0b4d195fe
Bug-Url: https://bugzilla.redhat.com/678977
Signed-off-by: Alona Kaplan <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MaintenanceNumberOfVdssParameters.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVdsStatusVDSCommandParameters.java
M 
backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/HostMonitoring.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
M 
frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
8 files changed, 39 insertions(+), 5 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/98/38298/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java
index 28ef02c..49bf36d 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceNumberOfVdssCommand.java
@@ -101,7 +101,7 @@
         if (vds.getStatus() != VDSStatus.PreparingForMaintenance && 
vds.getStatus() != VDSStatus.NonResponsive
                 && vds.getStatus() != VDSStatus.Down) {
             SetVdsStatusVDSCommandParameters params =
-                    new SetVdsStatusVDSCommandParameters(vds.getId(), 
VDSStatus.PreparingForMaintenance);
+                    new SetVdsStatusVDSCommandParameters(vds.getId(), 
VDSStatus.PreparingForMaintenance, getParameters().getReason());
             params.setStopSpmFailureLogged(true);
             result = runVdsCommand(VDSCommandType.SetVdsStatus, 
params).getSucceeded();
         }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
index 2941124..323d68c 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/MaintenanceVdsCommand.java
@@ -187,6 +187,7 @@
             }
         } else {
             if (getSucceeded() && !haMaintenanceFailed) {
+                addCustomValue("Reason", getVds().getStopReason());
                 return AuditLogType.USER_VDS_MAINTENANCE;
             } else if (getSucceeded()) {
                 return AuditLogType.USER_VDS_MAINTENANCE_MANUAL_HA;
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MaintenanceNumberOfVdssParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MaintenanceNumberOfVdssParameters.java
index eee5a7e..75bbffb 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MaintenanceNumberOfVdssParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/MaintenanceNumberOfVdssParameters.java
@@ -20,9 +20,16 @@
      */
     private boolean keepPolicyPMEnabled = false;
 
+    private String reason;
+
     public MaintenanceNumberOfVdssParameters(List<Guid> vdsIdList, boolean 
isInternal) {
+        this(vdsIdList, isInternal, "");
+    }
+
+    public MaintenanceNumberOfVdssParameters(List<Guid> vdsIdList, boolean 
isInternal, String reason) {
         _vdsIdList = vdsIdList;
         _isInternal = isInternal;
+        this.reason = reason;
     }
 
     public MaintenanceNumberOfVdssParameters(List<Guid> vdsIdList, boolean 
isInternal, boolean keepPolicyPMEnabled) {
@@ -50,6 +57,14 @@
         this.keepPolicyPMEnabled = _keepPolicyPMEnabled;
     }
 
+    public String getReason() {
+        return reason;
+    }
+
+    public void setReason(String value) {
+        reason = value;
+    }
+
     public MaintenanceNumberOfVdssParameters() {
     }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVdsStatusVDSCommandParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVdsStatusVDSCommandParameters.java
index de28694..2828f76 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVdsStatusVDSCommandParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/SetVdsStatusVDSCommandParameters.java
@@ -7,6 +7,7 @@
 public class SetVdsStatusVDSCommandParameters extends 
VdsIdVDSCommandParametersBase {
     private VDSStatus _status;
     private NonOperationalReason nonOperationalReason;
+    private String maintenanceReason;
 
     /**
      * Flag to display SPM stop command failure in audit log
@@ -18,6 +19,11 @@
         _status = status;
         nonOperationalReason = NonOperationalReason.NONE;
         stopSpmFailureLogged = false;
+    }
+
+    public SetVdsStatusVDSCommandParameters(Guid vdsId, VDSStatus status, 
String maintenanceReason) {
+        this(vdsId, status);
+        this.maintenanceReason = maintenanceReason;
     }
 
     public SetVdsStatusVDSCommandParameters(Guid vdsId, VDSStatus status, 
NonOperationalReason nonOperationalReason) {
@@ -51,12 +57,21 @@
         this.stopSpmFailureLogged = stopSpmFailureLogged;
     }
 
+    public String getMaintenanceReason() {
+        return maintenanceReason;
+    }
+
+    public void setMaintenanceReason(String maintenanceReason) {
+        this.maintenanceReason = maintenanceReason;
+    }
+
     @Override
     public String toString() {
-        return String.format("%s, status=%s, nonOperationalReason=%s, 
stopSpmFailureLogged=%s",
+        return String.format("%s, status=%s, nonOperationalReason=%s, 
stopSpmFailureLogged=%s maintenanceReason=%s",
                 super.toString(),
                 getStatus(),
                 getNonOperationalReason(),
-                isStopSpmFailureLogged());
+                isStopSpmFailureLogged(),
+                getMaintenanceReason());
     }
 }
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 8e2b1c4..d4820e6 100644
--- 
a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
+++ 
b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties
@@ -328,7 +328,7 @@
 USER_SUSPEND_VM_FINISH_FAILURE=Failed to complete suspending of VM ${VmName}.
 USER_SUSPEND_VM_FINISH_FAILURE_WILL_TRY_AGAIN=Failed to complete suspending of 
VM ${VmName}, will try again.
 USER_FAILED_SUSPEND_VM=Failed to suspend VM ${VmName} (Host: ${VdsName}).
-USER_VDS_MAINTENANCE=Host ${VdsName} was switched to Maintenance mode by 
${UserName}.
+USER_VDS_MAINTENANCE=Host ${VdsName} was switched to Maintenance mode by 
${UserName} (Reason: ${Reason}).
 USER_VDS_MAINTENANCE_MANUAL_HA=Host ${VdsName} was switched to Maintenance 
mode by ${UserName}, but Hosted Engine HA maintenance could not be enabled. 
Please enable it manually.
 USER_VDS_MAINTENANCE_MIGRATION_FAILED=Host ${VdsName} cannot change into 
maintenance mode - not all Vms have been migrated successfully. Consider manual 
intervention: stopping/migrating Vms: ${failedVms} (User: ${UserName}).
 USER_EXPORT_VM=VM ${VmName} exported to ${ExportPath} by ${UserName}
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/HostMonitoring.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/HostMonitoring.java
index 6ef8394..c3dee7f 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/HostMonitoring.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/HostMonitoring.java
@@ -718,6 +718,8 @@
     private void moveVDSToMaintenanceIfNeeded() {
         if (vds.getStatus() == VDSStatus.PreparingForMaintenance) {
             if (monitoringStrategy.canMoveToMaintenance(vds)) {
+                VdsDynamic dbVds = 
DbFacade.getInstance().getVdsDynamicDao().get(vds.getId());
+                vds.setStopReason(dbVds.getMaintenanceReason());
                 vdsManager.setStatus(VDSStatus.Maintenance, vds);
                 saveVdsDynamic = true;
                 saveVdsStatistics = true;
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
index 3a06eca..200bda7 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/SetVdsStatusVDSCommand.java
@@ -73,5 +73,6 @@
 
     private void updateVdsFromParameters(SetVdsStatusVDSCommandParameters 
parameters, VDS vds) {
         
vds.getDynamicData().setNonOperationalReason(parameters.getNonOperationalReason());
+        
vds.getDynamicData().setMaintenanceReason(parameters.getMaintenanceReason());
     }
 }
diff --git 
a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
 
b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
index 3c5a8de..5efaefc 100644
--- 
a/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
+++ 
b/frontend/webadmin/modules/uicompat/src/main/resources/org/ovirt/engine/ui/uicompat/LocalizedEnums.properties
@@ -123,7 +123,7 @@
 EventNotificationEntity___GlusterHook=Gluster Hook Events:
 EventNotificationEntity___GlusterService=Gluster Service:
 AuditLogType___VDS_FAILURE=Host is non responsive
-AuditLogType___USER_VDS_MAINTENANCE=Host was switched to Maintenance Mode
+AuditLogType___USER_VDS_MAINTENANCE=Host was switched to Maintenance Mode 
(Reason: ${Reason}).
 AuditLogType___USER_VDS_MAINTENANCE_MANUAL_HA=Host was switched to Maintenance 
Mode, but Hosted Engine HA maintenance mode could not be enabled
 AuditLogType___USER_VDS_MAINTENANCE_MIGRATION_FAILED=Failed to switch Host to 
Maintenance mode
 AuditLogType___VDS_MAINTENANCE=Host was switched to Maintenance Mode


-- 
To view, visit https://gerrit.ovirt.org/38298
To unsubscribe, visit https://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: If1ab2e0b3e2cc154d14282bc38b158b0b4d195fe
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Alona Kaplan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to