package org.ovirt.engine.core.bll.quota; import java.text.DecimalFormat; import org.ovirt.engine.core.common.AuditLogType; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; public class QuotaManagerAuditLogger { private static final DecimalFormat percentageFormatter = new DecimalFormat("#.##"); protected void addCustomValuesStorage(AuditLogableBase auditLogableBase, String quotaName, Guid quotaId, double storageUsagePercentage, double storageRequestedPercentage) { auditLogableBase.addCustomValue("QuotaName", quotaName); auditLogableBase.addCustomValue("CurrentStorage", percentageFormatter.format(storageUsagePercentage)); auditLogableBase.addCustomValue("Requested", percentageFormatter.format(storageRequestedPercentage)); auditLogableBase.setQuotaNameForLog(quotaName); auditLogableBase.setQuotaIdForLog(quotaId); } protected void addCustomValuesCluster(AuditLogableBase auditLogableBase, String quotaName, Guid quotaId, double cpuCurrentPercentage, double cpuRequestPercentage, double memCurrentPercentage, double memRequestPercentage, boolean cpuOverLimit, boolean memOverLimit) { auditLogableBase.addCustomValue("QuotaName", quotaName); StringBuilder currentUtilization = new StringBuilder(); if (cpuOverLimit) { currentUtilization.append("vcpu:").append(percentageFormatter.format(cpuCurrentPercentage)).append("% "); } if (memOverLimit) { currentUtilization.append("mem:").append(percentageFormatter.format(memCurrentPercentage)).append("%"); } StringBuilder request = new StringBuilder(); if (cpuOverLimit) { request.append("vcpu:").append(percentageFormatter.format(cpuRequestPercentage)).append("% "); } if (memOverLimit) { request.append("mem:").append(percentageFormatter.format(memRequestPercentage)).append("%"); } auditLogableBase.addCustomValue("Utilization", currentUtilization.toString()); auditLogableBase.addCustomValue("Requested", request.toString()); auditLogableBase.setQuotaNameForLog(quotaName); auditLogableBase.setQuotaIdForLog(quotaId); } public void auditLog(AuditLogType auditLogType, AuditLogableBase auditLogable) { if (auditLogType != null) { new AuditLogDirector().log(auditLogable, auditLogType); } } }