simp-beaker-helpers 1.11.0 → 1.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +8 -1
- data/lib/simp/beaker_helpers.rb +69 -16
- data/lib/simp/beaker_helpers/inspec.rb +1 -1
- data/lib/simp/beaker_helpers/ssg.rb +6 -6
- data/lib/simp/beaker_helpers/version.rb +1 -1
- data/spec/acceptance/suites/default/set_hieradata_on_spec.rb +4 -28
- data/spec/acceptance/suites/default/write_hieradata_to_spec.rb +2 -16
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: de20d90d702274ad89d7c0f4971cf392e7b9810dd81c19d2a18713e2094c2e8e
|
4
|
+
data.tar.gz: 98364f3ad80cb62f625e5b83fbe284e4b303a99e09bf2227d22f9e3adbf40603
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d94eb890371b09ce7f2bcaa315dc6fe723228364a5186a0d363d4f56a14a4c744e171307d53251abe23460290aabd96b6124f82d30e8f79bd350ff6b6a2ac599
|
7
|
+
data.tar.gz: 1cd900c931008350da80b0b13856538d01afcac2a9c912a7d546953321069ed3f4e915ab2b59052c1f413d651ce5bcc307cc3bf46d13b0d56c6edc4556e7dc69
|
data/CHANGELOG.md
CHANGED
@@ -1,4 +1,11 @@
|
|
1
|
-
### 1.11.
|
1
|
+
### 1.11.1 / 2018-10-03
|
2
|
+
* Deprecate the 'terminus' parameter in 'write_hieradata_to' and 'set_hieradata_on'
|
3
|
+
* Add 'copy_hiera_data_to' method to replace the one from beaker-hiera
|
4
|
+
* Add 'hiera_datadir' method to replace the one from beaker-hiera
|
5
|
+
* Change InSpec to use the 'reporter' option instead of 'format'
|
6
|
+
* Update the SSG to point to the new ComplianceAsCode repository
|
7
|
+
|
8
|
+
### 1.11.0 / 2018-10-01
|
2
9
|
* Add support for Beaker 4
|
3
10
|
|
4
11
|
### 1.10.14 / 2018-08-01
|
data/lib/simp/beaker_helpers.rb
CHANGED
@@ -83,9 +83,7 @@ module Simp::BeakerHelpers
|
|
83
83
|
|
84
84
|
# Returns the modulepath on the SUT, as an Array
|
85
85
|
def puppet_modulepath_on(sut, environment='production')
|
86
|
-
|
87
|
-
sut, "puppet config print --section main modulepath --environment #{environment} 2>/dev/null"
|
88
|
-
).output.lines.last.strip.split(':')
|
86
|
+
sut.puppet['modulepath'].split(':')
|
89
87
|
end
|
90
88
|
|
91
89
|
# Return the path to the 'spec/fixtures' directory
|
@@ -607,15 +605,15 @@ done
|
|
607
605
|
# Writes a YAML file in the Hiera :datadir of a Beaker::Host.
|
608
606
|
#
|
609
607
|
# @note This is useless unless Hiera is configured to use the data file.
|
610
|
-
# @see
|
608
|
+
# @see `#write_hiera_config_on`
|
611
609
|
#
|
612
610
|
# @param sut [Array<Host>, String, Symbol] One or more hosts to act upon.
|
613
611
|
#
|
614
|
-
# @param
|
612
|
+
# @param hieradata [Hash, String] The full hiera data structure to write to
|
615
613
|
# the system.
|
616
614
|
#
|
617
|
-
# @param terminus [String]
|
618
|
-
#
|
615
|
+
# @param terminus [String] DEPRECATED - This will be removed in a future
|
616
|
+
# release and currently has no effect.
|
619
617
|
#
|
620
618
|
# @return [Nil]
|
621
619
|
#
|
@@ -623,12 +621,12 @@ done
|
|
623
621
|
# using `#clear_temp_hieradata` in the `after(:all)` hook. It may also be
|
624
622
|
# retained for debugging purposes.
|
625
623
|
#
|
626
|
-
def write_hieradata_to(sut, hieradata, terminus = '
|
624
|
+
def write_hieradata_to(sut, hieradata, terminus = 'deprecated')
|
627
625
|
@temp_hieradata_dirs ||= []
|
628
626
|
data_dir = Dir.mktmpdir('hieradata')
|
629
627
|
@temp_hieradata_dirs << data_dir
|
630
628
|
|
631
|
-
fh = File.open(File.join(data_dir,
|
629
|
+
fh = File.open(File.join(data_dir, 'common.yaml'), 'w')
|
632
630
|
if hieradata.is_a?(String)
|
633
631
|
fh.puts(hieradata)
|
634
632
|
else
|
@@ -636,10 +634,65 @@ done
|
|
636
634
|
end
|
637
635
|
fh.close
|
638
636
|
|
639
|
-
|
640
|
-
|
637
|
+
copy_hiera_data_to sut, File.join(data_dir, 'common.yaml')
|
638
|
+
end
|
639
|
+
|
640
|
+
# A shim to stand in for the now deprecated copy_hiera_data_to function
|
641
|
+
#
|
642
|
+
# @param sut [Host] One host to act upon
|
643
|
+
#
|
644
|
+
# @param [Path] File containing hiera data
|
645
|
+
def copy_hiera_data_to(sut, path)
|
646
|
+
copy_to(sut, path, hiera_datadir(sut))
|
641
647
|
end
|
642
648
|
|
649
|
+
# A shim to stand in for the now deprecated hiera_datadir function
|
650
|
+
#
|
651
|
+
# Note: This may not work if you've shoved data somewhere that is not the
|
652
|
+
# default and/or are manipulating the default hiera.yaml.
|
653
|
+
#
|
654
|
+
# @param sut [Host] One host to act upon
|
655
|
+
#
|
656
|
+
# @returns [String] Path to the Hieradata directory on the target system
|
657
|
+
def hiera_datadir(sut)
|
658
|
+
# This output lets us know where Hiera is configured to look on the system
|
659
|
+
puppet_lookup_info = on(sut, 'puppet lookup --explain test__simp__test').output.strip.lines
|
660
|
+
|
661
|
+
if sut.puppet['manifest'].nil? || sut.puppet['manifest'].empty?
|
662
|
+
fail("No output returned from `puppet config print manifest` on #{sut}")
|
663
|
+
end
|
664
|
+
|
665
|
+
puppet_env_path = File.dirname(sut.puppet['manifest'])
|
666
|
+
|
667
|
+
# We'll just take the first match since Hiera will find things there
|
668
|
+
puppet_lookup_info = puppet_lookup_info.grep(/Path "/).grep(Regexp.new(puppet_env_path))
|
669
|
+
|
670
|
+
# Grep always returns an Array
|
671
|
+
if puppet_lookup_info.empty?
|
672
|
+
fail("Could not determine hiera data directory under #{puppet_env_path} on #{sut}")
|
673
|
+
end
|
674
|
+
|
675
|
+
# Snag the actual path without the extra bits
|
676
|
+
puppet_lookup_info = puppet_lookup_info.first.strip.split('"').last
|
677
|
+
|
678
|
+
# Make the parent directories exist
|
679
|
+
sut.mkdir_p(File.dirname(puppet_lookup_info))
|
680
|
+
|
681
|
+
# We just want the data directory name
|
682
|
+
datadir_name = puppet_lookup_info.split(puppet_env_path).last
|
683
|
+
|
684
|
+
# Grab the file separator to add back later
|
685
|
+
file_sep = datadir_name[0]
|
686
|
+
|
687
|
+
# Snag the first entry (this is the data directory)
|
688
|
+
datadir_name = datadir_name.split(file_sep)[1]
|
689
|
+
|
690
|
+
# Constitute the full path to the data directory
|
691
|
+
datadir_path = puppet_env_path + file_sep + datadir_name
|
692
|
+
|
693
|
+
# Return the path to the data directory
|
694
|
+
return datadir_path
|
695
|
+
end
|
643
696
|
|
644
697
|
# Write the provided data structure to Hiera's :datadir and configure Hiera to
|
645
698
|
# use that data exclusively.
|
@@ -652,14 +705,14 @@ done
|
|
652
705
|
# @param heradata [Hash, String] The full hiera data structure to write to
|
653
706
|
# the system.
|
654
707
|
#
|
655
|
-
# @param terminus [String]
|
656
|
-
#
|
708
|
+
# @param terminus [String] DEPRECATED - Will be removed in a future release.
|
709
|
+
# All hieradata is written to the first discovered path via 'puppet
|
710
|
+
# lookup'
|
657
711
|
#
|
658
712
|
# @return [Nil]
|
659
713
|
#
|
660
|
-
def set_hieradata_on(sut, hieradata, terminus = '
|
661
|
-
write_hieradata_to sut, hieradata
|
662
|
-
write_hiera_config_on sut, Array(terminus)
|
714
|
+
def set_hieradata_on(sut, hieradata, terminus = 'deprecated')
|
715
|
+
write_hieradata_to sut, hieradata
|
663
716
|
end
|
664
717
|
|
665
718
|
|
@@ -56,7 +56,7 @@ module Simp::BeakerHelpers
|
|
56
56
|
def run
|
57
57
|
sut_inspec_results = '/tmp/inspec_results.json'
|
58
58
|
|
59
|
-
inspec_cmd = "inspec exec
|
59
|
+
inspec_cmd = "inspec exec '#{@test_dir}' --reporter json > #{sut_inspec_results}"
|
60
60
|
result = on(@sut, inspec_cmd, :accept_all_exit_codes => true)
|
61
61
|
|
62
62
|
tmpdir = Dir.mktmpdir
|
@@ -5,7 +5,7 @@ module Simp::BeakerHelpers
|
|
5
5
|
if ENV['BEAKER_ssg_repo']
|
6
6
|
GIT_REPO = ENV['BEAKER_ssg_repo']
|
7
7
|
else
|
8
|
-
GIT_REPO = 'https://github.com/
|
8
|
+
GIT_REPO = 'https://github.com/ComplianceAsCode/content.git'
|
9
9
|
end
|
10
10
|
|
11
11
|
# If this is not set, the closest tag to the default branch will be used
|
@@ -143,15 +143,15 @@ module Simp::BeakerHelpers
|
|
143
143
|
if ssg_release
|
144
144
|
copy_to(@sut, ssg_release, @scap_working_dir)
|
145
145
|
|
146
|
-
on(@sut, %(mkdir -p scap-
|
146
|
+
on(@sut, %(mkdir -p scap-content && tar -xj -C scap-content --strip-components 1 -f #{ssg_release} && cp scap-content/*ds.xml #{@scap_working_dir}))
|
147
147
|
else
|
148
|
-
on(@sut, %(git clone #{GIT_REPO}))
|
148
|
+
on(@sut, %(git clone #{GIT_REPO} scap-content))
|
149
149
|
if GIT_BRANCH
|
150
|
-
on(@sut, %(cd scap-
|
150
|
+
on(@sut, %(cd scap-content; git checkout #{GIT_BRANCH}))
|
151
151
|
else
|
152
|
-
on(@sut, %(cd scap-
|
152
|
+
on(@sut, %(cd scap-content; git checkout $(git describe --abbrev=0 --tags)))
|
153
153
|
end
|
154
|
-
on(@sut, %(cd scap-
|
154
|
+
on(@sut, %(cd scap-content/build; cmake ../; make -j4 #{OS_INFO[@os][@os_rel]['ssg']['build_target']}-content && cp *ds.xml #{@scap_working_dir}))
|
155
155
|
end
|
156
156
|
end
|
157
157
|
end
|
@@ -4,54 +4,30 @@ hosts.each do |host|
|
|
4
4
|
describe '#set_hieradata_on' do
|
5
5
|
context 'when passed a YAML string' do
|
6
6
|
before(:all) { set_hieradata_on(host, "---\n") }
|
7
|
-
after(:all) { on(host, "rm -rf #{
|
7
|
+
after(:all) { on(host, "rm -rf #{hiera_datadir(host)}") }
|
8
8
|
|
9
9
|
it 'creates the datadir' do
|
10
10
|
on host, "test -d #{hiera_datadir(host)}"
|
11
11
|
end
|
12
12
|
|
13
|
-
it 'writes to the configuration file' do
|
14
|
-
stdout = on(host, "cat #{host.puppet['hiera_config']}").stdout
|
15
|
-
expect(stdout).to match(":hierarchy:\n- default")
|
16
|
-
end
|
17
|
-
|
18
13
|
it 'writes the correct contents to the correct file' do
|
19
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/
|
14
|
+
stdout = on(host, "cat #{hiera_datadir(host)}/common.yaml").stdout
|
20
15
|
expect(stdout).to eq("---\n")
|
21
16
|
end
|
22
17
|
end
|
23
18
|
|
24
19
|
context 'when passed a hash' do
|
25
20
|
before(:all) { set_hieradata_on(host, { 'foo' => 'bar' }) }
|
26
|
-
after(:all) { on(host, "rm -rf #{
|
21
|
+
after(:all) { on(host, "rm -rf #{hiera_datadir(host)}") }
|
27
22
|
|
28
23
|
it 'creates the datadir' do
|
29
24
|
on host, "test -d #{hiera_datadir(host)}"
|
30
25
|
end
|
31
26
|
|
32
27
|
it 'writes the correct contents to the correct file' do
|
33
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/
|
28
|
+
stdout = on(host, "cat #{hiera_datadir(host)}/common.yaml").stdout
|
34
29
|
expect(stdout).to eq("---\nfoo: bar\n")
|
35
30
|
end
|
36
31
|
end
|
37
|
-
|
38
|
-
context 'when the terminus is set' do
|
39
|
-
before(:all) { set_hieradata_on(host, "---\n", 'not-default') }
|
40
|
-
after(:all) { on(host, "rm -rf #{host.puppet['hiera_config']} #{hiera_datadir(host)}") }
|
41
|
-
|
42
|
-
it 'creates the datadir' do
|
43
|
-
on host, "test -d #{hiera_datadir(host)}"
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'writes the correct hierarchy to the configuration file' do
|
47
|
-
stdout = on(host, "cat #{host.puppet['hiera_config']}").stdout
|
48
|
-
expect(stdout).to match(":hierarchy:\n- not-default")
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'writes the correct contents to the correct file' do
|
52
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/not-default.yaml").stdout
|
53
|
-
expect(stdout).to eq("---\n")
|
54
|
-
end
|
55
|
-
end
|
56
32
|
end
|
57
33
|
end
|
@@ -11,7 +11,7 @@ hosts.each do |host|
|
|
11
11
|
end
|
12
12
|
|
13
13
|
it 'writes the correct contents to the correct file' do
|
14
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/
|
14
|
+
stdout = on(host, "cat #{hiera_datadir(host)}/common.yaml").stdout
|
15
15
|
expect(stdout).to eq("---\n")
|
16
16
|
end
|
17
17
|
end
|
@@ -25,23 +25,9 @@ hosts.each do |host|
|
|
25
25
|
end
|
26
26
|
|
27
27
|
it 'writes the correct contents to the correct file' do
|
28
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/
|
28
|
+
stdout = on(host, "cat #{hiera_datadir(host)}/common.yaml").stdout
|
29
29
|
expect(stdout).to eq("---\nfoo: bar\n")
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
33
|
-
context 'when the terminus is set' do
|
34
|
-
before(:all) { set_hieradata_on(host, "---\n", 'not-default') }
|
35
|
-
after(:all) { on(host, "rm -rf #{hiera_datadir(host)}") }
|
36
|
-
|
37
|
-
it 'creates the datadir' do
|
38
|
-
on host, "test -d #{hiera_datadir(host)}"
|
39
|
-
end
|
40
|
-
|
41
|
-
it 'writes the correct contents to the correct file' do
|
42
|
-
stdout = on(host, "cat #{hiera_datadir(host)}/not-default.yaml").stdout
|
43
|
-
expect(stdout).to eq("---\n")
|
44
|
-
end
|
45
|
-
end
|
46
32
|
end
|
47
33
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: simp-beaker-helpers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.11.
|
4
|
+
version: 1.11.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Tessmer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2018-
|
12
|
+
date: 2018-10-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: beaker
|