Oved Ourfali has uploaded a new change for review. Change subject: Add new column to audit_log SQL table for stack trace ......................................................................
Add new column to audit_log SQL table for stack trace This patch adds a call stack column to the audit_log table. Change-Id: I9c61ab5e1efff01d26594bbddb43060a86641de3 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=966198 Signed-off-by: Oved Ourfali <[email protected]> --- M backend/manager/dbscripts/audit_log_sp.sql A backend/manager/dbscripts/upgrade/03_03_0220_add_stack_trace_to_audit_log.sql 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/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/dao/AuditLogDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/resources/fixtures.xml 7 files changed, 38 insertions(+), 9 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/11/15811/1 diff --git a/backend/manager/dbscripts/audit_log_sp.sql b/backend/manager/dbscripts/audit_log_sp.sql index 41eb1f4..2093d78 100644 --- a/backend/manager/dbscripts/audit_log_sp.sql +++ b/backend/manager/dbscripts/audit_log_sp.sql @@ -27,7 +27,8 @@ v_correlation_id VARCHAR(50), v_job_id UUID, v_gluster_volume_id UUID, - v_gluster_volume_name VARCHAR(1000)) + v_gluster_volume_name VARCHAR(1000), + v_call_stack text) AS $procedure$ DECLARE v_min_alret_severity INTEGER; @@ -36,15 +37,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) - 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); +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); v_audit_log_id := CURRVAL('audit_log_seq'); else if (not exists(select audit_log_id from audit_log where vds_name = v_vds_name and log_type = v_log_type)) 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) - 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); +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); v_audit_log_id := CURRVAL('audit_log_seq'); else @@ -81,6 +82,7 @@ v_job_id UUID, v_gluster_volume_id UUID, v_gluster_volume_name VARCHAR(1000), + v_call_stack text, v_origin VARCHAR(25), v_custom_event_id INTEGER, v_event_flood_in_sec INTEGER, @@ -99,8 +101,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,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_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 ) + 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_audit_log_id := CURRVAL('audit_log_seq'); END; $procedure$ diff --git a/backend/manager/dbscripts/upgrade/03_03_0220_add_stack_trace_to_audit_log.sql b/backend/manager/dbscripts/upgrade/03_03_0220_add_stack_trace_to_audit_log.sql new file mode 100644 index 0000000..ad9f648 --- /dev/null +++ b/backend/manager/dbscripts/upgrade/03_03_0220_add_stack_trace_to_audit_log.sql @@ -0,0 +1 @@ +select fn_db_add_column('audit_log', 'stack_trace', 'TEXT DEFAULT '''''); 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 8861e9d..d25940f 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 storagePoolType; private String compatibilityVersion; private String quotaEnforcementType; + private String callStack; public AuditLog() { } @@ -429,6 +430,7 @@ result = prime * result + ((customData == null) ? 0 : customData.hashCode()); result = prime * result + (external ? 1231 : 1237); result = prime * result + (deleted ? 1231 : 1237); + result = prime * result + ((callStack == null) ? 0 : callStack.hashCode()); return result; } @@ -464,6 +466,15 @@ && eventFloodInSec == other.eventFloodInSec && ObjectUtils.objectsEqual(customData, other.customData) && external == other.external - && deleted == other.deleted); + && deleted == other.deleted + && ObjectUtils.objectsEqual(callStack, other.callStack)); + } + + public String getCallStack() { + return callStack; + } + + public void setCallStack(String callStack) { + this.callStack = callStack; } } 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 a751ef9..8f311f3 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 @@ -897,6 +897,7 @@ auditLog.setExternal(auditLogable.isExternal()); auditLog.setQuotaId(auditLogable.getQuotaIdForLog()); auditLog.setQuotaName(auditLogable.getQuotaNameForLog()); + auditLog.setCallStack(auditLog.getCallStack()); getDbFacadeInstance().getAuditLogDao().save(auditLog); if (!"".equals(loggerString)) { log.infoFormat(loggerString, resolvedMessage); 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 240d9a1..3b844fa 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 @@ -82,6 +82,7 @@ private String quotaEnforcementType; private Guid quotaIdForLog; private String quotaNameForLog; + private String callStack; public AuditLogableBase() { } @@ -116,6 +117,7 @@ this.mVmTemplateName = auditLog.getvm_template_name(); this.origin = auditLog.getOrigin(); this.external = auditLog.isExternal(); + this.callStack = auditLog.getCallStack(); } public NGuid getUserId() { if (mUserId != null && mUserId.equals(Guid.Empty) && getCurrentUser() != null) { @@ -708,4 +710,12 @@ public void setQuotaNameForLog(String quotaNameForLog) { this.quotaNameForLog = quotaNameForLog; } + + public String getCallStack() { + return callStack; + } + + public void setCallStack(String callStack) { + this.callStack = callStack; + } } 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 d2a5026..2df84bd 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 @@ -137,7 +137,8 @@ .addValue("quota_id", event.getQuotaId()) .addValue("quota_name", event.getQuotaName()) .addValue("gluster_volume_id", event.getGlusterVolumeId()) - .addValue("gluster_volume_name", event.getGlusterVolumeName()); + .addValue("gluster_volume_name", event.getGlusterVolumeName()) + .addValue("call_stack", event.getCallStack()); } private MapSqlParameterSource getExternalEventSqlMapper(AuditLog event) { @@ -243,6 +244,7 @@ entity.setEventFloodInSec(rs.getInt("event_flood_in_sec")); entity.setCustomData(rs.getString("custom_data")); entity.setDeleted(rs.getBoolean("deleted")); + entity.setCallStack(rs.getString("call_stack")); return entity; } } diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 9cc5743..8dadfc2 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -3773,6 +3773,7 @@ <column>event_flood_in_sec</column> <column>custom_data</column> <column>deleted</column> + <column>call_stack</column> <row> <value>44291</value> <value>9bf7c640-b620-456f-a550-0348f366544a</value> @@ -3806,6 +3807,7 @@ <value>30</value> <value></value> <value>false</value> + <value></value> </row> <row> <value>44292</value> -- To view, visit http://gerrit.ovirt.org/15811 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9c61ab5e1efff01d26594bbddb43060a86641de3 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Oved Ourfali <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
