inspec-core 4.56.58 → 5.7.9
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/Gemfile +24 -9
- data/etc/deprecations.json +12 -11
- data/inspec-core.gemspec +3 -5
- data/lib/inspec/base_cli.rb +14 -2
- data/lib/inspec/cli.rb +16 -7
- data/lib/inspec/dependencies/dependency_set.rb +2 -6
- data/lib/inspec/dependency_installer.rb +74 -0
- data/lib/inspec/dependency_loader.rb +97 -0
- data/lib/inspec/dsl.rb +16 -23
- data/lib/inspec/env_printer.rb +1 -1
- data/lib/inspec/errors.rb +7 -0
- data/lib/inspec/fetcher/git.rb +28 -43
- data/lib/inspec/fetcher/url.rb +1 -1
- data/lib/inspec/formatters/base.rb +22 -0
- data/lib/inspec/metadata.rb +36 -0
- data/lib/inspec/plugin/v2/plugin_types/streaming_reporter.rb +44 -1
- data/lib/inspec/profile.rb +81 -29
- data/lib/inspec/reporters/automate.rb +1 -1
- data/lib/inspec/reporters/cli.rb +1 -1
- data/lib/inspec/reporters/json.rb +31 -11
- data/lib/inspec/resource.rb +6 -0
- data/lib/inspec/resources/cassandradb_session.rb +3 -4
- data/lib/inspec/resources/cron.rb +49 -0
- data/lib/inspec/resources/file.rb +1 -1
- data/lib/inspec/resources/ibmdb2_session.rb +3 -4
- data/lib/inspec/resources/ipfilter.rb +59 -0
- data/lib/inspec/resources/ipnat.rb +58 -0
- data/lib/inspec/resources/mongodb_session.rb +1 -7
- data/lib/inspec/resources/oracledb_session.rb +7 -20
- data/lib/inspec/resources/postgres_session.rb +5 -7
- data/lib/inspec/resources/processes.rb +4 -6
- data/lib/inspec/resources/service.rb +2 -4
- data/lib/inspec/resources.rb +3 -16
- data/lib/inspec/rule.rb +1 -1
- data/lib/inspec/runner.rb +18 -1
- data/lib/inspec/runner_rspec.rb +15 -0
- data/lib/inspec/schema/exec_json.rb +59 -58
- data/lib/inspec/schema/exec_json_min.rb +16 -16
- data/lib/inspec/schema/primitives.rb +68 -51
- data/lib/inspec/schema/profile_json.rb +27 -27
- data/lib/inspec/schema.rb +1 -0
- data/lib/inspec/secrets/yaml.rb +1 -7
- data/lib/inspec/ui.rb +1 -0
- data/lib/inspec/utils/deprecated_cloud_resources_list.rb +54 -0
- data/lib/inspec/version.rb +1 -1
- data/lib/inspec.rb +3 -0
- data/lib/matchers/matchers.rb +1 -7
- data/lib/plugins/inspec-init/lib/inspec-init/cli.rb +1 -0
- data/lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb +9 -0
- data/lib/plugins/inspec-init/lib/inspec-init/cli_resource.rb +126 -0
- data/lib/plugins/inspec-init/lib/inspec-init/renderer.rb +9 -8
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.erb +16 -0
- data/lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/streaming_reporter.erb +31 -0
- data/lib/plugins/inspec-init/templates/profiles/aws/inspec.yml +1 -1
- data/lib/plugins/inspec-init/templates/resources/basic/docs/resource-doc.erb +77 -0
- data/lib/plugins/inspec-init/templates/resources/basic/libraries/inspec-resource-template.erb +94 -0
- data/lib/plugins/inspec-init/templates/resources/plural/docs/resource-doc.erb +62 -0
- data/lib/plugins/inspec-init/templates/resources/plural/libraries/inspec-resource-template.erb +73 -0
- data/lib/plugins/inspec-reporter-html2/templates/body.html.erb +6 -4
- data/lib/plugins/inspec-reporter-html2/templates/control.html.erb +4 -1
- data/lib/plugins/inspec-reporter-html2/templates/profile.html.erb +2 -1
- data/lib/plugins/inspec-reporter-html2/templates/result.html.erb +1 -0
- data/lib/plugins/inspec-streaming-reporter-progress-bar/README.md +5 -0
- data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/plugin.rb +13 -0
- data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/streaming_reporter.rb +112 -0
- data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/version.rb +8 -0
- data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar.rb +15 -0
- metadata +24 -7
@@ -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,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
|
+
version: 5.7.9
|
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:
|
11
|
+
date: 2022-03-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: chef-telemetry
|
@@ -59,7 +59,7 @@ dependencies:
|
|
59
59
|
version: '0.20'
|
60
60
|
- - "<"
|
61
61
|
- !ruby/object:Gem::Version
|
62
|
-
version:
|
62
|
+
version: '2.0'
|
63
63
|
type: :runtime
|
64
64
|
prerelease: false
|
65
65
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -69,7 +69,7 @@ dependencies:
|
|
69
69
|
version: '0.20'
|
70
70
|
- - "<"
|
71
71
|
- !ruby/object:Gem::Version
|
72
|
-
version:
|
72
|
+
version: '2.0'
|
73
73
|
- !ruby/object:Gem::Dependency
|
74
74
|
name: method_source
|
75
75
|
requirement: !ruby/object:Gem::Requirement
|
@@ -119,7 +119,7 @@ dependencies:
|
|
119
119
|
version: '3.9'
|
120
120
|
- - "<="
|
121
121
|
- !ruby/object:Gem::Version
|
122
|
-
version: '3.
|
122
|
+
version: '3.11'
|
123
123
|
type: :runtime
|
124
124
|
prerelease: false
|
125
125
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -129,7 +129,7 @@ dependencies:
|
|
129
129
|
version: '3.9'
|
130
130
|
- - "<="
|
131
131
|
- !ruby/object:Gem::Version
|
132
|
-
version: '3.
|
132
|
+
version: '3.11'
|
133
133
|
- !ruby/object:Gem::Dependency
|
134
134
|
name: rspec-its
|
135
135
|
requirement: !ruby/object:Gem::Requirement
|
@@ -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
|
@@ -514,6 +516,7 @@ files:
|
|
514
516
|
- lib/inspec/resources/command.rb
|
515
517
|
- lib/inspec/resources/cpan.rb
|
516
518
|
- lib/inspec/resources/cran.rb
|
519
|
+
- lib/inspec/resources/cron.rb
|
517
520
|
- lib/inspec/resources/crontab.rb
|
518
521
|
- lib/inspec/resources/csv.rb
|
519
522
|
- lib/inspec/resources/dh_params.rb
|
@@ -551,6 +554,8 @@ files:
|
|
551
554
|
- lib/inspec/resources/interface.rb
|
552
555
|
- lib/inspec/resources/interfaces.rb
|
553
556
|
- lib/inspec/resources/ip6tables.rb
|
557
|
+
- lib/inspec/resources/ipfilter.rb
|
558
|
+
- lib/inspec/resources/ipnat.rb
|
554
559
|
- lib/inspec/resources/iptables.rb
|
555
560
|
- lib/inspec/resources/json.rb
|
556
561
|
- lib/inspec/resources/kernel_module.rb
|
@@ -670,6 +675,7 @@ files:
|
|
670
675
|
- lib/inspec/utils/command_wrapper.rb
|
671
676
|
- lib/inspec/utils/convert.rb
|
672
677
|
- lib/inspec/utils/database_helpers.rb
|
678
|
+
- lib/inspec/utils/deprecated_cloud_resources_list.rb
|
673
679
|
- lib/inspec/utils/deprecation.rb
|
674
680
|
- lib/inspec/utils/deprecation/config_file.rb
|
675
681
|
- lib/inspec/utils/deprecation/deprecator.rb
|
@@ -727,6 +733,7 @@ files:
|
|
727
733
|
- lib/plugins/inspec-init/lib/inspec-init/cli.rb
|
728
734
|
- lib/plugins/inspec-init/lib/inspec-init/cli_plugin.rb
|
729
735
|
- lib/plugins/inspec-init/lib/inspec-init/cli_profile.rb
|
736
|
+
- lib/plugins/inspec-init/lib/inspec-init/cli_resource.rb
|
730
737
|
- lib/plugins/inspec-init/lib/inspec-init/renderer.rb
|
731
738
|
- lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/Gemfile
|
732
739
|
- lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/LICENSE
|
@@ -737,6 +744,7 @@ files:
|
|
737
744
|
- lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/cli_command.erb
|
738
745
|
- lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/plugin.erb
|
739
746
|
- lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/reporter.erb
|
747
|
+
- lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/streaming_reporter.erb
|
740
748
|
- lib/plugins/inspec-init/templates/plugins/inspec-plugin-template/lib/inspec-plugin-template/version.erb
|
741
749
|
- lib/plugins/inspec-init/templates/profiles/aws/README.md
|
742
750
|
- lib/plugins/inspec-init/templates/profiles/aws/controls/example.rb
|
@@ -752,6 +760,10 @@ files:
|
|
752
760
|
- lib/plugins/inspec-init/templates/profiles/os/README.md
|
753
761
|
- lib/plugins/inspec-init/templates/profiles/os/controls/example.rb
|
754
762
|
- lib/plugins/inspec-init/templates/profiles/os/inspec.yml
|
763
|
+
- lib/plugins/inspec-init/templates/resources/basic/docs/resource-doc.erb
|
764
|
+
- lib/plugins/inspec-init/templates/resources/basic/libraries/inspec-resource-template.erb
|
765
|
+
- lib/plugins/inspec-init/templates/resources/plural/docs/resource-doc.erb
|
766
|
+
- lib/plugins/inspec-init/templates/resources/plural/libraries/inspec-resource-template.erb
|
755
767
|
- lib/plugins/inspec-plugin-manager-cli/README.md
|
756
768
|
- lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli.rb
|
757
769
|
- lib/plugins/inspec-plugin-manager-cli/lib/inspec-plugin-manager-cli/cli_command.rb
|
@@ -775,6 +787,11 @@ files:
|
|
775
787
|
- lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit.rb
|
776
788
|
- lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit/reporter.rb
|
777
789
|
- lib/plugins/inspec-reporter-junit/lib/inspec-reporter-junit/version.rb
|
790
|
+
- lib/plugins/inspec-streaming-reporter-progress-bar/README.md
|
791
|
+
- lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar.rb
|
792
|
+
- lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/plugin.rb
|
793
|
+
- lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/streaming_reporter.rb
|
794
|
+
- lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/version.rb
|
778
795
|
- lib/plugins/shared/core_plugin_test_helper.rb
|
779
796
|
- lib/plugins/things-for-train-integration.rb
|
780
797
|
- lib/source_readers/flat.rb
|
@@ -791,7 +808,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
791
808
|
requirements:
|
792
809
|
- - ">="
|
793
810
|
- !ruby/object:Gem::Version
|
794
|
-
version: '2.
|
811
|
+
version: '2.7'
|
795
812
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
796
813
|
requirements:
|
797
814
|
- - ">="
|