Commit 34efffe8 authored by Marcos Rocha's avatar Marcos Rocha Committed by Mayra Cabrera

Remove project loads for dast profiles policy checks

his Merge Request removes the unnecessary loads of the project during the dast_profiles policy check

Changelog: fixed
MR: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/78312
EE: true
parent 55a4cc5a
...@@ -6,16 +6,21 @@ class DastScannerProfilesFinder ...@@ -6,16 +6,21 @@ class DastScannerProfilesFinder
end end
def execute def execute
relation = DastScannerProfile.all relation = init_collection
relation = by_id(relation) relation = by_id(relation)
relation = by_project(relation) relation = by_project(relation)
by_name(relation) relation = by_name(relation)
relation.with_project
end end
private private
attr_reader :params attr_reader :params
def init_collection
DastScannerProfile.all
end
def by_id(relation) def by_id(relation)
return relation unless params[:ids] return relation unless params[:ids]
......
...@@ -9,28 +9,25 @@ class DastSiteProfilesFinder ...@@ -9,28 +9,25 @@ class DastSiteProfilesFinder
relation = DastSiteProfile.with_dast_site_and_validation relation = DastSiteProfile.with_dast_site_and_validation
relation = by_id(relation) relation = by_id(relation)
relation = by_project(relation) relation = by_project(relation)
by_name(relation) relation = by_name(relation)
relation.with_project
end end
private private
attr_reader :params attr_reader :params
# rubocop: disable CodeReuse/ActiveRecord
def by_id(relation) def by_id(relation)
return relation if params[:id].nil? return relation if params[:id].nil?
relation.where(id: params[:id]).limit(1) relation.id_in(params[:id]).limit(1)
end end
# rubocop: enable CodeReuse/ActiveRecord
# rubocop: disable CodeReuse/ActiveRecord
def by_project(relation) def by_project(relation)
return relation if params[:project_id].nil? return relation if params[:project_id].nil?
relation.where(project_id: params[:project_id]) relation.with_project_id(params[:project_id])
end end
# rubocop: enable CodeReuse/ActiveRecord
def by_name(relation) def by_name(relation)
return relation unless params[:name] return relation unless params[:name]
......
...@@ -10,6 +10,7 @@ class DastScannerProfile < ApplicationRecord ...@@ -10,6 +10,7 @@ class DastScannerProfile < ApplicationRecord
scope :project_id_in, -> (project_ids) { where(project_id: project_ids) } scope :project_id_in, -> (project_ids) { where(project_id: project_ids) }
scope :with_name, -> (name) { where(name: name) } scope :with_name, -> (name) { where(name: name) }
scope :with_project, -> { includes(:project) }
enum scan_type: { enum scan_type: {
passive: 1, passive: 1,
......
...@@ -20,6 +20,8 @@ class DastSiteProfile < ApplicationRecord ...@@ -20,6 +20,8 @@ class DastSiteProfile < ApplicationRecord
scope :with_dast_site_and_validation, -> { includes(dast_site: :dast_site_validation) } scope :with_dast_site_and_validation, -> { includes(dast_site: :dast_site_validation) }
scope :with_name, -> (name) { where(name: name) } scope :with_name, -> (name) { where(name: name) }
scope :with_project_id, -> (project_id) { where(project_id: project_id) }
scope :with_project, -> { includes(:project) }
after_destroy :cleanup_dast_site after_destroy :cleanup_dast_site
......
...@@ -226,8 +226,7 @@ RSpec.describe Ci::CreatePipelineService do ...@@ -226,8 +226,7 @@ RSpec.describe Ci::CreatePipelineService do
1 + # INSERT INTO "ci_builds" 1 + # INSERT INTO "ci_builds"
1 + # INSERT INTO "ci_builds_metadata" 1 + # INSERT INTO "ci_builds_metadata"
1 + # SELECT "taggings".* FROM "taggings" 1 + # SELECT "taggings".* FROM "taggings"
1 + # SELECT "ci_pipelines"."id" FROM 1 # SELECT "ci_pipelines"."id" FROM
1 # SELECT "projects".id
end end
def execute_service def execute_service
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment