inspec-core 4.56.17 → 5.10.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (72) hide show
  1. checksums.yaml +4 -4
  2. data/etc/deprecations.json +12 -16
  3. data/inspec-core.gemspec +1 -1
  4. data/lib/inspec/base_cli.rb +14 -2
  5. data/lib/inspec/cli.rb +15 -0
  6. data/lib/inspec/dependency_installer.rb +74 -0
  7. data/lib/inspec/dependency_loader.rb +97 -0
  8. data/lib/inspec/dsl.rb +11 -2
  9. data/lib/inspec/errors.rb +7 -0
  10. data/lib/inspec/formatters/base.rb +23 -0
  11. data/lib/inspec/metadata.rb +36 -0
  12. data/lib/inspec/plugin/v2/installer.rb +9 -2
  13. data/lib/inspec/plugin/v2/loader.rb +13 -0
  14. data/lib/inspec/plugin/v2/plugin_types/streaming_reporter.rb +44 -1
  15. data/lib/inspec/plugin/v2/status.rb +2 -1
  16. data/lib/inspec/profile.rb +63 -0
  17. data/lib/inspec/reporters/automate.rb +1 -1
  18. data/lib/inspec/reporters/cli.rb +1 -1
  19. data/lib/inspec/reporters/json.rb +31 -11
  20. data/lib/inspec/resource.rb +6 -0
  21. data/lib/inspec/resources/apt.rb +12 -6
  22. data/lib/inspec/resources/cgroup.rb +101 -0
  23. data/lib/inspec/resources/cron.rb +49 -0
  24. data/lib/inspec/resources/ipfilter.rb +59 -0
  25. data/lib/inspec/resources/ipnat.rb +58 -0
  26. data/lib/inspec/resources/lxc.rb +57 -0
  27. data/lib/inspec/resources/oracledb_session.rb +7 -3
  28. data/lib/inspec/resources/postgres_session.rb +4 -2
  29. data/lib/inspec/resources/virtualization.rb +9 -3
  30. data/lib/inspec/resources.rb +3 -16
  31. data/lib/inspec/runner.rb +18 -1
  32. data/lib/inspec/runner_rspec.rb +15 -0
  33. data/lib/inspec/schema/exec_json.rb +59 -58
  34. data/lib/inspec/schema/exec_json_min.rb +16 -16
  35. data/lib/inspec/schema/primitives.rb +68 -51
  36. data/lib/inspec/schema/profile_json.rb +27 -27
  37. data/lib/inspec/schema.rb +1 -0
  38. data/lib/inspec/ui.rb +10 -0
  39. data/lib/inspec/utils/deprecated_cloud_resources_list.rb +54 -0
  40. data/lib/inspec/version.rb +1 -1
  41. data/lib/inspec.rb +3 -0
  42. data/lib/plugins/inspec-artifact/inspec-artifact.gemspec +9 -0
  43. data/lib/plugins/inspec-compliance/inspec-compliance.gemspec +9 -0
  44. data/lib/plugins/inspec-habitat/inspec-habitat.gemspec +9 -0
  45. data/lib/plugins/inspec-init/inspec-init.gemspec +9 -0
  46. data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +1 -0
  47. data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +9 -0
  48. data/lib/plugins/inspec-init/lib/inspec-init/cli_resource.rb +126 -0
  49. data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +9 -8
  50. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.erb +16 -0
  51. data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/streaming_reporter.erb +31 -0
  52. data/lib/plugins/inspec-init/templates/profiles/aws/inspec.yml +1 -1
  53. data/lib/plugins/inspec-init/templates/resources/basic/docs/resource-doc.erb +77 -0
  54. data/lib/plugins/inspec-init/templates/resources/basic/libraries/inspec-resource-template.erb +94 -0
  55. data/lib/plugins/inspec-init/templates/resources/plural/docs/resource-doc.erb +62 -0
  56. data/lib/plugins/inspec-init/templates/resources/plural/libraries/inspec-resource-template.erb +73 -0
  57. data/lib/plugins/inspec-plugin-manager-cli/inspec-plugin-manager-cli.gemspec +10 -0
  58. data/lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb +15 -11
  59. data/lib/plugins/inspec-reporter-html2/inspec-reporter-html2.gemspec +9 -0
  60. data/lib/plugins/inspec-reporter-html2/templates/body.html.erb +2 -0
  61. data/lib/plugins/inspec-reporter-html2/templates/control.html.erb +3 -0
  62. data/lib/plugins/inspec-reporter-html2/templates/profile.html.erb +1 -0
  63. data/lib/plugins/inspec-reporter-html2/templates/result.html.erb +1 -0
  64. data/lib/plugins/inspec-reporter-json-min/inspec-reporter-json-min.gemspec +9 -0
  65. data/lib/plugins/inspec-reporter-junit/inspec-reporter-junit.gemspec +9 -0
  66. data/lib/plugins/inspec-streaming-reporter-progress-bar/README.md +5 -0
  67. data/lib/plugins/inspec-streaming-reporter-progress-bar/inspec-streaming-reporter-progress-bar.gemspec +9 -0
  68. data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/plugin.rb +13 -0
  69. data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/streaming_reporter.rb +112 -0
  70. data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/version.rb +8 -0
  71. data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar.rb +15 -0
  72. metadata +31 -3
@@ -0,0 +1,73 @@
1
+ # This file was generated by `inspec init resource <%= resource_name %>`
2
+ # using the "--template plural" option. It represents a "plural" (FilterTable-based)
3
+ # InSpec resource.
4
+
5
+ # Plural resources query multiple resources of the same type in bulk. For details of the
6
+ # differences between singular and plural resources, please see:
7
+ # https://www.chef.io/blog/understanding-singular-and-plural-inspec-resources
8
+
9
+ # Plural resources rely on the FilterTable facility to handle data lookup and querying.
10
+ # For details on Filtertable and how to use it effectively within your resource, please see
11
+ # https://github.com/inspec/inspec/blob/main/dev-docs/filtertable-usage.md
12
+ # Consider that page required reading for authoring plural resources.
13
+
14
+ # Uncomment the below lines to add gems and files required by the resource
15
+ # require "inspec/utils/filter"
16
+ # require_relative ""
17
+
18
+ # Include FilterTable support
19
+ require "inspec/utils/filter"
20
+
21
+ module Inspec::Resources
22
+ # Most custom InSpec resource inherit from a dynamic class, InSpec.resource(1).
23
+ # If you wish to inherit from a core resource, you need to follow special instructions -
24
+ # see https://www.chef.io/blog/extending-inspec-resources-core-resource-inheritance
25
+ class <%= class_name %> < Inspec.resource(1)
26
+ # Every resource requires an internal name.
27
+ name "<%= resource_name %>"
28
+
29
+ # Restrict to only run on the below platforms (if none were given,
30
+ # all OS's and cloud API's supported)
31
+ supports platform: "<%= supports_platform %>"
32
+
33
+ desc "<%= description %>"
34
+
35
+ example <<~EXAMPLE
36
+ describe <%= resource_name %>.where{ shoe_size > 10 } do
37
+ its("count") { should cmp 0 }
38
+ end
39
+ EXAMPLE
40
+
41
+ # Resource initialization. Add any arguments you want to pass to the contructor here.
42
+ # Anything you pass here will be passed to the "describe" call:
43
+ # describe <%= resource_name %>(YOUR_PARAMETERS_HERE) do
44
+ # its("shoe_size") { should cmp 10 }
45
+ # end
46
+ def initialize
47
+ # Initialize required path/params/configs
48
+ end
49
+
50
+ # Define the FilterTable. This will define many extra methods on your resource, including
51
+ # where(), count(), and a property for every column.
52
+ table = FilterTable.create
53
+ table.register_column(:names, field: :name, style: :simple)
54
+ .register_column(:shoe_sizes, field: :shoe_size)
55
+ .install_filter_methods_on_resource(self, :fetch_data)
56
+
57
+ # Plural resources do not generally define a resource_id.
58
+
59
+ # Define how you want your resource to appear in test reports. Commonly, this is just the resource name for plural resources.
60
+ def to_s
61
+ "<%= resource_name %>"
62
+ end
63
+
64
+ # Do whatever you need to do to fetch the underlying data.
65
+ # Return it as an array of hashes.
66
+ def fetch_data
67
+ [
68
+ { name: "Bob", shoe_size: 9 },
69
+ { name: "Alice", shoe_size: 8 },
70
+ ]
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,10 @@
1
+ # .gemspec file is added to add plugin details
2
+ # These specs are used in plugin list and search command
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "inspec-plugin-manager-cli"
6
+ spec.summary = "CLI plugin for InSpec"
7
+ spec.description = "This is a CLI plugin for InSpec. It uses the Plugins API v2 to create a
8
+ series of commands to manage plugins."
9
+ spec.license = "Apache-2.0"
10
+ end
@@ -41,13 +41,14 @@ module InspecPlugins
41
41
 
42
42
  unless plugin_statuses.empty?
43
43
  ui.table do |t|
44
- t.header = ["Plugin Name", "Version", "Via", "ApiVer"]
44
+ t.header = ["Plugin Name", "Version", "Via", "ApiVer", "Description"]
45
45
  plugin_statuses.sort_by { |s| s.name.to_s }.each do |status|
46
46
  t << [
47
47
  status.name,
48
48
  make_pretty_version(status),
49
49
  make_pretty_install_type(status),
50
50
  status.api_generation,
51
+ status.description,
51
52
  ]
52
53
  end
53
54
  end
@@ -83,14 +84,15 @@ module InspecPlugins
83
84
  end
84
85
 
85
86
  puts
86
- ui.bold(format(" %-30s%-50s\n", "Plugin Name", "Versions Available"))
87
- ui.line
87
+ ui.bold(format(" %-30s%-30s%-20s\n", "Plugin Name", "Versions Available", "Description"))
88
+ ui.line_with_width(100)
88
89
  search_results.keys.sort.each do |plugin_name|
89
- versions = options[:all] ? search_results[plugin_name] : [search_results[plugin_name].first]
90
+ versions = options[:all] ? search_results[plugin_name]["versions"] : [search_results[plugin_name]["versions"].first]
90
91
  versions = "(" + versions.join(", ") + ")"
91
- ui.plain_line(format(" %-30s%-50s", plugin_name, versions))
92
+ description = search_results[plugin_name]["description"]
93
+ ui.plain_line(format(" %-30s%-30s%-20s", plugin_name, versions, description))
92
94
  end
93
- ui.line
95
+ ui.line_with_width(100)
94
96
  ui.plain_line(" #{search_results.count} plugin(s) found")
95
97
  puts
96
98
 
@@ -381,9 +383,11 @@ module InspecPlugins
381
383
  # Do an expensive search to determine the latest version.
382
384
  unless requested_version
383
385
  latest_version = installer.search(plugin_name, exact: true, scope: :latest)
384
- latest_version = latest_version[plugin_name]&.last
385
- if latest_version && !requested_version
386
- requested_version = latest_version
386
+ if latest_version[plugin_name]
387
+ latest_version = latest_version[plugin_name]["versions"]&.last
388
+ if latest_version && !requested_version
389
+ requested_version = latest_version
390
+ end
387
391
  end
388
392
  end
389
393
 
@@ -429,7 +433,7 @@ module InspecPlugins
429
433
  if results.empty?
430
434
  ui.red("No such plugin gem #{plugin_name} could be found on " \
431
435
  "#{source_host} - installation failed.\n")
432
- elsif options[:version] && !results[plugin_name].include?(options[:version])
436
+ elsif options[:version] && results[plugin_name] && !results[plugin_name]["versions"].include?(options[:version])
433
437
  ui.red("No such version - #{plugin_name} exists, but no such " \
434
438
  "version #{options[:version]} found on #{source_host} - " \
435
439
  "installation failed.\n")
@@ -460,7 +464,7 @@ module InspecPlugins
460
464
 
461
465
  # Check for latest version (and implicitly, existence)
462
466
  latest_version = installer.search(plugin_name, exact: true, scope: :latest)
463
- latest_version = latest_version[plugin_name]&.last
467
+ latest_version = latest_version[plugin_name] ? latest_version[plugin_name]["versions"]&.last : nil
464
468
 
465
469
  if pre_update_versions.include?(latest_version)
466
470
  ui.plain_line("#{ui.bold("Already installed at latest version:", print: false)} " \
@@ -0,0 +1,9 @@
1
+ # .gemspec file is added to add plugin details
2
+ # These specs are used in plugin list and search command
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "inspec-reporter-html2"
6
+ spec.summary = "Improved HTML reporter plugin"
7
+ spec.description = "An improved HTML output reporter specifically for Chef InSpec. Unlike the default html reporter, which is RSpec-based, this reporter knows about Chef InSpec structures like Controls and Profiles, and includes full metadata such as control tags, etc."
8
+ spec.license = "Apache-2.0"
9
+ end
@@ -26,12 +26,14 @@
26
26
 
27
27
  <div class="inspec-summary">
28
28
  <table id="platform" class="info">
29
+ <caption>Platform Information</caption>
29
30
  <tr><th colspan=2><h4 id="platform-label">Platform Information</h4></th></tr>
30
31
  <tr class= "name"><th>Name:</th><td><%= run_data.platform.name %></td></tr>
31
32
  <tr class= "release"><th>Release:</th><td><%= run_data.platform.release %></td></tr>
32
33
  <tr class= "target"><th>Target:</th><td><%= run_data.platform.target %></td></tr>
33
34
  </table>
34
35
  <table id="statistics" class="info">
36
+ <caption>Control Statistics</caption>
35
37
  <tr><th colspan="2"><h4 id="statistics-label">Control Statistics</h4></th></tr>
36
38
  <tr class= "passed"><th>Passed:</th><td><%= run_data.statistics.controls.passed.total %></td></tr>
37
39
  <tr class= "skipped"><th>Skipped:</th><td><%= run_data.statistics.controls.skipped.total %></td></tr>
@@ -26,6 +26,7 @@
26
26
 
27
27
  <h3 class="control-title">Control <code><%= control.id %></code></h3>
28
28
  <table class="control-metadata info" id="control-metadata-<%= slugged_id %>">
29
+ <caption>Control Table</caption>
29
30
  <tr class="status status-<%= status %>"><th>Status:</th><td><div><%= status.capitalize %></div></td></tr>
30
31
  <% if control.title %><tr class="title"><th>Title:</th><td><%= control.title %></td></tr> <% end %>
31
32
  <% if control.desc %><tr class="desc"><th>Description:</th><td><%= control.desc %></td></tr> <% end %>
@@ -35,6 +36,8 @@
35
36
  <th>Tags:</th>
36
37
  <td>
37
38
  <table class="tags">
39
+ <caption>Tag Table</caption>
40
+ <tr><th>Tag Name</th><th>Tag Text</th></tr>
38
41
  <% control.tags.each do |tag_name, tag_text| %>
39
42
  <tr><td><%= tag_name %></td><td><%= tag_text %></td></tr>
40
43
  <% end %>
@@ -3,6 +3,7 @@
3
3
  <h2 class="profile_title">Profile <%= display_name %> (<%= profile.name %>)</h2>
4
4
 
5
5
  <table class="profile-metadata info" id="profile-metadata-<%= profile.name %>">
6
+ <caption>Profile Information Table</caption>
6
7
  <tr class="profile-version"><th>Version:</th><td><%= profile.version %></td></tr>
7
8
  <% if profile.summary %>
8
9
  <tr class="profile-summary"><th>Summary:</th><td><%= profile.summary %></td></tr>
@@ -2,6 +2,7 @@
2
2
  <div class="result" id="result-<%= slugged_id %>">
3
3
  <h4 class="resource-title">Resource <code><%= result.resource_title.to_s %></code></h4>
4
4
  <table class="result-metadata info">
5
+ <caption>Result Information Table</caption>
5
6
  <tr class="expectation_message"><th>Test:</th><td><code><%= result.expectation_message %></code></td></tr>
6
7
  <tr class="status status-<%= result.status %>"><th>Status:</th><td><div><%= result.status.capitalize %></div></td></tr>
7
8
  <% if result.status == "failed" %>
@@ -0,0 +1,9 @@
1
+ # .gemspec file is added to add plugin details
2
+ # These specs are used in plugin list and search command
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "inspec-reporter-json-min"
6
+ spec.summary = "Json-min json reporter plugin"
7
+ spec.description = "This plugin provides the `json-min` reporter, which produces test output in JSON format with less detail than the `json` reporter."
8
+ spec.license = "Apache-2.0"
9
+ end
@@ -0,0 +1,9 @@
1
+ # .gemspec file is added to add plugin details
2
+ # These specs are used in plugin list and search command
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "inspec-reporter-junit"
6
+ spec.summary = "JUnit XML reporter plugin"
7
+ spec.description = "`junit` is the legacy Chef InSpec JUnit reporter, which is retained for backwards compatibility. It generates an XML report in Apache Ant JUnit format. The output format is considered nonstandard in several ways. New users are advised to use `junit2`."
8
+ spec.license = "Apache-2.0"
9
+ end
@@ -0,0 +1,5 @@
1
+ # StreamingReporterProgressBar Plugin
2
+
3
+ ## What This Plugin Does
4
+
5
+ This plugin is a streaming reporter plugin which shows the real-time progress of a running InSpec profile using a progress bar. It also outputs the ID of a running control with an indicator showing if the control has passed, failed or skipped.
@@ -0,0 +1,9 @@
1
+ # .gemspec file is added to add plugin details
2
+ # These specs are used in plugin list and search command
3
+
4
+ Gem::Specification.new do |spec|
5
+ spec.name = "inspec-streaming-reporter-progress-bar"
6
+ spec.summary = "Displays a real-time progress bar and control title as output"
7
+ spec.description = "This plugin is a streaming reporter plugin which shows the real-time progress of a running InSpec profile using a progress bar. It also outputs the ID of a running control with an indicator showing if the control has passed, failed or skipped."
8
+ spec.license = "Apache-2.0"
9
+ end
@@ -0,0 +1,13 @@
1
+ require "inspec-streaming-reporter-progress-bar/version"
2
+
3
+ module InspecPlugins
4
+ module StreamingReporterProgressBar
5
+ class Plugin < ::Inspec.plugin(2)
6
+ plugin_name :"inspec-streaming-reporter-progress-bar"
7
+ streaming_reporter :"progress-bar" do
8
+ require "inspec-streaming-reporter-progress-bar/streaming_reporter"
9
+ InspecPlugins::StreamingReporterProgressBar::StreamingReporter
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,112 @@
1
+ require "progress_bar"
2
+ module InspecPlugins::StreamingReporterProgressBar
3
+ # This class will provide the actual Streaming Reporter implementation.
4
+ # Its superclass is provided by another call to Inspec.plugin,
5
+ # this time with two args. The first arg specifies we are requesting
6
+ # version 2 of the Plugins API. The second says we are making a
7
+ # Streaming Reporter plugin component, so please make available any DSL needed
8
+ # for that.
9
+
10
+ class StreamingReporter < Inspec.plugin(2, :streaming_reporter)
11
+ # Registering these methods with RSpec::Core::Formatters class is mandatory
12
+ RSpec::Core::Formatters.register self, :example_passed, :example_failed, :example_pending
13
+
14
+ case RUBY_PLATFORM
15
+ when /windows|mswin|msys|mingw|cygwin/
16
+ # Most currently available Windows terminals have poor support
17
+ # for ANSI extended colors
18
+ COLORS = {
19
+ "failed" => "\033[0;1;31m",
20
+ "passed" => "\033[0;1;32m",
21
+ "skipped" => "\033[0;37m",
22
+ "reset" => "\033[0m",
23
+ }.freeze
24
+
25
+ # Most currently available Windows terminals have poor support
26
+ # for UTF-8 characters so use these boring indicators
27
+ INDICATORS = {
28
+ "failed" => "[FAIL]",
29
+ "skipped" => "[SKIP]",
30
+ "passed" => "[PASS]",
31
+ }.freeze
32
+ else
33
+ # Extended colors for everyone else
34
+ COLORS = {
35
+ "failed" => "\033[38;5;9m",
36
+ "passed" => "\033[38;5;41m",
37
+ "skipped" => "\033[38;5;247m",
38
+ "reset" => "\033[0m",
39
+ }.freeze
40
+
41
+ # Groovy UTF-8 characters for everyone else...
42
+ # ...even though they probably only work on Mac
43
+ INDICATORS = {
44
+ "failed" => "×",
45
+ "skipped" => "↺",
46
+ "passed" => "✔",
47
+ }.freeze
48
+ end
49
+
50
+ def initialize(output)
51
+ @bar = nil
52
+ @status_mapping = {}
53
+ initialize_streaming_reporter
54
+ end
55
+
56
+ def example_passed(notification)
57
+ control_id = notification.example.metadata[:id]
58
+ set_status_mapping(control_id, "passed")
59
+ show_progress(control_id) if control_ended?(control_id)
60
+ end
61
+
62
+ def example_failed(notification)
63
+ control_id = notification.example.metadata[:id]
64
+ set_status_mapping(control_id, "failed")
65
+ show_progress(control_id) if control_ended?(control_id)
66
+ end
67
+
68
+ def example_pending(notification)
69
+ control_id = notification.example.metadata[:id]
70
+ set_status_mapping(control_id, "skipped")
71
+ show_progress(control_id) if control_ended?(control_id)
72
+ end
73
+
74
+ private
75
+
76
+ def show_progress(control_id)
77
+ @bar ||= ProgressBar.new(controls_count, :bar, :counter, :percentage)
78
+ sleep 0.1
79
+ @bar.increment!
80
+ @bar.puts format_it(control_id)
81
+ rescue Exception => ex
82
+ raise "Exception in Progress Bar streaming reporter: #{ex}"
83
+ end
84
+
85
+ def format_it(control_id)
86
+ control_status = if @status_mapping[control_id].include? "failed"
87
+ "failed"
88
+ elsif @status_mapping[control_id].include? "skipped"
89
+ "skipped"
90
+ elsif @status_mapping[control_id].include? "passed"
91
+ "passed"
92
+ end
93
+
94
+ indicator = INDICATORS[control_status]
95
+ message_to_format = ""
96
+ message_to_format += "#{indicator} "
97
+ message_to_format += control_id.to_s.lstrip.force_encoding(Encoding::UTF_8)
98
+ format_with_color(control_status, message_to_format)
99
+ end
100
+
101
+ def format_with_color(color_name, text)
102
+ "#{COLORS[color_name]}#{text}#{COLORS["reset"]}"
103
+ end
104
+
105
+ # status mapping with control id to decide the final state of the control
106
+ def set_status_mapping(control_id, status)
107
+ @status_mapping[control_id] = [] if @status_mapping[control_id].nil?
108
+ @status_mapping[control_id].push(status)
109
+ end
110
+
111
+ end
112
+ end
@@ -0,0 +1,8 @@
1
+ # This file simply makes it easier for CI engines to update
2
+ # the version stamp, and provide a clean way for the gemspec
3
+ # to learn the current version.
4
+ module InspecPlugins
5
+ module StreamingReporterProgressBar
6
+ VERSION = "0.1.0".freeze
7
+ end
8
+ end
@@ -0,0 +1,15 @@
1
+ # This file is known as the "entry point."
2
+ # This is the file InSpec will try to load if it
3
+ # thinks your plugin is installed.
4
+
5
+ # The *only* thing this file should do is setup the
6
+ # load path, then load the plugin definition file.
7
+
8
+ # Next two lines simply add the path of the gem to the load path.
9
+ # This is not needed when being loaded as a gem; but when doing
10
+ # plugin development, you may need it. Either way, it's harmless.
11
+ libdir = File.dirname(__FILE__)
12
+
13
+ $LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
14
+
15
+ require "inspec-streaming-reporter-progress-bar/plugin"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.56.17
4
+ version: 5.10.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Chef InSpec Team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-03-14 00:00:00.000000000 Z
11
+ date: 2022-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chef-telemetry
@@ -422,6 +422,8 @@ files:
422
422
  - lib/inspec/dependencies/lockfile.rb
423
423
  - lib/inspec/dependencies/requirement.rb
424
424
  - lib/inspec/dependencies/resolver.rb
425
+ - lib/inspec/dependency_installer.rb
426
+ - lib/inspec/dependency_loader.rb
425
427
  - lib/inspec/describe_base.rb
426
428
  - lib/inspec/dist.rb
427
429
  - lib/inspec/dsl.rb
@@ -509,11 +511,13 @@ files:
509
511
  - lib/inspec/resources/cassandra.rb
510
512
  - lib/inspec/resources/cassandradb_conf.rb
511
513
  - lib/inspec/resources/cassandradb_session.rb
514
+ - lib/inspec/resources/cgroup.rb
512
515
  - lib/inspec/resources/chocolatey_package.rb
513
516
  - lib/inspec/resources/chrony_conf.rb
514
517
  - lib/inspec/resources/command.rb
515
518
  - lib/inspec/resources/cpan.rb
516
519
  - lib/inspec/resources/cran.rb
520
+ - lib/inspec/resources/cron.rb
517
521
  - lib/inspec/resources/crontab.rb
518
522
  - lib/inspec/resources/csv.rb
519
523
  - lib/inspec/resources/dh_params.rb
@@ -551,6 +555,8 @@ files:
551
555
  - lib/inspec/resources/interface.rb
552
556
  - lib/inspec/resources/interfaces.rb
553
557
  - lib/inspec/resources/ip6tables.rb
558
+ - lib/inspec/resources/ipfilter.rb
559
+ - lib/inspec/resources/ipnat.rb
554
560
  - lib/inspec/resources/iptables.rb
555
561
  - lib/inspec/resources/json.rb
556
562
  - lib/inspec/resources/kernel_module.rb
@@ -562,6 +568,7 @@ files:
562
568
  - lib/inspec/resources/limits_conf.rb
563
569
  - lib/inspec/resources/linux_kernel_parameter.rb
564
570
  - lib/inspec/resources/login_defs.rb
571
+ - lib/inspec/resources/lxc.rb
565
572
  - lib/inspec/resources/mongodb.rb
566
573
  - lib/inspec/resources/mongodb_conf.rb
567
574
  - lib/inspec/resources/mongodb_session.rb
@@ -670,6 +677,7 @@ files:
670
677
  - lib/inspec/utils/command_wrapper.rb
671
678
  - lib/inspec/utils/convert.rb
672
679
  - lib/inspec/utils/database_helpers.rb
680
+ - lib/inspec/utils/deprecated_cloud_resources_list.rb
673
681
  - lib/inspec/utils/deprecation.rb
674
682
  - lib/inspec/utils/deprecation/config_file.rb
675
683
  - lib/inspec/utils/deprecation/deprecator.rb
@@ -702,10 +710,12 @@ files:
702
710
  - lib/inspec/version.rb
703
711
  - lib/matchers/matchers.rb
704
712
  - lib/plugins/README.md
713
+ - lib/plugins/inspec-artifact/inspec-artifact.gemspec
705
714
  - lib/plugins/inspec-artifact/lib/inspec-artifact.rb
706
715
  - lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb
707
716
  - lib/plugins/inspec-artifact/lib/inspec-artifact/cli.rb
708
717
  - lib/plugins/inspec-compliance/README.md
718
+ - lib/plugins/inspec-compliance/inspec-compliance.gemspec
709
719
  - lib/plugins/inspec-compliance/lib/inspec-compliance.rb
710
720
  - lib/plugins/inspec-compliance/lib/inspec-compliance/api.rb
711
721
  - lib/plugins/inspec-compliance/lib/inspec-compliance/api/login.rb
@@ -717,16 +727,19 @@ files:
717
727
  - lib/plugins/inspec-compliance/lib/inspec-compliance/target.rb
718
728
  - lib/plugins/inspec-habitat/Berksfile
719
729
  - lib/plugins/inspec-habitat/README.md
730
+ - lib/plugins/inspec-habitat/inspec-habitat.gemspec
720
731
  - lib/plugins/inspec-habitat/kitchen.yml
721
732
  - lib/plugins/inspec-habitat/lib/inspec-habitat.rb
722
733
  - lib/plugins/inspec-habitat/lib/inspec-habitat/cli.rb
723
734
  - lib/plugins/inspec-habitat/lib/inspec-habitat/profile.rb
724
735
  - lib/plugins/inspec-habitat/templates/habitat/plan.sh.erb
725
736
  - lib/plugins/inspec-init/README.md
737
+ - lib/plugins/inspec-init/inspec-init.gemspec
726
738
  - lib/plugins/inspec-init/lib/inspec-init.rb
727
739
  - lib/plugins/inspec-init/lib/inspec-init/cli.rb
728
740
  - lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb
729
741
  - lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb
742
+ - lib/plugins/inspec-init/lib/inspec-init/cli_resource.rb
730
743
  - lib/plugins/inspec-init/lib/inspec-init/renderer.rb
731
744
  - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile
732
745
  - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/LICENSE
@@ -737,6 +750,7 @@ files:
737
750
  - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.erb
738
751
  - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.erb
739
752
  - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/reporter.erb
753
+ - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/streaming_reporter.erb
740
754
  - lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.erb
741
755
  - lib/plugins/inspec-init/templates/profiles/aws/README.md
742
756
  - lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb
@@ -752,11 +766,17 @@ files:
752
766
  - lib/plugins/inspec-init/templates/profiles/os/README.md
753
767
  - lib/plugins/inspec-init/templates/profiles/os/controls/example.rb
754
768
  - lib/plugins/inspec-init/templates/profiles/os/inspec.yml
769
+ - lib/plugins/inspec-init/templates/resources/basic/docs/resource-doc.erb
770
+ - lib/plugins/inspec-init/templates/resources/basic/libraries/inspec-resource-template.erb
771
+ - lib/plugins/inspec-init/templates/resources/plural/docs/resource-doc.erb
772
+ - lib/plugins/inspec-init/templates/resources/plural/libraries/inspec-resource-template.erb
755
773
  - lib/plugins/inspec-plugin-manager-cli/README.md
774
+ - lib/plugins/inspec-plugin-manager-cli/inspec-plugin-manager-cli.gemspec
756
775
  - lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb
757
776
  - lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb
758
777
  - lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/plugin.rb
759
778
  - lib/plugins/inspec-reporter-html2/README.md
779
+ - lib/plugins/inspec-reporter-html2/inspec-reporter-html2.gemspec
760
780
  - lib/plugins/inspec-reporter-html2/lib/inspec-reporter-html2.rb
761
781
  - lib/plugins/inspec-reporter-html2/lib/inspec-reporter-html2/reporter.rb
762
782
  - lib/plugins/inspec-reporter-html2/lib/inspec-reporter-html2/version.rb
@@ -768,13 +788,21 @@ files:
768
788
  - lib/plugins/inspec-reporter-html2/templates/result.html.erb
769
789
  - lib/plugins/inspec-reporter-html2/templates/selector.html.erb
770
790
  - lib/plugins/inspec-reporter-json-min/README.md
791
+ - lib/plugins/inspec-reporter-json-min/inspec-reporter-json-min.gemspec
771
792
  - lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min.rb
772
793
  - lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/reporter.rb
773
794
  - lib/plugins/inspec-reporter-json-min/lib/inspec-reporter-json-min/version.rb
774
795
  - lib/plugins/inspec-reporter-junit/README.md
796
+ - lib/plugins/inspec-reporter-junit/inspec-reporter-junit.gemspec
775
797
  - lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit.rb
776
798
  - lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit/reporter.rb
777
799
  - lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit/version.rb
800
+ - lib/plugins/inspec-streaming-reporter-progress-bar/README.md
801
+ - lib/plugins/inspec-streaming-reporter-progress-bar/inspec-streaming-reporter-progress-bar.gemspec
802
+ - lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar.rb
803
+ - lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/plugin.rb
804
+ - lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/streaming_reporter.rb
805
+ - lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/version.rb
778
806
  - lib/plugins/shared/core_plugin_test_helper.rb
779
807
  - lib/plugins/things-for-train-integration.rb
780
808
  - lib/source_readers/flat.rb
@@ -791,7 +819,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
791
819
  requirements:
792
820
  - - ">="
793
821
  - !ruby/object:Gem::Version
794
- version: '2.6'
822
+ version: '2.7'
795
823
  required_rubygems_version: !ruby/object:Gem::Requirement
796
824
  requirements:
797
825
  - - ">="