abide_dev_utils 0.10.0 → 0.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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +7 -1
  4. data/Gemfile.lock +54 -65
  5. data/Rakefile +28 -0
  6. data/abide_dev_utils.gemspec +2 -1
  7. data/lib/abide_dev_utils/cem/benchmark.rb +485 -0
  8. data/lib/abide_dev_utils/cem/generate/coverage_report.rb +380 -0
  9. data/lib/abide_dev_utils/cem/generate/reference.rb +240 -0
  10. data/lib/abide_dev_utils/cem/generate.rb +11 -0
  11. data/lib/abide_dev_utils/cem/hiera_data/mapping_data/map_data.rb +110 -0
  12. data/lib/abide_dev_utils/cem/hiera_data/mapping_data/mixins.rb +46 -0
  13. data/lib/abide_dev_utils/cem/hiera_data/mapping_data.rb +146 -0
  14. data/lib/abide_dev_utils/cem/hiera_data/resource_data/control.rb +127 -0
  15. data/lib/abide_dev_utils/cem/hiera_data/resource_data/parameters.rb +90 -0
  16. data/lib/abide_dev_utils/cem/hiera_data/resource_data/resource.rb +102 -0
  17. data/lib/abide_dev_utils/cem/hiera_data/resource_data.rb +310 -0
  18. data/lib/abide_dev_utils/cem/hiera_data.rb +7 -0
  19. data/lib/abide_dev_utils/cem/mapping/mapper.rb +282 -0
  20. data/lib/abide_dev_utils/cem/validate/resource_data.rb +33 -0
  21. data/lib/abide_dev_utils/cem/validate.rb +10 -0
  22. data/lib/abide_dev_utils/cem.rb +1 -0
  23. data/lib/abide_dev_utils/cli/cem.rb +98 -0
  24. data/lib/abide_dev_utils/cli/jira.rb +1 -1
  25. data/lib/abide_dev_utils/cli/xccdf.rb +3 -0
  26. data/lib/abide_dev_utils/dot_number_comparable.rb +75 -0
  27. data/lib/abide_dev_utils/errors/cem.rb +32 -0
  28. data/lib/abide_dev_utils/errors/general.rb +8 -2
  29. data/lib/abide_dev_utils/errors/ppt.rb +4 -0
  30. data/lib/abide_dev_utils/errors.rb +6 -0
  31. data/lib/abide_dev_utils/markdown.rb +104 -0
  32. data/lib/abide_dev_utils/ppt/class_utils.rb +1 -1
  33. data/lib/abide_dev_utils/ppt/code_gen/data_types.rb +51 -0
  34. data/lib/abide_dev_utils/ppt/code_gen/generate.rb +15 -0
  35. data/lib/abide_dev_utils/ppt/code_gen/resource.rb +59 -0
  36. data/lib/abide_dev_utils/ppt/code_gen/resource_types/base.rb +93 -0
  37. data/lib/abide_dev_utils/ppt/code_gen/resource_types/class.rb +17 -0
  38. data/lib/abide_dev_utils/ppt/code_gen/resource_types/manifest.rb +16 -0
  39. data/lib/abide_dev_utils/ppt/code_gen/resource_types/parameter.rb +16 -0
  40. data/lib/abide_dev_utils/ppt/code_gen/resource_types/strings.rb +13 -0
  41. data/lib/abide_dev_utils/ppt/code_gen/resource_types.rb +6 -0
  42. data/lib/abide_dev_utils/ppt/code_gen.rb +15 -0
  43. data/lib/abide_dev_utils/ppt/code_introspection.rb +102 -0
  44. data/lib/abide_dev_utils/ppt/facter_utils.rb +140 -0
  45. data/lib/abide_dev_utils/ppt/hiera.rb +300 -0
  46. data/lib/abide_dev_utils/ppt/puppet_module.rb +75 -0
  47. data/lib/abide_dev_utils/ppt.rb +6 -5
  48. data/lib/abide_dev_utils/validate.rb +14 -0
  49. data/lib/abide_dev_utils/version.rb +1 -1
  50. data/lib/abide_dev_utils/xccdf/parser/helpers.rb +146 -0
  51. data/lib/abide_dev_utils/xccdf/parser/objects.rb +87 -144
  52. data/lib/abide_dev_utils/xccdf/parser.rb +5 -0
  53. data/lib/abide_dev_utils/xccdf/utils.rb +89 -0
  54. data/lib/abide_dev_utils/xccdf.rb +8 -2
  55. metadata +52 -5
  56. data/lib/abide_dev_utils/ppt/coverage.rb +0 -86
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4fc3820895d385ca28d6e097c1822cfaf878d41e2b282bfca55bec2e884a2dc2
4
- data.tar.gz: de27ab8fb2021de5cd437695566e4ab0ad0531bc94659948557b3b09a05d59f5
3
+ metadata.gz: 1b3b154482634fc055b078ce36dbf15a387c4da25f6061f96128f33fb3f29e18
4
+ data.tar.gz: ecf7d53d1b06680970bc21affdbd7603193a84a9c1cac46d53cc1e95b13abbb6
5
5
  SHA512:
6
- metadata.gz: 7df796781a8f4e4b87cf324c83273a9d2964f44f8dc8fd9f68c65610295f7b9f5161b70c23d66ab19ff75ca610860d27245256dabf6e69633850cbd2d1f3dd96
7
- data.tar.gz: 3cf0142c1a0f3fae3bab07f65add4a320f90ca900adc5be63b77f72e40edba4936b6ea835796d0fd6b2c3cff034b6a2dcb4f5bd1ff43a476b40bcc053c5356cb
6
+ metadata.gz: f8c1b8d427bcde511d53dc505c4c10853a6cd963d0da3d27148b81342f0bd497e364f17cd6212fde0a4d97fb3e0a25d566d11cef679c7220a05c696c6df95191
7
+ data.tar.gz: 54fd1971163662139121b3e9b7b31a7be8ad42127f8a08b4271cb995454a3b90460477d11b6e13148dfa3d950cfb2b86d84ea491e436ee6b28518c9ae66486bb
data/.gitignore CHANGED
@@ -4,6 +4,7 @@
4
4
  /coverage/
5
5
  /doc/
6
6
  /pkg/
7
+ /spec/fixtures/
7
8
  /spec/reports/
8
9
  /tmp/
9
10
  w10_20h2.xml
data/.rubocop.yml CHANGED
@@ -39,6 +39,9 @@ Style/IpAddresses:
39
39
  Exclude:
40
40
  - spec/rubocop/cop/style/ip_addresses_spec.rb
41
41
 
42
+ Style/RegexpLiteral:
43
+ Enabled: false
44
+
42
45
  Layout/EndOfLine:
43
46
  EnforcedStyle: lf
44
47
 
@@ -133,4 +136,7 @@ Performance/CollectionLiteralInLoop:
133
136
  - 'spec/**/*.rb'
134
137
 
135
138
  RSpec/StubbedMock:
136
- Enabled: false
139
+ Enabled: false
140
+
141
+ Convention/ExplicitBlockArgument:
142
+ Enabled: false
data/Gemfile.lock CHANGED
@@ -1,13 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- abide_dev_utils (0.10.0)
4
+ abide_dev_utils (0.11.1)
5
5
  amatch (~> 0.4)
6
6
  cmdparse (~> 3.0)
7
+ facterdb (>= 1.18)
7
8
  google-cloud-storage (~> 1.34)
8
9
  hashdiff (~> 1.0)
9
10
  jira-ruby (~> 2.2)
10
- nokogiri (~> 1.11)
11
+ nokogiri (~> 1.13)
11
12
  puppet (>= 6.23)
12
13
  ruby-progressbar (~> 1.11)
13
14
  selenium-webdriver (~> 4.0.0.beta4)
@@ -15,76 +16,62 @@ PATH
15
16
  GEM
16
17
  remote: https://rubygems.org/
17
18
  specs:
18
- activesupport (7.0.2.2)
19
+ CFPropertyList (2.3.6)
20
+ activesupport (7.0.3)
19
21
  concurrent-ruby (~> 1.0, >= 1.0.2)
20
22
  i18n (>= 1.6, < 2)
21
23
  minitest (>= 5.1)
22
24
  tzinfo (~> 2.0)
23
25
  addressable (2.8.0)
24
26
  public_suffix (>= 2.0.2, < 5.0)
25
- amatch (0.4.0)
27
+ amatch (0.4.1)
26
28
  mize
27
29
  tins (~> 1.0)
28
30
  ast (2.4.2)
29
- async (1.30.1)
31
+ async (1.30.2)
30
32
  console (~> 1.10)
31
33
  nio4r (~> 2.3)
32
34
  timers (~> 4.1)
33
- async-http (0.56.5)
35
+ async-http (0.56.6)
34
36
  async (>= 1.25)
35
37
  async-io (>= 1.28)
36
38
  async-pool (>= 0.2)
37
39
  protocol-http (~> 0.22.0)
38
40
  protocol-http1 (~> 0.14.0)
39
41
  protocol-http2 (~> 0.14.0)
42
+ traces (~> 0.4.0)
40
43
  async-http-faraday (0.11.0)
41
44
  async-http (~> 0.42)
42
45
  faraday
43
- async-io (1.32.2)
46
+ async-io (1.33.0)
44
47
  async
45
- async-pool (0.3.9)
48
+ async-pool (0.3.10)
46
49
  async (>= 1.25)
47
50
  atlassian-jwt (0.2.1)
48
51
  jwt (~> 2.1)
49
52
  childprocess (4.1.0)
50
53
  cmdparse (3.0.7)
51
54
  coderay (1.1.3)
52
- concurrent-ruby (1.1.9)
53
- console (1.14.0)
55
+ concurrent-ruby (1.1.10)
56
+ console (1.15.3)
54
57
  fiber-local
55
58
  declarative (0.0.20)
56
59
  deep_merge (1.2.2)
57
60
  diff-lcs (1.5.0)
58
61
  digest-crc (0.6.4)
59
62
  rake (>= 12.0.0, < 14.0.0)
60
- facter (4.2.9)
63
+ facter (4.2.10)
61
64
  hocon (~> 1.3)
62
65
  thor (>= 1.0.1, < 2.0)
63
- faraday (1.10.0)
64
- faraday-em_http (~> 1.0)
65
- faraday-em_synchrony (~> 1.0)
66
- faraday-excon (~> 1.1)
67
- faraday-httpclient (~> 1.0)
68
- faraday-multipart (~> 1.0)
69
- faraday-net_http (~> 1.0)
70
- faraday-net_http_persistent (~> 1.0)
71
- faraday-patron (~> 1.0)
72
- faraday-rack (~> 1.0)
73
- faraday-retry (~> 1.0)
66
+ facterdb (1.18.0)
67
+ facter (< 5.0.0)
68
+ jgrep
69
+ faraday (2.3.0)
70
+ faraday-net_http (~> 2.0)
74
71
  ruby2_keywords (>= 0.0.4)
75
- faraday-em_http (1.0.0)
76
- faraday-em_synchrony (1.0.0)
77
- faraday-excon (1.1.0)
78
- faraday-http-cache (2.2.0)
72
+ faraday-http-cache (2.3.0)
79
73
  faraday (>= 0.8)
80
- faraday-httpclient (1.0.1)
81
- faraday-multipart (1.0.3)
82
- multipart-post (>= 1.2, < 3)
83
- faraday-net_http (1.0.1)
84
- faraday-net_http_persistent (1.2.0)
85
- faraday-patron (1.0.0)
86
- faraday-rack (1.0.0)
87
- faraday-retry (1.0.3)
74
+ faraday-net_http (2.0.3)
88
75
  fast_gettext (1.8.0)
89
76
  fiber-local (1.0.0)
90
77
  gem-release (2.2.2)
@@ -97,7 +84,7 @@ GEM
97
84
  octokit (~> 4.6)
98
85
  rainbow (>= 2.2.1)
99
86
  rake (>= 10.0)
100
- google-apis-core (0.4.2)
87
+ google-apis-core (0.5.0)
101
88
  addressable (~> 2.5, >= 2.5.1)
102
89
  googleauth (>= 0.16.2, < 2.a)
103
90
  httpclient (>= 2.8.1, < 3.a)
@@ -108,7 +95,7 @@ GEM
108
95
  webrick
109
96
  google-apis-iamcredentials_v1 (0.10.0)
110
97
  google-apis-core (>= 0.4, < 2.a)
111
- google-apis-storage_v1 (0.13.0)
98
+ google-apis-storage_v1 (0.14.0)
112
99
  google-apis-core (>= 0.4, < 2.a)
113
100
  google-cloud-core (1.6.0)
114
101
  google-cloud-env (~> 1.0)
@@ -116,7 +103,7 @@ GEM
116
103
  google-cloud-env (1.6.0)
117
104
  faraday (>= 0.17.3, < 3.0)
118
105
  google-cloud-errors (1.2.0)
119
- google-cloud-storage (1.36.1)
106
+ google-cloud-storage (1.36.2)
120
107
  addressable (~> 2.8)
121
108
  digest-crc (~> 0.4)
122
109
  google-apis-iamcredentials_v1 (~> 0.1)
@@ -124,7 +111,7 @@ GEM
124
111
  google-cloud-core (~> 1.6)
125
112
  googleauth (>= 0.16.2, < 2.a)
126
113
  mini_mime (~> 1.0)
127
- googleauth (1.1.2)
114
+ googleauth (1.1.3)
128
115
  faraday (>= 0.17.3, < 3.a)
129
116
  jwt (>= 1.4, < 3.0)
130
117
  memoist (~> 0.16)
@@ -137,6 +124,7 @@ GEM
137
124
  httpclient (2.8.3)
138
125
  i18n (1.10.0)
139
126
  concurrent-ruby (~> 1.0)
127
+ jgrep (1.5.4)
140
128
  jira-ruby (2.2.0)
141
129
  activesupport
142
130
  atlassian-jwt
@@ -147,29 +135,27 @@ GEM
147
135
  memoist (0.16.2)
148
136
  method_source (1.0.0)
149
137
  mini_mime (1.1.2)
150
- mini_portile2 (2.8.0)
151
138
  minitest (5.15.0)
152
139
  mize (0.4.0)
153
140
  protocol (~> 2.0)
154
141
  multi_json (1.15.0)
155
142
  multipart-post (2.1.1)
156
143
  nio4r (2.5.8)
157
- nokogiri (1.13.6)
158
- mini_portile2 (~> 2.8.0)
144
+ nokogiri (1.13.6-x86_64-darwin)
159
145
  racc (~> 1.4)
160
- oauth (0.5.8)
161
- octokit (4.22.0)
162
- faraday (>= 0.9)
163
- sawyer (~> 0.8.0, >= 0.5.3)
146
+ oauth (0.5.10)
147
+ octokit (4.25.0)
148
+ faraday (>= 1, < 3)
149
+ sawyer (~> 0.9)
164
150
  os (1.1.4)
165
- parallel (1.21.0)
166
- parser (3.1.1.0)
151
+ parallel (1.22.1)
152
+ parser (3.1.2.0)
167
153
  ast (~> 2.4.1)
168
154
  protocol (2.0.0)
169
155
  ruby_parser (~> 3.0)
170
156
  protocol-hpack (1.4.2)
171
- protocol-http (0.22.5)
172
- protocol-http1 (0.14.2)
157
+ protocol-http (0.22.6)
158
+ protocol-http1 (0.14.4)
173
159
  protocol-http (~> 0.22)
174
160
  protocol-http2 (0.14.2)
175
161
  protocol-hpack (~> 1.4)
@@ -177,8 +163,9 @@ GEM
177
163
  pry (0.14.1)
178
164
  coderay (~> 1.1)
179
165
  method_source (~> 1.0)
180
- public_suffix (4.0.6)
181
- puppet (7.16.0)
166
+ public_suffix (4.0.7)
167
+ puppet (7.17.0-universal-darwin)
168
+ CFPropertyList (~> 2.2)
182
169
  concurrent-ruby (~> 1.0)
183
170
  deep_merge (~> 1.0)
184
171
  facter (> 2.0.1, < 5)
@@ -194,8 +181,8 @@ GEM
194
181
  racc (1.6.0)
195
182
  rainbow (3.1.1)
196
183
  rake (13.0.6)
197
- regexp_parser (2.2.1)
198
- representable (3.1.1)
184
+ regexp_parser (2.5.0)
185
+ representable (3.2.0)
199
186
  declarative (< 0.1.0)
200
187
  trailblazer-option (>= 0.1.1, < 0.2.0)
201
188
  uber (< 0.2.0)
@@ -210,36 +197,36 @@ GEM
210
197
  rspec-expectations (3.11.0)
211
198
  diff-lcs (>= 1.2.0, < 2.0)
212
199
  rspec-support (~> 3.11.0)
213
- rspec-mocks (3.11.0)
200
+ rspec-mocks (3.11.1)
214
201
  diff-lcs (>= 1.2.0, < 2.0)
215
202
  rspec-support (~> 3.11.0)
216
203
  rspec-support (3.11.0)
217
- rubocop (1.25.1)
204
+ rubocop (1.30.0)
218
205
  parallel (~> 1.10)
219
206
  parser (>= 3.1.0.0)
220
207
  rainbow (>= 2.2.2, < 4.0)
221
208
  regexp_parser (>= 1.8, < 3.0)
222
- rexml
223
- rubocop-ast (>= 1.15.1, < 2.0)
209
+ rexml (>= 3.2.5, < 4.0)
210
+ rubocop-ast (>= 1.18.0, < 2.0)
224
211
  ruby-progressbar (~> 1.7)
225
212
  unicode-display_width (>= 1.4.0, < 3.0)
226
- rubocop-ast (1.16.0)
213
+ rubocop-ast (1.18.0)
227
214
  parser (>= 3.1.1.0)
228
215
  rubocop-i18n (3.0.0)
229
216
  rubocop (~> 1.0)
230
- rubocop-performance (1.13.2)
217
+ rubocop-performance (1.14.0)
231
218
  rubocop (>= 1.7.0, < 2.0)
232
219
  rubocop-ast (>= 0.4.0)
233
- rubocop-rspec (2.9.0)
220
+ rubocop-rspec (2.11.1)
234
221
  rubocop (~> 1.19)
235
222
  ruby-progressbar (1.11.0)
236
223
  ruby2_keywords (0.0.5)
237
224
  ruby_parser (3.19.1)
238
225
  sexp_processor (~> 4.16)
239
226
  rubyzip (2.3.2)
240
- sawyer (0.8.2)
227
+ sawyer (0.9.2)
241
228
  addressable (>= 2.3.5)
242
- faraday (> 0.8, < 2.0)
229
+ faraday (>= 0.17.3, < 3)
243
230
  scanf (1.0.0)
244
231
  selenium-webdriver (4.0.3)
245
232
  childprocess (>= 0.5, < 5.0)
@@ -255,8 +242,9 @@ GEM
255
242
  sync (0.5.0)
256
243
  thor (1.2.1)
257
244
  timers (4.3.3)
258
- tins (1.31.0)
245
+ tins (1.31.1)
259
246
  sync
247
+ traces (0.4.1)
260
248
  trailblazer-option (0.1.2)
261
249
  tzinfo (2.0.4)
262
250
  concurrent-ruby (~> 1.0)
@@ -265,7 +253,8 @@ GEM
265
253
  webrick (1.7.0)
266
254
 
267
255
  PLATFORMS
268
- ruby
256
+ x86_64-darwin-19
257
+ x86_64-linux
269
258
 
270
259
  DEPENDENCIES
271
260
  abide_dev_utils!
@@ -284,4 +273,4 @@ DEPENDENCIES
284
273
  rubocop-rspec (~> 2.1)
285
274
 
286
275
  BUNDLED WITH
287
- 2.1.4
276
+ 2.3.9
data/Rakefile CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'rake'
3
4
  require "bundler/gem_tasks"
4
5
  require "rspec/core/rake_task"
5
6
 
@@ -10,3 +11,30 @@ require "rubocop/rake_task"
10
11
  RuboCop::RakeTask.new
11
12
 
12
13
  task default: %i[spec rubocop]
14
+
15
+ namespace 'cem' do
16
+ directory 'spec/fixtures'
17
+
18
+ directory 'spec/fixtures/puppetlabs-cem_linux' do
19
+ sh 'git clone git@github.com:puppetlabs/puppetlabs-cem_linux.git spec/fixtures/puppetlabs-cem_linux'
20
+ end
21
+ file 'spec/fixtures/puppetlabs-cem_linux' => ['spec/fixtures']
22
+
23
+ directory 'spec/fixtures/puppetlabs-cem_windows' do
24
+ sh 'git clone git@github.com:puppetlabs/puppetlabs-cem_windows.git spec/fixtures/puppetlabs-cem_windows'
25
+ end
26
+ file 'spec/fixtures/puppetlabs-cem_windows' => ['spec/fixtures']
27
+
28
+ task :fixture, [:cem_mod] do |_, args|
29
+ case args.cem_mod
30
+ when /linux/
31
+ Rake::Task['spec/fixtures/puppetlabs-cem_linux'].invoke
32
+ when /windows/
33
+ Rake::Task['spec/fixtures/puppetlabs-cem_windows'].invoke
34
+ else
35
+ raise "Unknown CEM module #{args.cem_mod}"
36
+ end
37
+ end
38
+
39
+ multitask fixtures: %w[spec/fixtures/puppetlabs-cem_linux spec/fixtures/puppetlabs-cem_windows]
40
+ end
@@ -32,7 +32,7 @@ Gem::Specification.new do |spec|
32
32
  spec.require_paths = ['lib']
33
33
 
34
34
  # Prod dependencies
35
- spec.add_dependency 'nokogiri', '~> 1.11'
35
+ spec.add_dependency 'nokogiri', '~> 1.13'
36
36
  spec.add_dependency 'cmdparse', '~> 3.0'
37
37
  spec.add_dependency 'puppet', '>= 6.23'
38
38
  spec.add_dependency 'jira-ruby', '~> 2.2'
@@ -41,6 +41,7 @@ Gem::Specification.new do |spec|
41
41
  spec.add_dependency 'google-cloud-storage', '~> 1.34'
42
42
  spec.add_dependency 'hashdiff', '~> 1.0'
43
43
  spec.add_dependency 'amatch', '~> 0.4'
44
+ spec.add_dependency 'facterdb', '>= 1.18'
44
45
 
45
46
  # Dev dependencies
46
47
  spec.add_development_dependency 'bundler'