From 69f941224a43275896218807fd91c8e5b912f8d1 Mon Sep 17 00:00:00 2001 From: Josh Cooper Date: Wed, 27 Jun 2018 22:06:49 -0700 Subject: Initial augeas import from puppet#2b83deb189 --- spec/acceptance/hosts.rb | 78 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 spec/acceptance/hosts.rb (limited to 'spec/acceptance/hosts.rb') diff --git a/spec/acceptance/hosts.rb b/spec/acceptance/hosts.rb new file mode 100644 index 0000000..a7f526a --- /dev/null +++ b/spec/acceptance/hosts.rb @@ -0,0 +1,78 @@ +test_name "Augeas hosts file" do + +tag 'risk:medium', + 'audit:medium', + 'audit:acceptance', + 'audit:refactor' # move to puppet types test directory, this is not testing puppet apply + # reduce to a single manifest and apply + +skip_test 'requires augeas which is included in AIO' if @options[:type] != 'aio' + + confine :except, :platform => [ + 'windows', + 'cisco_ios', # PUP-7380 + ] + confine :to, {}, hosts.select { |host| ! host[:roles].include?('master') } + + step "Backup the hosts file" do + on hosts, 'cp /etc/hosts /tmp/hosts.bak' + end + + # We have a begin/ensure block here to clean up the hosts file in case + # of test failure. + begin + + step "Create an entry in the hosts file" do + manifest = < '/files/etc/hosts', + incl => '/etc/hosts', + lens => 'Hosts.lns', + changes => [ + 'set 01/ipaddr 192.168.0.1', + 'set 01/canonical pigiron.example.com', + 'set 01/alias[1] pigiron', + 'set 01/alias[2] piggy' + ] +} +EOF + on hosts, puppet_apply('--verbose'), :stdin => manifest + on hosts, "fgrep '192.168.0.1\tpigiron.example.com pigiron piggy' /etc/hosts" + end + + step "Modify an entry in the hosts file" do + manifest = < '/files/etc/hosts', + incl => '/etc/hosts', + lens => 'Hosts.lns', + changes => [ + 'set *[canonical = "pigiron.example.com"]/alias[last()+1] oinker' + ] +} +EOF + + on hosts, puppet_apply('--verbose'), :stdin => manifest + on hosts, "fgrep '192.168.0.1\tpigiron.example.com pigiron piggy oinker' /etc/hosts" + end + + step "Remove an entry from the hosts file" do + manifest = < '/files/etc/hosts', + incl => '/etc/hosts', + lens => 'Hosts.lns', + changes => [ + 'rm *[canonical = "pigiron.example.com"]' + ] +} +EOF + + on hosts, puppet_apply('--verbose'), :stdin => manifest + on hosts, "fgrep 'pigiron.example.com' /etc/hosts", :acceptable_exit_codes => [1] + end + + ensure + on hosts, 'cat /tmp/hosts.bak > /etc/hosts && rm /tmp/hosts.bak' + end +end -- cgit v1.2.3