cookbooks/aws-parallelcluster-platform/spec/unit/resources/chrony_spec.rb (59 lines of code) (raw):
require 'spec_helper'
for_all_oses do |platform, version|
context "on #{platform}#{version}" do
cached(:chrony_conf_path) { platform == 'ubuntu' ? '/etc/chrony/chrony.conf' : '/etc/chrony.conf' }
cached(:chrony_service) { platform == 'ubuntu' ? 'chrony' : 'chronyd' }
cached(:reload_command) { "systemctl force-reload #{chrony_service}" }
describe 'aws-parallelcluster-platform::chrony setup' do
cached(:chef_run) do
runner(platform: platform, version: version, step_into: ['chrony']).converge_dsl('aws-parallelcluster-platform') do
chrony 'setup' do
action :setup
end
end
end
it 'sets up chrony' do
is_expected.to setup_chrony('setup')
end
it 'removes ntp packages' do
is_expected.to remove_package(%w(ntp ntpdate ntp*))
end
it 'installs chrony' do
is_expected.to install_package('chrony')
end
it 'adds configuration to chrony.conf' do
is_expected.to edit_append_if_no_line('add configuration to chrony.conf').with(
path: chrony_conf_path,
line: "server 169.254.169.123 prefer iburst minpoll 4 maxpoll 4"
)
chef_run.append_if_no_line('add configuration to chrony.conf').tap do |appender|
expect(appender).to notify("service[#{chrony_service}]").to(:stop).immediately
expect(appender).to notify("service[#{chrony_service}]").to(:reload).delayed
end
end
it 'waits for chrony service to be reloaded' do
is_expected.to nothing_service(chrony_service)
.with_reload_command(reload_command)
end
end
describe 'aws-parallelcluster-platform::chrony enable' do
cached(:chef_run) do
runner(platform: platform, version: version, step_into: ['chrony']).converge_dsl('aws-parallelcluster-platform') do
chrony 'enable' do
action :enable
end
end
end
it 'enables chrony' do
is_expected.to enable_chrony('enable')
end
it 'enables and starts chrony service' do
is_expected.to enable_service(chrony_service).with(
supports: { restart: false },
reload_command: reload_command,
action: %i(enable start)
)
end
end
end
end