diff options
author | Lin Jen-Shin <godfat@godfat.org> | 2019-07-08 16:07:21 +0300 |
---|---|---|
committer | Lin Jen-Shin <godfat@godfat.org> | 2019-07-08 16:07:21 +0300 |
commit | 886521c7e563e04574fd803a22476f1158961fad (patch) | |
tree | 642291847190298979eff5e3e4a06ca43039b8d7 /app/controllers/projects/deployments_controller.rb | |
parent | d14d1340c6d26a132e8db1f9b883aa87276b457c (diff) | |
parent | 56c129293578cb620daf1c19b1bc61cd18d9fa83 (diff) |
Merge branch '63475-fix-n-1' into 'master'
Reduce N+1 queries in MergeRequestsController#ci_environment_status
See merge request gitlab-org/gitlab-ce!30224
Diffstat (limited to 'app/controllers/projects/deployments_controller.rb')
-rw-r--r-- | app/controllers/projects/deployments_controller.rb | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/app/controllers/projects/deployments_controller.rb b/app/controllers/projects/deployments_controller.rb index 0a009477d61..32111b07a0b 100644 --- a/app/controllers/projects/deployments_controller.rb +++ b/app/controllers/projects/deployments_controller.rb @@ -15,24 +15,22 @@ class Projects::DeploymentsController < Projects::ApplicationController # rubocop: enable CodeReuse/ActiveRecord def metrics - return render_404 unless deployment.has_metrics? + return render_404 unless deployment_metrics.has_metrics? - @metrics = deployment.metrics + @metrics = deployment_metrics.metrics if @metrics&.any? render json: @metrics, status: :ok else head :no_content end - rescue NotImplementedError - render_404 end def additional_metrics - return render_404 unless deployment.has_metrics? + return render_404 unless deployment_metrics.has_metrics? respond_to do |format| format.json do - metrics = deployment.additional_metrics + metrics = deployment_metrics.additional_metrics if metrics.any? render json: metrics @@ -45,6 +43,10 @@ class Projects::DeploymentsController < Projects::ApplicationController private + def deployment_metrics + @deployment_metrics ||= DeploymentMetrics.new(deployment.project, deployment) + end + # rubocop: disable CodeReuse/ActiveRecord def deployment @deployment ||= environment.deployments.find_by(iid: params[:id]) |