Project

General

Profile

« Previous | Next » 

Revision 2fba6ad7

Added by Ondřej Pražák over 8 years ago

Fixes #2267 - general rebuild of TFTP, DNS, DHCP

View differences:

test/unit/host_test.rb
end
end
context "recreating host config" do
setup do
@nic = FactoryGirl.build(:nic_primary_and_provision)
@nic.expects(:rebuild_tftp).returns(true)
@nic.expects(:rebuild_dns).returns(true)
@nic.expects(:rebuild_dhcp).returns(true)
Nic::Managed.expects(:rebuild_methods).returns(:rebuild_dhcp => "DHCP", :rebuild_dns => "DNS", :rebuild_tftp => "TFTP")
end
test "recreate config with success" do
Host::Managed.expects(:rebuild_methods).returns(:rebuild_test => "TEST")
host = FactoryGirl.build(:host, :interfaces => [@nic])
host.expects(:rebuild_test).returns(true)
result = host.recreate_config
assert result["DHCP"]
assert result["DNS"]
assert result["TFTP"]
assert result["TEST"]
end
test "recreate config with clashing methods" do
Host::Managed.expects(:rebuild_methods).returns(:rebuild_dns => "DNS")
host = FactoryGirl.build(:host, :interfaces => [@nic])
assert_raises(Foreman::Exception) { host.recreate_config }
end
context "recreate with multiple nics and failures" do
setup do
@nic2 = FactoryGirl.build(:nic_managed)
@nic2.expects(:rebuild_tftp).returns(false)
@nic2.expects(:rebuild_dns).returns(false)
@nic2.expects(:rebuild_dhcp).returns(false)
end
test "second is a failure" do
host = FactoryGirl.build(:host, :interfaces => [@nic, @nic2])
result = host.recreate_config
refute result["DHCP"]
refute result["DNS"]
refute result["TFTP"]
end
test "first is a failure" do
host = FactoryGirl.build(:host, :interfaces => [@nic2, @nic])
result = host.recreate_config
refute result["DHCP"]
refute result["DNS"]
refute result["TFTP"]
end
end
test "recreate with multiple nics, all are success" do
nic = FactoryGirl.build(:nic_managed)
nic.expects(:rebuild_tftp).returns(true)
nic.expects(:rebuild_dns).returns(true)
nic.expects(:rebuild_dhcp).returns(true)
host = FactoryGirl.build(:host, :interfaces => [@nic, nic])
result = host.recreate_config
assert result["DHCP"]
assert result["DNS"]
assert result["TFTP"]
end
end
private
def parse_json_fixture(relative_path)

Also available in: Unified diff