Skip to content

Fix uninitialized constant SystemDashboardService in custom dashboards

Adrien Kohlbecker requested to merge ak/fix-undefined-value into master

What does this MR do?

Fixes the following uninitialized constant error, when accessing a custom metrics dashboard

NameError at /root/autodevops-deploy/environments/31/metrics_dashboard.json
===========================================================================

> uninitialized constant SystemDashboardService

app/services/metrics/dashboard/custom_metric_embed_service.rb, line 43
----------------------------------------------------------------------

   38           end
   39   
   40           # All custom metrics are displayed on the system dashboard.
   41           # Nil is acceptable as we'll default to the system dashboard.
   42           def valid_dashboard?(dashboard)
>  43             dashboard.nil? || SystemDashboardService.system_dashboard?(dashboard)
   44           end
   45         end
   46   
   47         # Returns a new dashboard with only the matching
   48         # metrics from the system dashboard, stripped of

App backtrace
-------------

 - app/services/metrics/dashboard/custom_metric_embed_service.rb:43:in `valid_dashboard?'
 - app/services/metrics/dashboard/custom_metric_embed_service.rb:22:in `valid_params?'
 - lib/gitlab/metrics/dashboard/service_selector.rb:40:in `custom_metric_embed?'
 - lib/gitlab/metrics/dashboard/service_selector.rb:20:in `call'
 - ee/lib/ee/gitlab/metrics/dashboard/service_selector.rb:14:in `call'
 - lib/gitlab/metrics/dashboard/finder.rb:78:in `service_for'
 - lib/gitlab/metrics/dashboard/finder.rb:36:in `find'
 - app/controllers/concerns/metrics_dashboard.rb:9:in `metrics_dashboard'
 - ee/lib/gitlab/ip_address_state.rb:10:in `with'
 - ee/app/controllers/ee/application_controller.rb:43:in `set_current_ip_address'
 - lib/gitlab/session.rb:11:in `with_session'
 - app/controllers/application_controller.rb:446:in `set_session_storage'
 - lib/gitlab/i18n.rb:55:in `with_locale'
 - lib/gitlab/i18n.rb:61:in `with_user_locale'
 - app/controllers/application_controller.rb:440:in `set_locale'
 - lib/gitlab/middleware/rails_queue_duration.rb:27:in `call'
 - lib/gitlab/metrics/rack_middleware.rb:17:in `block in call'
 - lib/gitlab/metrics/transaction.rb:62:in `run'
 - lib/gitlab/metrics/rack_middleware.rb:17:in `call'
 - lib/gitlab/request_profiler/middleware.rb:17:in `call'
 - lib/gitlab/query_limiting/middleware.rb:17:in `block in call'
 - lib/gitlab/query_limiting/transaction.rb:39:in `run'
 - lib/gitlab/query_limiting/middleware.rb:16:in `call'
 - ee/lib/gitlab/jira/middleware.rb:19:in `call'
 - lib/gitlab/middleware/go.rb:20:in `call'
 - lib/gitlab/etag_caching/middleware.rb:13:in `call'
 - lib/gitlab/middleware/correlation_id.rb:16:in `block in call'
 - lib/gitlab/middleware/correlation_id.rb:15:in `call'
 - lib/gitlab/middleware/multipart.rb:117:in `call'
 - lib/gitlab/middleware/read_only/controller.rb:48:in `call'
 - lib/gitlab/middleware/read_only.rb:18:in `call'
 - lib/gitlab/middleware/basic_health_check.rb:25:in `call'
 - lib/gitlab/request_context.rb:32:in `call'
 - lib/gitlab/middleware/static.rb:11:in `call'
 - lib/gitlab/webpack/dev_server_middleware.rb:27:in `perform_request'
 - lib/gitlab/metrics/requests_rack_middleware.rb:49:in `call'
 - lib/gitlab/middleware/release_env.rb:12:in `call'

Screenshots

Does this MR meet the acceptance criteria?

Conformity

Availability and Testing

Security

If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:

  • Label as security and @ mention @gitlab-com/gl-security/appsec
  • The MR includes necessary changes to maintain consistency between UI, API, email, or other methods
  • Security reports checked/validated by a reviewer from the AppSec team
Edited by 🤖 GitLab Bot 🤖

Merge request reports