Skip to content
代码片段 群组 项目
未验证 提交 debda5dd 编辑于 作者: Gregory Havenga's avatar Gregory Havenga 提交者: GitLab
浏览文件

Seperate gitlab_sec updates from gitlab_main transaction

Changelog: changed
EE: true
上级 fcf93c07
No related branches found
No related tags found
无相关合并请求
...@@ -39,40 +39,28 @@ def execute ...@@ -39,40 +39,28 @@ def execute
) )
end end
response = nil vulnerability_service_response = Vulnerability.transaction do
Gitlab::Database::QueryAnalyzers::PreventCrossDatabaseModification.temporary_ignore_tables_in_transaction( finding.save!
%w[ vulnerability.vulnerability_finding = finding
vulnerabilities vulnerability.save!
vulnerability_historical_statistics finding.update!(vulnerability_id: vulnerability.id)
vulnerability_identifiers
vulnerability_occurrences vulnerability.vulnerability_read.update!(traversal_ids: project.namespace.traversal_ids)
vulnerability_occurrence_identifiers update_security_statistics!
vulnerability_reads
vulnerability_scanners Statistics::UpdateService.update_for(vulnerability)
cluster_agents
project_settings ServiceResponse.success(payload: { vulnerability: vulnerability })
], url: 'https://gitlab.com/gitlab-org/gitlab/-/issues/476584' end
) do
response = Vulnerability.transaction do Project.transaction do
finding.save! agent.update!(has_vulnerabilities: true) unless agent.has_vulnerabilities?
vulnerability.vulnerability_finding = finding project.mark_as_vulnerable!
vulnerability.save!
finding.update!(vulnerability_id: vulnerability.id)
agent.update!(has_vulnerabilities: true) unless agent.has_vulnerabilities?
vulnerability.vulnerability_read.update!(traversal_ids: project.namespace.traversal_ids)
project.mark_as_vulnerable!
update_security_statistics!
Statistics::UpdateService.update_for(vulnerability)
ServiceResponse.success(payload: { vulnerability: vulnerability })
end
end end
process_archival_and_traversal_ids_changes if response&.success? process_archival_and_traversal_ids_changes if vulnerability_service_response&.success?
response vulnerability_service_response
rescue ActiveRecord::RecordInvalid => e rescue ActiveRecord::RecordInvalid => e
ServiceResponse.error(message: e.message) ServiceResponse.error(message: e.message)
end end
......
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册