Skip to content

Commit

Permalink
Merge pull request #4730 from h-kataria/dont_allow_blank_appliance_na…
Browse files Browse the repository at this point in the history
…me_for_server

Made changes to save server name only if it is not blank

(cherry picked from commit 5078295)

Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1634518
  • Loading branch information
Dan Clarizio authored and simaishi committed Oct 4, 2018
1 parent 85b2357 commit f51dafb
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 12 deletions.
30 changes: 18 additions & 12 deletions app/controllers/ops_controller/settings/common.rb
Expand Up @@ -226,6 +226,18 @@ def pglogical_validate_subscription

private

def update_server_name(server)
return if @edit[:new][:server][:name] == server.name # appliance name was modified
begin
server.name = @edit[:new][:server][:name]
server.save!
rescue => bang
add_flash(_("Error when saving new server name: %{message}") % {:message => bang.message}, :error)
javascript_flash
return
end
end

PASSWORD_MASK = '●●●●●●●●'.freeze

def prepare_subscriptions_for_saving
Expand Down Expand Up @@ -460,16 +472,7 @@ def settings_update_save
if ["settings_server", "settings_authentication"].include?(@sb[:active_tab])
server = MiqServer.find(@sb[:selected_server_id])
server.set_config(@update)
if @update.config[:server][:name] != server.name # appliance name was modified
begin
server.name = @update.config[:server][:name]
server.save!
rescue => bang
add_flash(_("Error when saving new server name: %{message}") % {:message => bang.message}, :error)
javascript_flash
return
end
end
update_server_name(server)
else
@update.save # Save other settings for current server
end
Expand Down Expand Up @@ -588,6 +591,9 @@ def settings_update_cancel

def settings_server_validate
return unless @sb[:active_tab] == "settings_server" && @edit[:new][:server]
if @edit[:new][:server][:name].blank?
add_flash(_("Appliance name must be entered."), :error)
end
if @edit[:new][:server][:custom_support_url].present? && @edit[:new][:server][:custom_support_url_description].blank? ||
@edit[:new][:server][:custom_support_url].blank? && @edit[:new][:server][:custom_support_url_description].present?
add_flash(_("Custom Support URL and Description both must be entered."), :error)
Expand Down Expand Up @@ -724,9 +730,9 @@ def settings_get_form_vars
end
@sb[:roles] = new[:server][:role].split(",")
params.each do |var, val|
if var.starts_with?("server_roles_") && val.to_s == "true"
if var.to_s.starts_with?("server_roles_") && val.to_s == "true"
@sb[:roles].push(var.split("server_roles_").last) unless @sb[:roles].include?(var.split("server_roles_").last)
elsif var.starts_with?("server_roles_") && val.downcase == "false"
elsif var.to_s.starts_with?("server_roles_") && val.downcase == "false"
@sb[:roles].delete(var.split("server_roles_").last)
end
server_role = @sb[:roles].sort.join(",")
Expand Down
33 changes: 33 additions & 0 deletions spec/controllers/ops_controller/settings/common_spec.rb
Expand Up @@ -375,6 +375,39 @@
expect(SettingsChange.first).to have_attributes(:key => '/api/token_ttl', :value => "1.day")
end
end

context "save server name in server settings" do
before do
@miq_server = FactoryGirl.create(:miq_server)
allow(controller).to receive(:x_node).and_return("svr-#{@miq_server.id}")
controller.instance_variable_set(:@sb,
:active_tab => 'settings_server',
:selected_server_id => @miq_server.id)
controller.instance_variable_set(:@_params,
:id => 'server')
@current = VMDB::Config.new("vmdb")
@new = @current.config
@new[:server][:name] = ''
controller.instance_variable_set(:@edit,
:new => @new,
:current => @current,
:key => "settings_server_edit__#{@miq_server.id}")
session[:edit] = assigns(:edit)
expect(controller).to receive(:render)
end

it "does not allow to save blank appliance name" do
controller.send(:settings_update_save)
expect(assigns(:flash_array).first[:message]).to include("Appliance name must be entered.")
end

it "saves new server name for server record" do
@new[:server][:name] = 'Foo'
controller.send(:settings_update_save)
@miq_server.reload
expect(@miq_server.name).to eq("Foo")
end
end
end

describe '#settings_set_form_vars_server' do
Expand Down

0 comments on commit f51dafb

Please sign in to comment.