1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
require 'spec_helper_acceptance'
# fedora36 has a malformed services entry that needs to be patched
agents.each do |agent|
on(agent, 'sed -i "s/ircd,ircu3/ircd ircu3/" /etc/services') if agent.platform.include?('fedora-36')
end
RSpec.context 'Augeas services file' do
before(:all) do
on agents, 'cp /etc/services /tmp/services.bak'
end
after(:all) do
on agents, 'cat /tmp/services.bak > /etc/services && rm /tmp/services.bak'
end
agents.each do |agent|
context "on #{agent}" do
it 'adds an entry to the services file' do
on(hosts, puppet_apply('--verbose'), stdin: <<MANIFEST)
augeas { 'add_services_entry':
context => '/files/etc/services',
incl => '/etc/services',
lens => 'Services.lns',
changes => [
'ins service-name after service-name[last()]',
'set service-name[last()] "Doom"',
'set service-name[. = "Doom"]/port "666"',
'set service-name[. = "Doom"]/protocol "udp"'
]
}
MANIFEST
on hosts, "fgrep 'Doom 666/udp' /etc/services"
end
it 'changes the protocol to udp' do
on(hosts, puppet_apply('--verbose'), stdin: <<MANIFEST)
augeas { 'change_service_protocol':
context => '/files/etc/services',
incl => '/etc/services',
lens => 'Services.lns',
changes => [
'set service-name[. = "Doom"]/protocol "tcp"'
]
}
MANIFEST
on hosts, "fgrep 'Doom 666/tcp' /etc/services"
end
it 'removes the services entry' do
on(hosts, puppet_apply('--verbose'), stdin: <<MANIFEST)
augeas { 'del_service_entry':
context => '/files/etc/services',
incl => '/etc/services',
lens => 'Services.lns',
changes => [
'rm service-name[. = "Doom"]'
]
}
MANIFEST
on hosts, "fgrep 'Doom 666/tcp' /etc/services", acceptable_exit_codes: [1]
end
end
end
end
|