Skip to content

Disable maintenance mode - fix broken Ruby command

What does this MR do?

The current Ruby command to disable maintenance mode does not work:

irb(main):013:0> ::Gitlab::CurrentSettings.update_attributes!(maintenance_mode: false)
Traceback (most recent call last):
        2: from (irb):13
        1: from lib/gitlab/current_settings.rb:32:in `method_missing'
NoMethodError (undefined method `update_attributes!' for #<ApplicationSetting:0x00007fbcc6e99938>)
Did you mean?  update_attribute

I tried various combinations:

irb(main):014:0> ::Gitlab::CurrentSettings.update_attribute!(maintenance_mode: false)
Traceback (most recent call last):
        3: from (irb):13
        2: from (irb):14:in `rescue in irb_binding'
        1: from lib/gitlab/current_settings.rb:32:in `method_missing'
NoMethodError (undefined method `update_attribute!' for #<ApplicationSetting:0x00007fbcc5286fe8>)
Did you mean?  update_attribute
irb(main):015:0> ::Gitlab::CurrentSettings.update_attribute(maintenance_mode: false)
Traceback (most recent call last):
        3: from (irb):14
        2: from (irb):15:in `rescue in irb_binding'
        1: from lib/gitlab/current_settings.rb:32:in `method_missing'
ArgumentError (wrong number of arguments (given 1, expected 2))
irb(main):016:0> ::Gitlab::CurrentSettings.update_attribute('maintenance_mode', false)
=> true

While ::Gitlab::CurrentSettings.update_attribute('maintenance_mode', false) works - I think it makes more sense to use ::Gitlab::CurrentSettings.update!(maintenance_mode: false) instead, since the Ruby command is similar to how you would enable maintenance mode.

This of course works:

irb(main):012:0> ::Gitlab::CurrentSettings.update!(maintenance_mode: false)
=> true

Related issues

Author's checklist

If you are only adding documentation, do not add any of the following labels:

  • ~"feature"
  • ~"frontend"
  • ~"backend"
  • ~"bug"
  • ~"database"

These labels cause the MR to be added to code verification QA issues.

Review checklist

Documentation-related MRs should be reviewed by a Technical Writer for a non-blocking review, based on Documentation Guidelines and the Style Guide.

  • If the content requires it, ensure the information is reviewed by a subject matter expert.
  • Technical writer review items:
    • Ensure docs metadata is present and up-to-date.
    • Ensure the appropriate labels are added to this MR.
    • If relevant to this MR, ensure content topic type principles are in use, including:
      • The headings should be something you'd do a Google search for. Instead of Default behavior, say something like Default behavior when you close an issue.
      • The headings (other than the page title) should be active. Instead of Configuring GDK, say something like Configure GDK.
      • Any task steps should be written as a numbered list.
      • If the content still needs to be edited for topic types, you can create a follow-up issue with the docs-technical-debt label.
  • Review by assigned maintainer, who can always request/require the above reviews. Maintainer's review can occur before or after a technical writer review.
  • Ensure a release milestone is set.
Edited by Anton Smith

Merge request reports