Commit 57aabe16 authored by Mayra Cabrera's avatar Mayra Cabrera

Merge branch 'outbound_local_requests_whitelist_nil' into 'master'

Fix outbound_local_requests_whitelist nil for existing ApplicationSetting records

Closes #65096

See merge request gitlab-org/gitlab-ce!31123
parents 2179c7cd 64f33240
# frozen_string_literal: true
class ChangeOutboundLocalRequestsWhitelistDefault < ActiveRecord::Migration[5.2]
include Gitlab::Database::MigrationHelpers
# Set this constant to true if this migration requires downtime.
DOWNTIME = false
class ApplicationSetting < ActiveRecord::Base
self.table_name = 'application_settings'
end
def up
default_value = []
change_column_default(:application_settings, :outbound_local_requests_whitelist, default_value)
ApplicationSetting
.where(outbound_local_requests_whitelist: nil)
.update(outbound_local_requests_whitelist: default_value)
change_column_null(:application_settings, :outbound_local_requests_whitelist, false)
end
def down
change_column_null(:application_settings, :outbound_local_requests_whitelist, true)
change_column_default(:application_settings, :outbound_local_requests_whitelist, nil)
end
end
......@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2019_07_15_142138) do
ActiveRecord::Schema.define(version: 2019_07_25_012225) do
# These are extensions that must be enabled in order to support this database
enable_extension "pg_trgm"
......@@ -228,7 +228,7 @@ ActiveRecord::Schema.define(version: 2019_07_15_142138) do
t.boolean "lock_memberships_to_ldap", default: false, null: false
t.boolean "time_tracking_limit_to_hours", default: false, null: false
t.string "grafana_url", default: "/-/grafana", null: false
t.string "outbound_local_requests_whitelist", limit: 255, array: true
t.string "outbound_local_requests_whitelist", limit: 255, default: [], null: false, array: true
t.integer "raw_blob_request_limit", default: 300, null: false
t.index ["custom_project_templates_group_id"], name: "index_application_settings_on_custom_project_templates_group_id"
t.index ["file_template_project_id"], name: "index_application_settings_on_file_template_project_id"
......
# frozen_string_literal: true
require 'spec_helper'
require Rails.root.join('db', 'migrate', '20190725012225_change_outbound_local_requests_whitelist_default.rb')
describe ChangeOutboundLocalRequestsWhitelistDefault, :migration do
let(:application_settings) { table(:application_settings) }
it 'defaults to empty array' do
setting = application_settings.create!
setting_with_value = application_settings.create!(outbound_local_requests_whitelist: '{a,b}')
expect(application_settings.where(outbound_local_requests_whitelist: nil).count).to eq(1)
migrate!
expect(application_settings.where(outbound_local_requests_whitelist: nil).count).to eq(0)
expect(setting.reload.outbound_local_requests_whitelist).to eq([])
expect(setting_with_value.reload.outbound_local_requests_whitelist).to eq(%w[a b])
end
end
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