Project

General

Profile

Download (3.43 KB) Statistics
| Branch: | Tag: | Revision:
require 'test_helper'
require File.join(File.dirname(__FILE__),'../extra/migrate_settings')

class ProxyMigrationTest < Test::Unit::TestCase

def setup
@old_config = YAML.load_file(File.join(File.dirname(__FILE__),'./migration_settings.yml'))
@output, @unknown = migrate(@old_config)
end

def test_output_has_multiple_blocks
assert_equal modules.size, @output.keys.size
end

def test_output_has_correct_general_settings
assert_equal @output[:settings], {
:ssl_ca_file => "/var/lib/puppet/ssl/certs/ca.pem",
:ssl_certificate => "/var/lib/puppet/ssl/certs/foo.bar.example.com.pem",
:ssl_private_key => "/var/lib/puppet/ssl/private_keys/foo.bar.example.com.org.pem",
:trusted_hosts => ["foreman.prod.domain", "foreman.dev.domain"],
:daemon => true,
:daemon_pid => "/var/run/foreman-proxy/foreman-proxy.pid",
:log_file => "/var/log/foreman-proxy/proxy.log",
:log_level => "DEBUG",
:https_port => 8443}
end

def test_output_has_correct_tftp_settings
assert_equal @output[:tftp], {
:enabled => true,
:tftproot => "/srv/tftp",
:tftp_servername => "192.168.122.1"}
end

def test_output_has_correct_dns_settings
assert_equal @output[:dns], {
:enabled => true,
:dns_key => "/etc/bind/rndc.key",
:dns_server => "127.0.0.1"}
end

def test_output_has_correct_dhcp_settings
assert_equal @output[:dhcp], {
:enabled => true,
:dhcp_vendor => "isc",
:dhcp_config => "/etc/dhcp3/dhcpd.conf",
:dhcp_leases => "/var/lib/dhcp3/dhcpd.leases"}
end

def test_output_has_correct_puppet_settings
assert_equal @output[:puppet], {
:enabled => true,
:puppet_conf => "/etc/puppet/puppet.conf"}
end

def test_output_has_correct_puppetca_settings
assert_equal @output[:puppetca], {
:enabled => true,
:ssldir => "/var/lib/puppet/ssl",
:puppetdir => "/etc/puppet"}
end

def test_output_has_correct_bmc_settings
assert_equal @output[:bmc], {
:enabled => true,
:bmc_default_provider => "ipmitool"}
end

def test_output_has_correct_chef_settings
assert_equal @output[:chef], {
:enabled => true,
:chef_authenticate_nodes => true,
:chef_server_url => "https://foreman.example.com",
:chef_smartproxy_clientname => "foreman_proxy",
:chef_smartproxy_privatekey => "/etc/chef/foreman_proxy.pem"}
end

def test_output_has_correct_realm_settings
assert_equal @output[:realm], {
:enabled => true,
:realm_provider => "freeipa",
:realm_keytab => "/etc/foreman-proxy/freeipa.keytab",
:realm_principal => "realm-proxy@IPA.FM.EXAMPLE.NET",
:freeipa_remove_dns => true}
end

def test_output_has_correct_unknown_settings
assert_equal @unknown, {:foo=>"bar"}
end

def test_migration_correctly_uses_http_when_ssl_disabled
config = YAML.load_file(File.join(File.dirname(__FILE__),'./migration_settings.yml'))
config.delete(:ssl_certificate)
output, unknown = migrate(config)
assert_equal 8443, output[:settings][:http_port]
assert_nil output[:settings][:https_port]
end

def test_migration_idempotence
output2, unknown2 = migrate(@output[:settings].dup)
# Matches the test used inside the script for its exit value
assert_equal @output[:settings], output2[:settings]
end

end
(4-4/7)