Maor Lipchuk has uploaded a new change for review. Change subject: core(WIP): Use audit log instead block. ......................................................................
core(WIP): Use audit log instead block. Validation of percentage free space in domain should not block operations on the domain but only use audit log instead. DO NOT SUBMIT: Tests should be revisited. Bug-Url: https://bugzilla.redhat.com/856201 Change-Id: Ia910b83d4dedefc9c22d0c30bc099fa5fb628355 Signed-off-by: Maor Lipchuk <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/command/utils/StorageDomainSpaceChecker.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java 2 files changed, 53 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/07/11407/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/command/utils/StorageDomainSpaceChecker.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/command/utils/StorageDomainSpaceChecker.java index 9e8d364..03fec0c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/command/utils/StorageDomainSpaceChecker.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/command/utils/StorageDomainSpaceChecker.java @@ -1,14 +1,37 @@ package org.ovirt.engine.core.bll.command.utils; +import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.businessentities.StorageDomainDynamic; import org.ovirt.engine.core.common.businessentities.storage_domains; import org.ovirt.engine.core.common.config.Config; import org.ovirt.engine.core.common.config.ConfigValues; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; public class StorageDomainSpaceChecker { public static boolean isAboveThresholds(final storage_domains domain) { - return isEnoughFreeSpace(domain) && isEnoughFreePct(domain); + boolean percentThresholdMet = true; + if (domain.getavailable_disk_size() != null && domain.getused_disk_size() != null) { + AuditLogType type = null; + boolean spaceThresholdMet = !isEnoughFreeSpace(domain); + percentThresholdMet = !isEnoughFreePct(domain); + if (spaceThresholdMet && percentThresholdMet) { + type = AuditLogType.IRS_DISK_SPACE_LOW_ERROR; + } else { + if (spaceThresholdMet || percentThresholdMet) { + type = AuditLogType.IRS_DISK_SPACE_LOW; + } + } + if (type != null) { + AuditLogableBase logable = new AuditLogableBase(); + logable.setStorageDomain(domain); + logable.AddCustomValue("DiskSpace", (domain.getavailable_disk_size()).toString()); + domain.setstorage_name(domain.getstorage_name()); + AuditLogDirector.log(logable, type); + } + } + return percentThresholdMet; } private static boolean isEnoughFreePct(final storage_domains domain) { diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java index 226da1d..2e7486d 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/StorageDomainCommandBase.java @@ -7,11 +7,13 @@ import org.ovirt.engine.core.bll.context.CompensationContext; import org.ovirt.engine.core.bll.utils.PermissionSubject; +import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.common.VdcObjectType; import org.ovirt.engine.core.common.action.StorageDomainParametersBase; import org.ovirt.engine.core.common.businessentities.LUN_storage_server_connection_map; import org.ovirt.engine.core.common.businessentities.LUN_storage_server_connection_map_id; import org.ovirt.engine.core.common.businessentities.LUNs; +import org.ovirt.engine.core.common.businessentities.StorageDomainStatic; import org.ovirt.engine.core.common.businessentities.StorageDomainStatus; import org.ovirt.engine.core.common.businessentities.StorageDomainType; import org.ovirt.engine.core.common.businessentities.StoragePoolIsoMap; @@ -26,6 +28,8 @@ import org.ovirt.engine.core.compat.NGuid; import org.ovirt.engine.core.dal.VdcBllMessages; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; import org.ovirt.engine.core.dao.BaseDiskDao; import org.ovirt.engine.core.dao.DiskImageDAO; import org.ovirt.engine.core.dao.DiskImageDynamicDAO; @@ -275,6 +279,31 @@ runSynchronizeOperation(new RefreshStoragePoolAndDisconnectAsyncOperationFactory()); } + public static void auditLogWhenFreeSpaceLow(storage_domains data, + StorageDomainStatic domainFromDb, + double freePercent, + int freeDiskInGB) { + AuditLogType type = AuditLogType.UNASSIGNED; + boolean spaceThresholdMet = + freeDiskInGB <= Config.<Integer> GetValue(ConfigValues.FreeSpaceCriticalLowInGB); + boolean percentThresholdMet = + freePercent <= Config.<Integer> GetValue(ConfigValues.FreeSpaceLow); + if (spaceThresholdMet && percentThresholdMet) { + type = AuditLogType.IRS_DISK_SPACE_LOW_ERROR; + } else { + if (spaceThresholdMet || percentThresholdMet) { + type = AuditLogType.IRS_DISK_SPACE_LOW; + } + } + if (type != AuditLogType.UNASSIGNED) { + AuditLogableBase logable = new AuditLogableBase(); + logable.setStorageDomain(data); + logable.AddCustomValue("DiskSpace", (data.getavailable_disk_size()).toString()); + data.setstorage_name(domainFromDb.getstorage_name()); + AuditLogDirector.log(logable, type); + } + } + /** * The new master must be a data domain which is in Active status and not * reported by any vdsm as problematic. In case that all domains reported as problematic a first Active data domain -- To view, visit http://gerrit.ovirt.org/11407 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ia910b83d4dedefc9c22d0c30bc099fa5fb628355 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Maor Lipchuk <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
