Karnan t c has uploaded a new change for review. Change subject: webadmin: Add new alerts required for RHSC Dashboard ......................................................................
webadmin: Add new alerts required for RHSC Dashboard adds new alerts for server/volume removed from CLI, updates brick state change alerts and automatically remove alerts once the entity is UP. Change-Id: Ibad5ed6078bd33cd9c9decdabca6747709be4ba4 Signed-off-by: Karnan TC <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AuditLog.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AlertDirector.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/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/gluster/GlusterAuditLogUtil.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAO.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAODbFacadeImpl.java M backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties M backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/AuditLogDaoMocker.java M packaging/dbscripts/audit_log_sp.sql A packaging/dbscripts/upgrade/03_06_1360_add_brickPath_audit_log_table.sql 13 files changed, 153 insertions(+), 13 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/66/40566/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java index 673fde6..a1f2de8 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/gluster/GlusterSyncJob.java @@ -46,6 +46,7 @@ import org.ovirt.engine.core.common.vdscommands.gluster.GlusterVolumesListVDSParameters; import org.ovirt.engine.core.compat.Guid; import org.ovirt.engine.core.compat.TransactionScopeOption; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AlertDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; import org.ovirt.engine.core.dao.gluster.GlusterDBUtils; @@ -1004,6 +1005,17 @@ put(GlusterConstants.OPTION_NEW_VALUE, fetchedStatus.toString()); } }); + if(fetchedStatus.toString().equals("DOWN")){ + logUtil.logAuditMessage(volume.getClusterId(), volume, null, + AuditLogType.GLUSTER_BRICK_STATUS_DOWN, + new HashMap<String, String>() { + { + put(GlusterConstants.BRICK_PATH, brick.getQualifiedName()); + } + }, brick.getQualifiedName()); + }else if(fetchedStatus.toString().equals("UP")){ + AlertDirector.RemoveAlertsByBrickVolumeId(volume.getId(), brick.getQualifiedName(), "GLUSTER_BRICK_STATUS_DOWN"); + } } private Map<Guid, BrickProperties> getBrickPropertiesMap(GlusterVolumeAdvancedDetails volumeDetails) { 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 cd3f280..6e05d7f 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 @@ -317,13 +317,13 @@ GLUSTER_VOLUME_PROFILE_STOP(4024), GLUSTER_VOLUME_PROFILE_STOP_FAILED(4025, AuditLogSeverity.ERROR), GLUSTER_VOLUME_CREATED_FROM_CLI(4026, AuditLogSeverity.WARNING), - GLUSTER_VOLUME_DELETED_FROM_CLI(4027, AuditLogSeverity.WARNING), + GLUSTER_VOLUME_DELETED_FROM_CLI(4027, AuditLogSeverity.ALERT), GLUSTER_VOLUME_OPTION_SET_FROM_CLI(4028, AuditLogSeverity.WARNING), GLUSTER_VOLUME_OPTION_RESET_FROM_CLI(4029, AuditLogSeverity.WARNING), GLUSTER_VOLUME_PROPERTIES_CHANGED_FROM_CLI(4030, AuditLogSeverity.WARNING), GLUSTER_VOLUME_BRICK_ADDED_FROM_CLI(4031, AuditLogSeverity.WARNING), - GLUSTER_VOLUME_BRICK_REMOVED_FROM_CLI(4032, AuditLogSeverity.WARNING), - GLUSTER_SERVER_REMOVED_FROM_CLI(4033, AuditLogSeverity.WARNING), + GLUSTER_VOLUME_BRICK_REMOVED_FROM_CLI(4032, AuditLogSeverity.ALERT), + GLUSTER_SERVER_REMOVED_FROM_CLI(4033, AuditLogSeverity.ALERT), GLUSTER_VOLUME_INFO_FAILED(4034, AuditLogSeverity.ERROR), GLUSTER_COMMAND_FAILED(4035, AuditLogSeverity.ERROR), GLUSTER_SERVER_ADD_FAILED(4436, AuditLogSeverity.ERROR), @@ -444,6 +444,7 @@ GLUSTER_SETUP_GEOREP_MOUNT_BROKER(4145), GLUSTER_GEOREP_SESSION_CREATE_FAILED(4146, AuditLogSeverity.ERROR), CREATE_GLUSTER_VOLUME_GEOREP_SESSION(4147), + GLUSTER_BRICK_STATUS_DOWN(4148, AuditLogSeverity.ALERT), USER_FORCE_SELECTED_SPM(159), USER_VDS_RESTART(41), diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AuditLog.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AuditLog.java index 3ccfb42..46e2b4c 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AuditLog.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/AuditLog.java @@ -46,6 +46,7 @@ private String compatibilityVersion; private String quotaEnforcementType; private String callStack; + private String brickPath; /** * If set to {@code true}, it allows storing to db multiple alerts of the same type for the same host. @@ -124,6 +125,40 @@ this.customEventId = customEventId; this.eventFloodInSec = eventFloogInSec; this.customData = customData; + } + + public AuditLog(AuditLogType type, + AuditLogSeverity severity, + String message, + Guid userId, + String userName, + Guid vmId, + String vmName, + Guid vdsId, + String vdsName, + Guid vmTemplateId, + String vmTemplateName, + String origin, + int customEventId, + int eventFloogInSec, + String customData, + String brickPath) { + this(type, + severity, + message, + userId, + userName, + vmId, + vmName, + vdsId, + vdsName, + vmTemplateId, + vmTemplateName, + origin, + customEventId, + eventFloogInSec, + customData); + this.brickPath = brickPath; } public long getAuditLogId() { @@ -427,6 +462,14 @@ this.callStack = callStack; } + public String getBrickPath() { + return brickPath; + } + + public void setBrickPath(String brickPath) { + this.brickPath = brickPath; + } + public boolean isRepeatable() { return repeatable; } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AlertDirector.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AlertDirector.java index c13ab11..00ba21f 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AlertDirector.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AlertDirector.java @@ -61,4 +61,16 @@ public static void RemoveAllVdsAlerts(Guid vdsId, boolean removeConfigAlerts) { DbFacade.getInstance().getAuditLogDao().removeAllForVds(vdsId, removeConfigAlerts); } + + /** + * Removes the brick down alert. + * + * @param vdsId + * The VDS id. + * @param type + * The type. + */ + public static void RemoveAlertsByBrickVolumeId(Guid volumeId, String brickpath, String logtype) { + DbFacade.getInstance().getAuditLogDao().removeByBrickVolumeId(volumeId, brickpath, logtype); + } } 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 84cf38b..66e7f07 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 @@ -109,6 +109,7 @@ auditLog.setQuotaId(auditLogable.getQuotaIdForLog()); auditLog.setQuotaName(auditLogable.getQuotaNameForLog()); auditLog.setCallStack(auditLogable.getCallStack()); + auditLog.setBrickPath(auditLogable.getBrickPath()); } private void logMessage(AuditLogSeverity severity, String logMessage) { diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java index d71497e..8f79b91 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/AuditLogableBase.java @@ -105,6 +105,7 @@ private Guid quotaIdForLog; private String quotaNameForLog; private String callStack; + private String brickPath; /** * @see org.ovirt.engine.core.common.businessentities.AuditLog#repeatable @@ -146,6 +147,7 @@ this.origin = auditLog.getOrigin(); this.external = auditLog.isExternal(); this.callStack = auditLog.getCallStack(); + this.brickPath = auditLog.getBrickPath(); } public Guid getUserId() { @@ -873,4 +875,13 @@ public void setAuditLogDirector(AuditLogDirector auditLogDirector) { this.auditLogDirector = auditLogDirector; } + + public String getBrickPath() { + return brickPath; + } + + public void setBrickPath(String brickPath) { + this.brickPath = brickPath; + } + } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/gluster/GlusterAuditLogUtil.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/gluster/GlusterAuditLogUtil.java index b6d905a..9633544 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/gluster/GlusterAuditLogUtil.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/auditloghandling/gluster/GlusterAuditLogUtil.java @@ -62,4 +62,24 @@ auditLogDirector.log(logable, logType); } + + public void logAuditMessage(final Guid clusterId, + final GlusterVolumeEntity volume, + final VDS server, + final AuditLogType logType, + final Map<String, String> customValues, final String brickPath) { + + AuditLogableBase logable = new AuditLogableBase(); + logable.setVds(server); + logable.setGlusterVolume(volume); + logable.setVdsGroupId(clusterId); + logable.setBrickPath(brickPath); + if (customValues != null) { + for (Entry<String, String> entry : customValues.entrySet()) { + logable.addCustomValue(entry.getKey(), entry.getValue()); + } + } + + auditLogDirector.log(logable, logType); + } } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAO.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAO.java index 239e7b8..1f92634 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAO.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAO.java @@ -92,6 +92,18 @@ List<AuditLog> getAllByVMTemplateId(Guid vmTemplateId, Guid userID, boolean isFiltered); /** + * Retrieves all audit log entries for the given VOLUME ID. + * @param volumeID + * The ID of the volume + * @param brickpath + * brick's qualified name. + * @param logtype + * auditlog alert/event type + * @return the list of entries + */ + void removeByBrickVolumeId(Guid volumeId, String brickpath, String logtype); + + /** * Saves the provided audit log * * @param entry diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAODbFacadeImpl.java index 300114f..b5f794f 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/AuditLogDAODbFacadeImpl.java @@ -111,6 +111,16 @@ } @Override + public void removeByBrickVolumeId(Guid volumeId, String brickpath, String audit_log_type){ + MapSqlParameterSource parameterSource = + getCustomMapSqlParameterSource() + .addValue("volume_id", volumeId) + .addValue("brick_path", brickpath) + .addValue("audit_log_type", audit_log_type); + getCallsHandler().executeModification("RemoveAuditLogByBrickVolumeId", parameterSource); + } + + @Override public void save(AuditLog event) { if (event.isExternal()) { getCallsHandler().executeModification("InsertExternalAuditLog", getExternalEventSqlMapper(event)); @@ -154,7 +164,8 @@ .addValue("gluster_volume_id", event.getGlusterVolumeId()) .addValue("gluster_volume_name", event.getGlusterVolumeName()) .addValue("call_stack", event.getCallStack()) - .addValue("repeatable", event.isRepeatable()); + .addValue("repeatable", event.isRepeatable()) + .addValue("brick_path", event.getBrickPath()); } private MapSqlParameterSource getExternalEventSqlMapper(AuditLog event) { 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 69a55d3..1a0814c 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties @@ -851,6 +851,7 @@ GLUSTER_SERVICE_RESTART_FAILED=Could not re-start ${servicetype} service on host ${VdsName} on cluster ${VdsGroupName}. GLUSTER_VOLUME_BRICK_ADDED=Brick [${brickpath}] on host [${servername}] added to volume [${glusterVolumeName}] GLUSTER_BRICK_STATUS_CHANGED=Detected change in status of brick ${brickpath} of volume ${glusterVolumeName} from ${oldValue} to ${newValue}. +GLUSTER_BRICK_STATUS_DOWN=Status of brick ${brickpath} of volume ${glusterVolumeName} is down. GLUSTER_GEOREP_SESSION_DELETED_FROM_CLI=Detected deletion of geo-replication session ${geoRepSessionKey} from volume ${glusterVolumeName} GLUSTER_GEOREP_SESSION_DETECTED_FROM_CLI=Detected new geo-replication session ${geoRepSessionKey} for volume ${glusterVolumeName}. Adding it to engine. GLUSTER_GEOREP_SESSION_REFRESH=Refreshed geo-replication sessions for volume ${glusterVolumeName}. diff --git a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/AuditLogDaoMocker.java b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/AuditLogDaoMocker.java index 2c5d1e6..6f4ea40 100644 --- a/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/AuditLogDaoMocker.java +++ b/backend/manager/modules/vdsbroker/src/test/java/org/ovirt/engine/core/vdsbroker/AuditLogDaoMocker.java @@ -10,8 +10,7 @@ public class AuditLogDaoMocker implements AuditLogDAO { - private List<AuditLog> records = new ArrayList<>(); - + private final List<AuditLog> records = new ArrayList<AuditLog>(); @Override public List<AuditLog> getAllWithQuery(String query) { return null; @@ -53,6 +52,11 @@ } @Override + public void removeByBrickVolumeId(Guid volumeId, String brickpath, String audit_log_type){ + + } + + @Override public void save(AuditLog entry) { records.add(entry); } diff --git a/packaging/dbscripts/audit_log_sp.sql b/packaging/dbscripts/audit_log_sp.sql index 5265f87..19dcddf 100644 --- a/packaging/dbscripts/audit_log_sp.sql +++ b/packaging/dbscripts/audit_log_sp.sql @@ -29,7 +29,8 @@ v_gluster_volume_id UUID, v_gluster_volume_name VARCHAR(1000), v_call_stack text, - v_repeatable BOOLEAN) + v_repeatable BOOLEAN, + v_brick_path text) AS $procedure$ DECLARE v_min_alret_severity INTEGER; @@ -38,15 +39,15 @@ -- insert regular log messages (non alerts) if (v_severity < v_min_alret_severity) then -INSERT INTO audit_log(LOG_TIME, log_type, log_type_name, severity,message, user_id, USER_NAME, vds_id, VDS_NAME, vm_id, VM_NAME,vm_template_id,VM_TEMPLATE_NAME,storage_pool_id,STORAGE_POOL_NAME,storage_domain_id,STORAGE_DOMAIN_NAME,vds_group_id,vds_group_name, correlation_id, job_id, quota_id, quota_name, gluster_volume_id, gluster_volume_name, call_stack) - VALUES(v_log_time, v_log_type, v_log_type_name, v_severity, v_message, v_user_id, v_user_name, v_vds_id, v_vds_name, v_vm_id, v_vm_name,v_vm_template_id,v_vm_template_name,v_storage_pool_id,v_storage_pool_name,v_storage_domain_id,v_storage_domain_name,v_vds_group_id,v_vds_group_name, v_correlation_id, v_job_id, v_quota_id, v_quota_name, v_gluster_volume_id, v_gluster_volume_name, v_call_stack); +INSERT INTO audit_log(LOG_TIME, log_type, log_type_name, severity,message, user_id, USER_NAME, vds_id, VDS_NAME, vm_id, VM_NAME,vm_template_id,VM_TEMPLATE_NAME,storage_pool_id,STORAGE_POOL_NAME,storage_domain_id,STORAGE_DOMAIN_NAME,vds_group_id,vds_group_name, correlation_id, job_id, quota_id, quota_name, gluster_volume_id, gluster_volume_name, call_stack, brick_path) + VALUES(v_log_time, v_log_type, v_log_type_name, v_severity, v_message, v_user_id, v_user_name, v_vds_id, v_vds_name, v_vm_id, v_vm_name,v_vm_template_id,v_vm_template_name,v_storage_pool_id,v_storage_pool_name,v_storage_domain_id,v_storage_domain_name,v_vds_group_id,v_vds_group_name, v_correlation_id, v_job_id, v_quota_id, v_quota_name, v_gluster_volume_id, v_gluster_volume_name, v_call_stack, v_brick_path); v_audit_log_id := CURRVAL('audit_log_seq'); else if (v_repeatable OR not exists(select audit_log_id from audit_log where vds_name = v_vds_name and log_type = v_log_type and not deleted)) then -INSERT INTO audit_log(LOG_TIME, log_type, log_type_name, severity,message, user_id, USER_NAME, vds_id, VDS_NAME, vm_id, VM_NAME,vm_template_id,VM_TEMPLATE_NAME,storage_pool_id,STORAGE_POOL_NAME,storage_domain_id,STORAGE_DOMAIN_NAME,vds_group_id,vds_group_name, correlation_id, job_id, quota_id, quota_name, gluster_volume_id, gluster_volume_name, call_stack) - VALUES(v_log_time, v_log_type, v_log_type_name, v_severity, v_message, v_user_id, v_user_name, v_vds_id, v_vds_name, v_vm_id, v_vm_name,v_vm_template_id,v_vm_template_name,v_storage_pool_id,v_storage_pool_name,v_storage_domain_id,v_storage_domain_name,v_vds_group_id,v_vds_group_name, v_correlation_id, v_job_id, v_quota_id, v_quota_name, v_gluster_volume_id, v_gluster_volume_name, v_call_stack); +INSERT INTO audit_log(LOG_TIME, log_type, log_type_name, severity,message, user_id, USER_NAME, vds_id, VDS_NAME, vm_id, VM_NAME,vm_template_id,VM_TEMPLATE_NAME,storage_pool_id,STORAGE_POOL_NAME,storage_domain_id,STORAGE_DOMAIN_NAME,vds_group_id,vds_group_name, correlation_id, job_id, quota_id, quota_name, gluster_volume_id, gluster_volume_name, call_stack, brick_path) + VALUES(v_log_time, v_log_type, v_log_type_name, v_severity, v_message, v_user_id, v_user_name, v_vds_id, v_vds_name, v_vm_id, v_vm_name,v_vm_template_id,v_vm_template_name,v_storage_pool_id,v_storage_pool_name,v_storage_domain_id,v_storage_domain_name,v_vds_group_id,v_vds_group_name, v_correlation_id, v_job_id, v_quota_id, v_quota_name, v_gluster_volume_id, v_gluster_volume_name, v_call_stack, v_brick_path); v_audit_log_id := CURRVAL('audit_log_seq'); else @@ -84,6 +85,7 @@ v_gluster_volume_id UUID, v_gluster_volume_name VARCHAR(1000), v_call_stack text, + v_brick_path text, v_origin VARCHAR(25), v_custom_event_id INTEGER, v_event_flood_in_sec INTEGER, @@ -102,8 +104,8 @@ IF (v_max_message_length IS NOT NULL and length(v_message) > v_max_message_length) THEN v_truncated_message := substr(v_message, 1, v_max_message_length -3) || '...'; END IF; - INSERT INTO audit_log(LOG_TIME, log_type, log_type_name, severity,message, user_id, USER_NAME, vds_id, VDS_NAME, vm_id, VM_NAME,vm_template_id,VM_TEMPLATE_NAME,storage_pool_id,STORAGE_POOL_NAME,storage_domain_id,STORAGE_DOMAIN_NAME,vds_group_id,vds_group_name, correlation_id, job_id, quota_id, quota_name, gluster_volume_id, gluster_volume_name, call_stack, origin, custom_event_id, event_flood_in_sec, custom_data ) - VALUES(v_log_time, v_log_type, v_log_type_name, v_severity, v_truncated_message, v_user_id, v_user_name, v_vds_id, v_vds_name, v_vm_id, v_vm_name,v_vm_template_id,v_vm_template_name,v_storage_pool_id,v_storage_pool_name,v_storage_domain_id,v_storage_domain_name,v_vds_group_id,v_vds_group_name, v_correlation_id, v_job_id, v_quota_id, v_quota_name, v_gluster_volume_id, v_gluster_volume_name, v_call_stack, v_origin, v_custom_event_id, v_event_flood_in_sec, v_custom_data); + INSERT INTO audit_log(LOG_TIME, log_type, log_type_name, severity,message, user_id, USER_NAME, vds_id, VDS_NAME, vm_id, VM_NAME,vm_template_id,VM_TEMPLATE_NAME,storage_pool_id,STORAGE_POOL_NAME,storage_domain_id,STORAGE_DOMAIN_NAME,vds_group_id,vds_group_name, correlation_id, job_id, quota_id, quota_name, gluster_volume_id, gluster_volume_name, call_stack, origin, custom_event_id, event_flood_in_sec, custom_data, brick_path) + VALUES(v_log_time, v_log_type, v_log_type_name, v_severity, v_truncated_message, v_user_id, v_user_name, v_vds_id, v_vds_name, v_vm_id, v_vm_name,v_vm_template_id,v_vm_template_name,v_storage_pool_id,v_storage_pool_name,v_storage_domain_id,v_storage_domain_name,v_vds_group_id,v_vds_group_name, v_correlation_id, v_job_id, v_quota_id, v_quota_name, v_gluster_volume_id, v_gluster_volume_name, v_call_stack, v_origin, v_custom_event_id, v_event_flood_in_sec, v_custom_data, v_brick_path); v_audit_log_id := CURRVAL('audit_log_seq'); END; $procedure$ @@ -196,6 +198,14 @@ END; $procedure$ LANGUAGE plpgsql; +Create or replace FUNCTION RemoveAuditLogByBrickVolumeId(v_volume_id UUID, v_brick_path text, v_audit_log_type VARCHAR(100)) RETURNS VOID + AS $procedure$ +BEGIN + DELETE FROM audit_log + WHERE gluster_volume_id = v_volume_id AND brick_path = v_brick_path AND log_type_name = v_audit_log_type ; +END; $procedure$ +LANGUAGE plpgsql; + Create or replace FUNCTION GetAuditLogLaterThenDate(v_date TIMESTAMP WITH TIME ZONE) RETURNS SETOF audit_log STABLE AS $procedure$ diff --git a/packaging/dbscripts/upgrade/03_06_1360_add_brickPath_audit_log_table.sql b/packaging/dbscripts/upgrade/03_06_1360_add_brickPath_audit_log_table.sql new file mode 100644 index 0000000..619af28 --- /dev/null +++ b/packaging/dbscripts/upgrade/03_06_1360_add_brickPath_audit_log_table.sql @@ -0,0 +1,2 @@ +ALTER TABLE audit_log ADD COLUMN brick_path text; +ALTER TABLE audit_log ALTER COLUMN brick_path SET DEFAULT ''::text; -- To view, visit https://gerrit.ovirt.org/40566 To unsubscribe, visit https://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ibad5ed6078bd33cd9c9decdabca6747709be4ba4 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Karnan t c <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
