simp-rake-helpers 5.24.0 → 6.0.0
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/.gitignore +20 -1
- data/CHANGELOG.md +33 -0
- data/Gemfile +14 -6
- data/lib/simp/command_utils.rb +6 -3
- data/lib/simp/componentinfo.rb +47 -33
- data/lib/simp/local_gpg_signing_key.rb +302 -303
- data/lib/simp/packer/iso_vars_json.rb +17 -15
- data/lib/simp/rake/build/auto.rb +415 -432
- data/lib/simp/rake/build/build.rb +119 -124
- data/lib/simp/rake/build/clean.rb +39 -39
- data/lib/simp/rake/build/code.rb +125 -128
- data/lib/simp/rake/build/constants.rb +7 -4
- data/lib/simp/rake/build/deps.rb +196 -207
- data/lib/simp/rake/build/helpers.rb +17 -13
- data/lib/simp/rake/build/iso.rb +404 -411
- data/lib/simp/rake/build/pkg.rb +752 -759
- data/lib/simp/rake/build/rpmdeps.rb +70 -70
- data/lib/simp/rake/build/spec.rb +44 -46
- data/lib/simp/rake/build/tar.rb +169 -173
- data/lib/simp/rake/build/unpack.rb +105 -107
- data/lib/simp/rake/build/upload.rb +93 -102
- data/lib/simp/rake/fixtures.rb +69 -66
- data/lib/simp/rake/helpers/rpm_spec.rb +10 -7
- data/lib/simp/rake/helpers/version.rb +3 -1
- data/lib/simp/rake/helpers.rb +12 -10
- data/lib/simp/rake/pkg.rb +417 -440
- data/lib/simp/rake/pupmod/helpers.rb +100 -87
- data/lib/simp/rake/pupmod/module_build.rb +39 -0
- data/lib/simp/rake/rubygem.rb +57 -56
- data/lib/simp/rake.rb +34 -29
- data/lib/simp/relchecks.rb +52 -43
- data/lib/simp/rpm.rb +123 -127
- data/lib/simp/rpm_signer.rb +57 -55
- data/lib/simp/yum.rb +54 -53
- data/spec/acceptance/nodesets/{default_ruby3_1.yml → almalinux10.yml} +4 -4
- data/spec/acceptance/nodesets/{default.yml → almalinux8.yml} +2 -2
- data/spec/acceptance/nodesets/almalinux9.yml +25 -0
- data/spec/acceptance/suites/default/00_pkg_rpm_custom_scriptlets_spec.rb +23 -28
- data/spec/acceptance/suites/default/10_pkg_rpm_spec.rb +54 -56
- data/spec/acceptance/suites/default/30_pkg_misc_spec.rb +17 -19
- data/spec/acceptance/suites/default/50_local_gpg_signing_key_spec.rb +5 -5
- data/spec/acceptance/suites/default/55_build_pkg_signing_spec.rb +109 -101
- data/spec/acceptance/suites/default/files/testpackage/spec/classes/init_spec.rb +1 -0
- data/spec/acceptance/suites/default/files/testpackage/spec/files/mock_something.rb +3 -1
- data/spec/acceptance/suites/default/files/testpackage/utils/convert_v1_to_v2.rb +2 -0
- data/spec/acceptance/suites/default/support/build_project_helpers.rb +20 -17
- data/spec/acceptance/suites/default/support/build_user_helpers.rb +4 -2
- data/spec/acceptance/suites/default/support/pkg_rpm_helpers.rb +30 -31
- data/spec/acceptance/support/simp_rake_helpers.rb +3 -1
- data/spec/lib/simp/command_utils_spec.rb +13 -10
- data/spec/lib/simp/componentinfo_changelog_regex_spec.rb +33 -33
- data/spec/lib/simp/componentinfo_spec.rb +99 -86
- data/spec/lib/simp/packer/iso_vars_json_spec.rb +16 -14
- data/spec/lib/simp/rake/build/helpers_spec.rb +7 -7
- data/spec/lib/simp/rake/build/rpmdeps_spec.rb +48 -46
- data/spec/lib/simp/rake/helpers_spec.rb +6 -5
- data/spec/lib/simp/rake/pkg_spec.rb +7 -5
- data/spec/lib/simp/rake/pupmod/fixtures/othermod/spec/classes/init_spec.rb +3 -1
- data/spec/lib/simp/rake/pupmod/fixtures/othermod/spec/spec_helper.rb +2 -0
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/class_spec.rb +6 -5
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/classes/init_spec.rb +51 -33
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper.rb +15 -16
- data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/spec_helper_acceptance.rb +9 -9
- data/spec/lib/simp/rake/pupmod/helpers_spec.rb +20 -19
- data/spec/lib/simp/rake/pupmod/module_build_spec.rb +87 -0
- data/spec/lib/simp/rake_spec.rb +7 -6
- data/spec/lib/simp/relchecks_check_rpm_changelog_spec.rb +26 -31
- data/spec/lib/simp/relchecks_compare_latest_tag_spec.rb +32 -26
- data/spec/lib/simp/relchecks_create_tag_changelog_spec.rb +27 -19
- data/spec/lib/simp/rpm_signer_spec.rb +45 -39
- data/spec/lib/simp/rpm_spec.rb +190 -194
- data/spec/spec_helper.rb +4 -2
- data/spec/spec_helper_acceptance.rb +3 -5
- metadata +47 -76
- data/bin/simp_rake_helpers +0 -3
- data/lib/simp/ci/gitlab.rb +0 -226
- data/lib/simp/rake/ci.rb +0 -31
- data/spec/lib/simp/ci/files/global_nodesets_only/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/global_nodesets_only/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_broken_link_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_invalid_suite/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/job_missing_suite_and_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature-1/feature-1_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/feature_2_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/nodesets/default.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_invalid_jobs/spec/acceptance/suites/feature_2/nodesets/oel.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature-1/feature-1_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/feature_2_spec.rb +0 -0
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/nodesets/default.yml +0 -35
- data/spec/lib/simp/ci/files/multiple_valid_jobs/spec/acceptance/suites/feature_2/nodesets/oel.yml +0 -35
- data/spec/lib/simp/ci/files/no_acceptance_tests/spec/spec_helper.rb +0 -0
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_with_tests/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/no_gitlab_config_without_tests/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/suite_skeleton_only/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_global_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_dir_link/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/centos.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_nodeset_link/spec/acceptance/suites/default/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/class_spec.rb +0 -0
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/nodesets/default.yml +0 -41
- data/spec/lib/simp/ci/files/valid_job_suite_nodeset/spec/acceptance/suites/default/nodesets/oel.yml +0 -41
- data/spec/lib/simp/ci/gitlab_spec.rb +0 -245
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'simp/rake/build/rpmdeps'
|
|
2
4
|
require 'spec_helper'
|
|
3
5
|
require 'tmpdir'
|
|
@@ -8,33 +10,33 @@ describe 'Simp::Rake::Build::RpmDeps#get_version_requires' do
|
|
|
8
10
|
|
|
9
11
|
context 'with valid version specifications' do
|
|
10
12
|
{
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
'1.0.0' => ['Requires: pupmod-foo-bar = 1.0.0'],
|
|
14
|
+
'> 2.0.0' => ['Requires: pupmod-foo-bar > 2.0.0'],
|
|
15
|
+
'< 3.0.0' => ['Requires: pupmod-foo-bar < 3.0.0'],
|
|
16
|
+
'>= 4.0.0 < 5.0.0' => ['Requires: pupmod-foo-bar >= 4.0.0',
|
|
15
17
|
'Requires: pupmod-foo-bar < 5.0.0'],
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
nil
|
|
18
|
+
'5.x' => ['Requires: pupmod-foo-bar >= 5.0.0',
|
|
19
|
+
'Requires: pupmod-foo-bar < 6.0.0'],
|
|
20
|
+
'6.4.x' => ['Requires: pupmod-foo-bar >= 6.4.0',
|
|
21
|
+
'Requires: pupmod-foo-bar < 7.0.0'],
|
|
22
|
+
nil => ['Requires: pupmod-foo-bar']
|
|
21
23
|
}.each do |input, output|
|
|
22
24
|
it do
|
|
23
|
-
expect(Simp::Rake::Build::RpmDeps
|
|
25
|
+
expect(Simp::Rake::Build::RpmDeps.get_version_requires(pkg, input)).to eq output
|
|
24
26
|
end
|
|
25
27
|
end
|
|
26
28
|
end
|
|
27
29
|
|
|
28
30
|
context 'with invalid version specifications' do
|
|
29
31
|
it do
|
|
30
|
-
expect{
|
|
31
|
-
Simp::Rake::Build::RpmDeps
|
|
32
|
+
expect {
|
|
33
|
+
Simp::Rake::Build::RpmDeps.get_version_requires(pkg, '1.0.0.1')
|
|
32
34
|
}.to raise_error(SIMPRpmDepVersionException)
|
|
33
35
|
end
|
|
34
36
|
|
|
35
|
-
it(
|
|
36
|
-
expect{
|
|
37
|
-
Simp::Rake::Build::RpmDeps
|
|
37
|
+
it(nil, :pending => "FIXME regex doesn't catch this") do
|
|
38
|
+
expect {
|
|
39
|
+
Simp::Rake::Build::RpmDeps.get_version_requires(pkg, '<= 3.0.0')
|
|
38
40
|
}.to raise_error(SIMPRpmDepVersionException)
|
|
39
41
|
end
|
|
40
42
|
end
|
|
@@ -50,12 +52,12 @@ end
|
|
|
50
52
|
#
|
|
51
53
|
describe 'Simp::Rake::Build::RpmDeps#generate_rpm_meta_files' do
|
|
52
54
|
let(:files_dir) { File.join(File.dirname(__FILE__), 'files') }
|
|
53
|
-
let(:rpm_metadata)
|
|
54
|
-
|
|
55
|
-
|
|
55
|
+
let(:rpm_metadata) do
|
|
56
|
+
YAML.load_file(File.join(files_dir, 'dependencies.yaml'))
|
|
57
|
+
end
|
|
56
58
|
|
|
57
59
|
before :each do
|
|
58
|
-
@tmp_dir = Dir.mktmpdir(
|
|
60
|
+
@tmp_dir = Dir.mktmpdir(File.basename(__FILE__))
|
|
59
61
|
FileUtils.cp_r(files_dir, @tmp_dir)
|
|
60
62
|
end
|
|
61
63
|
|
|
@@ -64,9 +66,9 @@ describe 'Simp::Rake::Build::RpmDeps#generate_rpm_meta_files' do
|
|
|
64
66
|
end
|
|
65
67
|
|
|
66
68
|
context 'managed component with a name change (obsoletes)' do
|
|
67
|
-
it '
|
|
69
|
+
it 'generates requires file with obsoletes' do
|
|
68
70
|
mod_dir = File.join(@tmp_dir, 'files', 'changed_name_mod')
|
|
69
|
-
Simp::Rake::Build::RpmDeps
|
|
71
|
+
Simp::Rake::Build::RpmDeps.generate_rpm_meta_files(mod_dir, rpm_metadata)
|
|
70
72
|
|
|
71
73
|
requires_file = File.join(mod_dir, 'build', 'rpm_metadata', 'requires')
|
|
72
74
|
expect(File.exist?(requires_file)).to be true
|
|
@@ -83,7 +85,7 @@ Requires: pupmod-foo5-bar5 < 6.0.0
|
|
|
83
85
|
Requires: pupmod-foo6-bar6 >= 6.4.0
|
|
84
86
|
Requires: pupmod-foo6-bar6 < 7.0.0
|
|
85
87
|
EOM
|
|
86
|
-
actual =
|
|
88
|
+
actual = File.read(requires_file)
|
|
87
89
|
expect(actual).to eq expected
|
|
88
90
|
|
|
89
91
|
release_file = File.join(mod_dir, 'build', 'rpm_metadata', 'release')
|
|
@@ -92,9 +94,9 @@ EOM
|
|
|
92
94
|
end
|
|
93
95
|
|
|
94
96
|
context 'managed component with a subset of metadata.json deps, external deps and a release' do
|
|
95
|
-
it '
|
|
97
|
+
it 'generates both a requires file and a release file from dependencies.yaml' do
|
|
96
98
|
mod_dir = File.join(@tmp_dir, 'files', 'managed_mod')
|
|
97
|
-
Simp::Rake::Build::RpmDeps
|
|
99
|
+
Simp::Rake::Build::RpmDeps.generate_rpm_meta_files(mod_dir, rpm_metadata)
|
|
98
100
|
|
|
99
101
|
requires_file = File.join(mod_dir, 'build', 'rpm_metadata', 'requires')
|
|
100
102
|
expect(File.exist?(requires_file)).to be true
|
|
@@ -111,19 +113,19 @@ Requires: rubygem-puppetserver-toml >= 0.1.2
|
|
|
111
113
|
Requires: rubygem-puppetserver-blackslate >= 2.1.2.4-1
|
|
112
114
|
Requires: rubygem-puppetserver-blackslate < 2.2.0.0
|
|
113
115
|
EOM
|
|
114
|
-
actual =
|
|
116
|
+
actual = File.read(requires_file)
|
|
115
117
|
expect(actual).to eq expected
|
|
116
118
|
|
|
117
119
|
release_file = File.join(mod_dir, 'build', 'rpm_metadata', 'release')
|
|
118
120
|
expect(File.exist?(release_file)).to be true
|
|
119
|
-
expect(
|
|
121
|
+
expect(File.read(release_file)).to match(%r{^2017.0$})
|
|
120
122
|
end
|
|
121
123
|
end
|
|
122
124
|
|
|
123
125
|
context 'managed component with only a release' do
|
|
124
|
-
it '
|
|
126
|
+
it 'generates a release file from dependencies.yaml' do
|
|
125
127
|
mod_dir = File.join(@tmp_dir, 'files', 'release_only_mod')
|
|
126
|
-
Simp::Rake::Build::RpmDeps
|
|
128
|
+
Simp::Rake::Build::RpmDeps.generate_rpm_meta_files(mod_dir, rpm_metadata)
|
|
127
129
|
|
|
128
130
|
requires_file = File.join(mod_dir, 'build', 'rpm_metadata', 'requires')
|
|
129
131
|
expect(File.exist?(requires_file)).to be true
|
|
@@ -132,19 +134,19 @@ EOM
|
|
|
132
134
|
Requires: pupmod-puppetlabs-stdlib >= 3.2.0
|
|
133
135
|
Requires: pupmod-puppetlabs-stdlib < 5.0.0
|
|
134
136
|
EOM
|
|
135
|
-
actual =
|
|
137
|
+
actual = File.read(requires_file)
|
|
136
138
|
expect(actual).to eq expected
|
|
137
139
|
|
|
138
140
|
release_file = File.join(mod_dir, 'build', 'rpm_metadata', 'release')
|
|
139
141
|
expect(File.exist?(release_file)).to be true
|
|
140
|
-
expect(
|
|
142
|
+
expect(File.read(release_file)).to match(%r{^2017.2$})
|
|
141
143
|
end
|
|
142
144
|
end
|
|
143
145
|
|
|
144
146
|
context 'unmanaged component' do
|
|
145
|
-
it '
|
|
147
|
+
it 'replaces requires file with metadata.json dependencies' do
|
|
146
148
|
mod_dir = File.join(@tmp_dir, 'files', 'unmanaged_mod')
|
|
147
|
-
Simp::Rake::Build::RpmDeps
|
|
149
|
+
Simp::Rake::Build::RpmDeps.generate_rpm_meta_files(mod_dir, rpm_metadata)
|
|
148
150
|
|
|
149
151
|
# expected should overwritten with simply dependencies in order
|
|
150
152
|
# they were listed in metadata.json
|
|
@@ -161,12 +163,12 @@ EOM
|
|
|
161
163
|
requires_file = File.join(mod_dir, 'build', 'rpm_metadata', 'requires')
|
|
162
164
|
expect(File.exist?(requires_file)).to be true
|
|
163
165
|
|
|
164
|
-
actual =
|
|
166
|
+
actual = File.read(requires_file)
|
|
165
167
|
expect(actual).to eq expected
|
|
166
168
|
|
|
167
|
-
original =
|
|
168
|
-
|
|
169
|
-
expect(actual).
|
|
169
|
+
original = File.readlines(File.join(files_dir, 'unmanaged_mod',
|
|
170
|
+
'build', 'rpm_metadata', 'requires'))
|
|
171
|
+
expect(actual).not_to eq original
|
|
170
172
|
|
|
171
173
|
release_file = File.join(mod_dir, 'build', 'rpm_metadata', 'release')
|
|
172
174
|
expect(File.exist?(release_file)).to be false
|
|
@@ -174,9 +176,9 @@ EOM
|
|
|
174
176
|
end
|
|
175
177
|
|
|
176
178
|
context 'ignores obsoletes when version obsoleted is newer than this version' do
|
|
177
|
-
it '
|
|
179
|
+
it 'generates requires file with no obsoletes' do
|
|
178
180
|
mod_dir = File.join(@tmp_dir, 'files', 'obsoletes_too_new_mod')
|
|
179
|
-
Simp::Rake::Build::RpmDeps
|
|
181
|
+
Simp::Rake::Build::RpmDeps.generate_rpm_meta_files(mod_dir, rpm_metadata)
|
|
180
182
|
|
|
181
183
|
requires_file = File.join(mod_dir, 'build', 'rpm_metadata', 'requires')
|
|
182
184
|
expect(File.exist?(requires_file)).to be true
|
|
@@ -186,37 +188,37 @@ EOM
|
|
|
186
188
|
Requires: pupmod-foo1-bar1 = 1.0.0
|
|
187
189
|
Requires: pupmod-foo2-bar2 > 2.0.0
|
|
188
190
|
EOM
|
|
189
|
-
actual =
|
|
191
|
+
actual = File.read(requires_file)
|
|
190
192
|
expect(actual).to eq expected
|
|
191
193
|
end
|
|
192
194
|
end
|
|
193
195
|
|
|
194
196
|
context 'dependency from dependencies.yaml not found in metadata.json' do
|
|
195
|
-
it '
|
|
197
|
+
it 'fails when dep in depedencies.yaml is not found in metadata.json' do
|
|
196
198
|
mod_dir = File.join(@tmp_dir, 'files', 'unknown_dep_mod')
|
|
197
199
|
err_msg = "Could not find 'oops/unknown' dependency in #{mod_dir}/metadata.json"
|
|
198
200
|
expect {
|
|
199
|
-
Simp::Rake::Build::RpmDeps
|
|
201
|
+
Simp::Rake::Build::RpmDeps.generate_rpm_meta_files(mod_dir, rpm_metadata)
|
|
200
202
|
}.to raise_error(err_msg)
|
|
201
203
|
end
|
|
202
204
|
end
|
|
203
205
|
|
|
204
206
|
context 'malformed dependency version' do
|
|
205
|
-
it '
|
|
207
|
+
it 'fails for managed component with invalid dep version in metadata.json' do
|
|
206
208
|
mod_dir = File.join(@tmp_dir, 'files', 'malformed_dep_meta_mod')
|
|
207
209
|
err_msg = "Unable to parse 'foo1/bar1' dependency version '1.0.0.1' in #{mod_dir}/metadata.json"
|
|
208
210
|
expect {
|
|
209
|
-
Simp::Rake::Build::RpmDeps
|
|
211
|
+
Simp::Rake::Build::RpmDeps.generate_rpm_meta_files(mod_dir, rpm_metadata)
|
|
210
212
|
}.to raise_error(err_msg)
|
|
211
213
|
end
|
|
212
214
|
|
|
213
|
-
it '
|
|
215
|
+
it 'fails for unmanaged component with invalid dep version in metadata.json' do
|
|
214
216
|
rpm_meta = rpm_metadata.dup
|
|
215
|
-
rpm_meta
|
|
217
|
+
rpm_meta['malformed_dep_meta_mod'] = nil
|
|
216
218
|
mod_dir = File.join(@tmp_dir, 'files', 'malformed_dep_meta_mod')
|
|
217
219
|
err_msg = "Unable to parse 'foo1/bar1' dependency version '1.0.0.1' in #{mod_dir}/metadata.json"
|
|
218
220
|
expect {
|
|
219
|
-
Simp::Rake::Build::RpmDeps
|
|
221
|
+
Simp::Rake::Build::RpmDeps.generate_rpm_meta_files(mod_dir, rpm_meta)
|
|
220
222
|
}.to raise_error(err_msg)
|
|
221
223
|
end
|
|
222
224
|
end
|
|
@@ -1,15 +1,16 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'simp/rake/helpers'
|
|
2
4
|
require 'spec_helper'
|
|
3
5
|
|
|
4
6
|
describe Simp::Rake::Helpers do
|
|
5
7
|
before :each do
|
|
6
|
-
@obj =
|
|
8
|
+
@obj = described_class.new
|
|
7
9
|
end
|
|
8
10
|
|
|
9
|
-
describe
|
|
10
|
-
it
|
|
11
|
-
expect(
|
|
11
|
+
describe '#initialize' do
|
|
12
|
+
it 'initialized (smoke test)' do
|
|
13
|
+
expect(@obj.class).to eq described_class
|
|
12
14
|
end
|
|
13
15
|
end
|
|
14
16
|
end
|
|
15
|
-
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'simp/rake/pkg'
|
|
2
4
|
require 'spec_helper'
|
|
3
5
|
|
|
4
6
|
describe Simp::Rake::Pkg do
|
|
5
7
|
before :all do
|
|
6
|
-
dir
|
|
7
|
-
@obj =
|
|
8
|
+
dir = File.expand_path('../files', File.dirname(__FILE__))
|
|
9
|
+
@obj = described_class.new(dir)
|
|
8
10
|
end
|
|
9
11
|
|
|
10
|
-
describe
|
|
11
|
-
it
|
|
12
|
-
expect(
|
|
12
|
+
describe '#initialize' do
|
|
13
|
+
it 'initializes (smoke test)' do
|
|
14
|
+
expect(@obj.class).to eq described_class
|
|
13
15
|
end
|
|
14
16
|
end
|
|
15
17
|
end
|
data/spec/lib/simp/rake/pupmod/fixtures/simpmod/spec/acceptance/suites/default/class_spec.rb
CHANGED
|
@@ -1,25 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper_acceptance'
|
|
2
4
|
|
|
3
5
|
test_name 'simpmod class'
|
|
4
6
|
|
|
5
7
|
describe 'simpmod class' do
|
|
6
|
-
let(:manifest)
|
|
8
|
+
let(:manifest) do
|
|
7
9
|
<<-EOS
|
|
8
10
|
class { 'simpmod': }
|
|
9
11
|
EOS
|
|
10
|
-
|
|
12
|
+
end
|
|
11
13
|
|
|
12
14
|
context 'default parameters' do
|
|
13
15
|
# Using puppet_apply as a helper
|
|
14
|
-
it '
|
|
16
|
+
it 'works with no errors' do
|
|
15
17
|
apply_manifest(manifest, :catch_failures => true)
|
|
16
18
|
end
|
|
17
19
|
|
|
18
|
-
it '
|
|
20
|
+
it 'is idempotent' do
|
|
19
21
|
apply_manifest(manifest, :catch_changes => true)
|
|
20
22
|
end
|
|
21
23
|
|
|
22
|
-
|
|
23
24
|
describe package('simpmod') do
|
|
24
25
|
it { is_expected.to be_installed }
|
|
25
26
|
end
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'spec_helper'
|
|
2
4
|
|
|
3
5
|
describe 'simpmod' do
|
|
4
|
-
shared_examples_for
|
|
6
|
+
shared_examples_for 'a structured module' do
|
|
5
7
|
it { is_expected.to compile.with_all_deps }
|
|
6
8
|
it { is_expected.to create_class('simpmod') }
|
|
7
9
|
it { is_expected.to contain_class('simpmod') }
|
|
@@ -13,7 +15,6 @@ describe 'simpmod' do
|
|
|
13
15
|
it { is_expected.to contain_package('simpmod').with_ensure('present') }
|
|
14
16
|
end
|
|
15
17
|
|
|
16
|
-
|
|
17
18
|
context 'supported operating systems' do
|
|
18
19
|
on_supported_os.each do |os, facts|
|
|
19
20
|
context "on #{os}" do
|
|
@@ -21,51 +22,66 @@ describe 'simpmod' do
|
|
|
21
22
|
facts
|
|
22
23
|
end
|
|
23
24
|
|
|
24
|
-
context
|
|
25
|
-
let(:params) {{ }
|
|
26
|
-
|
|
25
|
+
context 'simpmod class without any parameters' do
|
|
26
|
+
let(:params) { {} }
|
|
27
|
+
|
|
28
|
+
it_behaves_like 'a structured module'
|
|
27
29
|
it { is_expected.to contain_class('simpmod').with_trusted_nets(['127.0.0.1/32']) }
|
|
28
30
|
end
|
|
29
31
|
|
|
30
|
-
context
|
|
31
|
-
let(:params)
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
32
|
+
context 'simpmod class with firewall enabled' do
|
|
33
|
+
let(:params) do
|
|
34
|
+
{
|
|
35
|
+
:trusted_nets => ['10.0.2.0/24'],
|
|
36
|
+
:tcp_listen_port => 1234,
|
|
37
|
+
:enable_firewall => true
|
|
38
|
+
}
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
# ##it_behaves_like "a structured module"
|
|
37
42
|
it { is_expected.to contain_class('simpmod::config::firewall') }
|
|
38
43
|
|
|
39
44
|
it { is_expected.to contain_class('simpmod::config::firewall').that_comes_before('Class[simpmod::service]') }
|
|
40
|
-
|
|
45
|
+
|
|
46
|
+
it {
|
|
47
|
+
expect(subject).to create_iptables__listen__tcp_stateful('allow_simpmod_tcp_connections').with_dports(1234)
|
|
41
48
|
}
|
|
42
49
|
end
|
|
43
50
|
|
|
44
|
-
context
|
|
45
|
-
let(:params)
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
51
|
+
context 'simpmod class with selinux enabled' do
|
|
52
|
+
let(:params) do
|
|
53
|
+
{
|
|
54
|
+
:enable_selinux => true
|
|
55
|
+
}
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
# ##it_behaves_like "a structured module"
|
|
49
59
|
it { is_expected.to contain_class('simpmod::config::selinux') }
|
|
50
60
|
it { is_expected.to contain_class('simpmod::config::selinux').that_comes_before('Class[simpmod::service]') }
|
|
51
61
|
it { is_expected.to create_notify('FIXME: selinux') }
|
|
52
62
|
end
|
|
53
63
|
|
|
54
|
-
context
|
|
55
|
-
let(:params)
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
64
|
+
context 'simpmod class with auditing enabled' do
|
|
65
|
+
let(:params) do
|
|
66
|
+
{
|
|
67
|
+
:enable_auditing => true
|
|
68
|
+
}
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# ##it_behaves_like "a structured module"
|
|
59
72
|
it { is_expected.to contain_class('simpmod::config::auditing') }
|
|
60
73
|
it { is_expected.to contain_class('simpmod::config::auditing').that_comes_before('Class[simpmod::service]') }
|
|
61
74
|
it { is_expected.to create_notify('FIXME: auditing') }
|
|
62
75
|
end
|
|
63
76
|
|
|
64
|
-
context
|
|
65
|
-
let(:params)
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
77
|
+
context 'simpmod class with logging enabled' do
|
|
78
|
+
let(:params) do
|
|
79
|
+
{
|
|
80
|
+
:enable_logging => true
|
|
81
|
+
}
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
# ##it_behaves_like "a structured module"
|
|
69
85
|
it { is_expected.to contain_class('simpmod::config::logging') }
|
|
70
86
|
it { is_expected.to contain_class('simpmod::config::logging').that_comes_before('Class[simpmod::service]') }
|
|
71
87
|
it { is_expected.to create_notify('FIXME: logging') }
|
|
@@ -76,12 +92,14 @@ describe 'simpmod' do
|
|
|
76
92
|
|
|
77
93
|
context 'unsupported operating system' do
|
|
78
94
|
describe 'simpmod class without any parameters on Solaris/Nexenta' do
|
|
79
|
-
let(:facts)
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
95
|
+
let(:facts) do
|
|
96
|
+
{
|
|
97
|
+
:osfamily => 'Solaris',
|
|
98
|
+
:operatingsystem => 'Nexenta'
|
|
99
|
+
}
|
|
100
|
+
end
|
|
83
101
|
|
|
84
|
-
it { expect { is_expected.to contain_package('simpmod') }.to raise_error(Puppet::Error,
|
|
102
|
+
it { expect { is_expected.to contain_package('simpmod') }.to raise_error(Puppet::Error, %r{Nexenta not supported}) }
|
|
85
103
|
end
|
|
86
104
|
end
|
|
87
105
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'puppetlabs_spec_helper/module_spec_helper'
|
|
2
4
|
require 'rspec-puppet'
|
|
3
5
|
require 'simp/rspec-puppet-facts'
|
|
@@ -7,9 +9,9 @@ require 'pathname'
|
|
|
7
9
|
|
|
8
10
|
# RSpec Material
|
|
9
11
|
fixture_path = File.expand_path(File.join(__FILE__, '..', 'fixtures'))
|
|
10
|
-
|
|
12
|
+
File.basename(File.expand_path(File.join(__FILE__, '../..')))
|
|
11
13
|
|
|
12
|
-
default_hiera_config
|
|
14
|
+
default_hiera_config = <<-EOM
|
|
13
15
|
---
|
|
14
16
|
:backends:
|
|
15
17
|
- "rspec"
|
|
@@ -23,9 +25,8 @@ default_hiera_config =<<-EOM
|
|
|
23
25
|
- "default"
|
|
24
26
|
EOM
|
|
25
27
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
_dir = File.join(fixture_path,dir)
|
|
28
|
+
['hieradata', 'modules'].each do |dir|
|
|
29
|
+
_dir = File.join(fixture_path, dir)
|
|
29
30
|
FileUtils.mkdir_p(_dir) unless File.directory?(_dir)
|
|
30
31
|
end
|
|
31
32
|
|
|
@@ -33,8 +34,8 @@ RSpec.configure do |c|
|
|
|
33
34
|
# If nothing else...
|
|
34
35
|
c.default_facts = {
|
|
35
36
|
:production => {
|
|
36
|
-
|
|
37
|
-
:path
|
|
37
|
+
# :fqdn => 'production.rspec.test.localdomain',
|
|
38
|
+
:path => '/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin',
|
|
38
39
|
:concat_basedir => '/tmp'
|
|
39
40
|
}
|
|
40
41
|
}
|
|
@@ -44,10 +45,10 @@ RSpec.configure do |c|
|
|
|
44
45
|
|
|
45
46
|
c.module_path = File.join(fixture_path, 'modules')
|
|
46
47
|
c.manifest_dir = File.join(fixture_path, 'manifests')
|
|
47
|
-
c.hiera_config = File.join(fixture_path,'hieradata','hiera.yaml')
|
|
48
|
+
c.hiera_config = File.join(fixture_path, 'hieradata', 'hiera.yaml')
|
|
48
49
|
|
|
49
50
|
# Useless backtrace noise
|
|
50
|
-
backtrace_exclusion_patterns = [
|
|
51
|
+
backtrace_exclusion_patterns = [%r{spec_helper}, %r{gems}]
|
|
51
52
|
|
|
52
53
|
if c.respond_to?(:backtrace_exclusion_patterns)
|
|
53
54
|
c.backtrace_exclusion_patterns = backtrace_exclusion_patterns
|
|
@@ -56,19 +57,17 @@ RSpec.configure do |c|
|
|
|
56
57
|
end
|
|
57
58
|
|
|
58
59
|
c.before(:all) do
|
|
59
|
-
data = YAML.
|
|
60
|
+
data = YAML.safe_load(default_hiera_config)
|
|
60
61
|
data[:yaml][:datadir] = File.join(fixture_path, 'hieradata')
|
|
61
62
|
|
|
62
|
-
File.
|
|
63
|
-
f.write data.to_yaml
|
|
64
|
-
end
|
|
63
|
+
File.write(c.hiera_config, data.to_yaml)
|
|
65
64
|
end
|
|
66
65
|
|
|
67
66
|
c.before(:each) do
|
|
68
67
|
@spec_global_env_temp = Dir.mktmpdir('simpspec')
|
|
69
68
|
|
|
70
69
|
if defined?(environment)
|
|
71
|
-
FileUtils.mkdir_p(File.join(@spec_global_env_temp,environment.to_s))
|
|
70
|
+
FileUtils.mkdir_p(File.join(@spec_global_env_temp, environment.to_s))
|
|
72
71
|
end
|
|
73
72
|
|
|
74
73
|
# ensure the user running these tests has an accessible environmentpath
|
|
@@ -86,7 +85,7 @@ end
|
|
|
86
85
|
Dir.glob("#{RSpec.configuration.module_path}/*").each do |dir|
|
|
87
86
|
begin
|
|
88
87
|
Pathname.new(dir).realpath
|
|
89
|
-
rescue
|
|
90
|
-
|
|
88
|
+
rescue StandardError
|
|
89
|
+
raise "ERROR: The module '#{dir}' is not installed. Tests cannot continue."
|
|
91
90
|
end
|
|
92
91
|
end
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'beaker-rspec'
|
|
2
4
|
require 'tmpdir'
|
|
3
5
|
require 'yaml'
|
|
@@ -15,7 +17,6 @@ unless ENV['BEAKER_provision'] == 'no'
|
|
|
15
17
|
end
|
|
16
18
|
end
|
|
17
19
|
|
|
18
|
-
|
|
19
20
|
RSpec.configure do |c|
|
|
20
21
|
# ensure that environment OS is ready on each host
|
|
21
22
|
fix_errata_on hosts
|
|
@@ -27,19 +28,18 @@ RSpec.configure do |c|
|
|
|
27
28
|
c.before :suite do
|
|
28
29
|
begin
|
|
29
30
|
# Install modules and dependencies from spec/fixtures/modules
|
|
30
|
-
copy_fixture_modules_to(
|
|
31
|
+
copy_fixture_modules_to(hosts)
|
|
31
32
|
|
|
32
33
|
# Generate and install PKI certificates on each SUT
|
|
33
34
|
Dir.mktmpdir do |cert_dir|
|
|
34
|
-
run_fake_pki_ca_on(
|
|
35
|
-
hosts.each{ |sut| copy_pki_to(
|
|
35
|
+
run_fake_pki_ca_on(default, hosts, cert_dir)
|
|
36
|
+
hosts.each { |sut| copy_pki_to(sut, cert_dir, '/etc/pki/simp-testing') }
|
|
36
37
|
end
|
|
37
38
|
rescue StandardError, ScriptError => e
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
end
|
|
39
|
+
raise e unless ENV['PRY']
|
|
40
|
+
|
|
41
|
+
require 'pry'
|
|
42
|
+
binding.pry # rubocop:disable Lint/Debugger
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
end
|
|
@@ -1,23 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
1
3
|
require 'simp/rake/pupmod/helpers'
|
|
2
4
|
require 'spec_helper'
|
|
3
5
|
|
|
4
6
|
describe Simp::Rake::Pupmod::Helpers do
|
|
5
7
|
before :each do
|
|
6
|
-
fixtures_dir = File.expand_path(
|
|
7
|
-
@simpmod =
|
|
8
|
-
@othermod =
|
|
8
|
+
fixtures_dir = File.expand_path('fixtures', __dir__)
|
|
9
|
+
@simpmod = described_class.new(File.join(fixtures_dir, 'simpmod'))
|
|
10
|
+
@othermod = described_class.new(File.join(fixtures_dir, 'othermod'))
|
|
9
11
|
end
|
|
10
12
|
|
|
11
13
|
describe '#initialize' do
|
|
12
14
|
it 'initialized (smoke test)' do
|
|
13
|
-
expect(
|
|
15
|
+
expect(@simpmod.class).to eq described_class
|
|
14
16
|
end
|
|
15
17
|
end
|
|
16
18
|
|
|
17
19
|
describe '#metadata' do
|
|
18
20
|
it 'reads a valid metadata.json (simp)' do
|
|
19
|
-
expect(
|
|
20
|
-
expect(
|
|
21
|
+
expect(@simpmod.send(:metadata)['name']).to eq 'simp-simpmod'
|
|
22
|
+
expect(@othermod.send(:metadata)['name']).to eq 'other-othermod'
|
|
21
23
|
end
|
|
22
24
|
end
|
|
23
25
|
|
|
@@ -36,32 +38,31 @@ describe Simp::Rake::Pupmod::Helpers do
|
|
|
36
38
|
end
|
|
37
39
|
|
|
38
40
|
it "doesn't match invalid one-line CHANGELOG entries" do
|
|
39
|
-
expect("* Foo Jan 1 1970 First Last <email@domain.com> - 0.0.1\n").
|
|
40
|
-
expect("* Mon Xxn 1 1970 First Last <email@domain.com> - 0.0.1\n").
|
|
41
|
-
expect("* Mon Jan 111 1970 First Last <email@domain.com> - 0.0.1\n").
|
|
42
|
-
expect("* Mon Jan 1 1970 <email@domain.com> - 0.0.1\n").
|
|
41
|
+
expect("* Foo Jan 1 1970 First Last <email@domain.com> - 0.0.1\n").not_to match @rgx
|
|
42
|
+
expect("* Mon Xxn 1 1970 First Last <email@domain.com> - 0.0.1\n").not_to match @rgx
|
|
43
|
+
expect("* Mon Jan 111 1970 First Last <email@domain.com> - 0.0.1\n").not_to match @rgx
|
|
44
|
+
expect("* Mon Jan 1 1970 <email@domain.com> - 0.0.1\n").not_to match @rgx
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
it 'matches valid two-line CHANGELOG entries' do
|
|
46
|
-
skip
|
|
48
|
+
skip 'Not worth implementing right now'
|
|
47
49
|
end
|
|
48
50
|
end
|
|
49
51
|
|
|
50
|
-
describe
|
|
52
|
+
describe '#changelog_annotation' do
|
|
51
53
|
it "generates a tag annotation from a valid SIMP module's CHANGELOG" do
|
|
52
|
-
_log = @simpmod.send(
|
|
53
|
-
expect(
|
|
54
|
-
expect(
|
|
55
|
-
expect(
|
|
54
|
+
_log = @simpmod.send(:changelog_annotation)
|
|
55
|
+
expect(_log.class).to be String
|
|
56
|
+
expect(_log.size).to be > 0
|
|
57
|
+
expect(_log.scan(%r{^Release of}).size).to eq 1
|
|
56
58
|
end
|
|
57
59
|
|
|
58
60
|
it 'handles multiple CHANGELOG entries for the same release' do
|
|
59
|
-
_log = @simpmod.send(
|
|
60
|
-
expect(
|
|
61
|
+
_log = @simpmod.send(:changelog_annotation)
|
|
62
|
+
expect(_log.scan(%r{^\*.*\d+\.\d+\.\d+$})).to eq [
|
|
61
63
|
'* Tue Jan 2 1970 Second Author <email1@domain.com> - 0.1.0',
|
|
62
64
|
'* Mon Jan 1 1970 First Author <email2@domain.com> - 0.1.0',
|
|
63
65
|
]
|
|
64
66
|
end
|
|
65
67
|
end
|
|
66
68
|
end
|
|
67
|
-
|