abide_dev_utils 0.10.0 → 0.11.1

Sign up to get free protection for your applications and to get access to all the features.
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'