Project

General

Profile

« Previous | Next » 

Revision b3d3d65d

Added by John Mitsch about 8 years ago

Fixes #14401 - Refreshing Host's global status not persisting to the database

View differences:

app/models/host/managed.rb
self.global_status = build_global_status.status
end
def refresh_global_status!
refresh_global_status
save!
end
def refresh_statuses
HostStatus.status_registry.each do |status_class|
status = get_status(status_class)
status.refresh! if status.relevant?
end
host_statuses.reload
refresh_global_status
refresh_global_status!
end
def get_status(type)
test/unit/host_test.rb
refute host.get_status(HostStatus::ConfigurationStatus).new_record?
end
test 'host #refresh_global_status! updates global status in database' do
host = FactoryGirl.build(:host)
config_status = host.get_status(HostStatus::ConfigurationStatus)
config_status.status = 1
config_status.save!
config_status.stubs(:relevant?).returns(true)
HostStatus::ConfigurationStatus.any_instance.stubs(:error?).returns(true)
assert_equal 0, host.global_status
host.refresh_global_status!
assert_equal 2, host.reload.global_status
end
test 'host #refresh_statuses updates global status in database' do
host = FactoryGirl.build(:host)
host.update_attribute(:global_status, 1)
assert_equal 1, host.global_status
host.refresh_statuses
assert_equal 0, host.reload.global_status
end
test 'build status is updated on host validation' do
host = FactoryGirl.build(:host)
host.build = false

Also available in: Unified diff