inspec-core 5.17.4 → 5.21.29

Sign up to get free protection for your applications and to get access to all the features.
Files changed (174) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +20 -17
  3. data/etc/deprecations.json +4 -0
  4. data/inspec-core.gemspec +23 -23
  5. data/lib/inspec/base_cli.rb +7 -0
  6. data/lib/inspec/cli.rb +68 -11
  7. data/lib/inspec/dependencies/dependency_set.rb +6 -2
  8. data/lib/inspec/dsl.rb +24 -5
  9. data/lib/inspec/enhanced_outcomes.rb +19 -0
  10. data/lib/inspec/env_printer.rb +1 -1
  11. data/lib/inspec/errors.rb +2 -0
  12. data/lib/inspec/exceptions.rb +4 -0
  13. data/lib/inspec/fetcher/url.rb +1 -1
  14. data/lib/inspec/file_provider.rb +36 -0
  15. data/lib/inspec/formatters/base.rb +69 -16
  16. data/lib/inspec/iaf_file.rb +127 -0
  17. data/lib/inspec/plugin/v2/loader.rb +19 -8
  18. data/lib/inspec/plugin/v2/plugin_types/reporter.rb +1 -0
  19. data/lib/inspec/plugin/v2/plugin_types/streaming_reporter.rb +54 -0
  20. data/lib/inspec/profile.rb +17 -7
  21. data/lib/inspec/reporters/base.rb +1 -0
  22. data/lib/inspec/reporters/cli.rb +94 -3
  23. data/lib/inspec/reporters/json.rb +3 -1
  24. data/lib/inspec/reporters/yaml.rb +3 -1
  25. data/lib/inspec/reporters.rb +2 -1
  26. data/lib/inspec/resources/aide_conf.rb +4 -0
  27. data/lib/inspec/resources/apache.rb +4 -0
  28. data/lib/inspec/resources/apache_conf.rb +4 -0
  29. data/lib/inspec/resources/apt.rb +6 -1
  30. data/lib/inspec/resources/audit_policy.rb +5 -0
  31. data/lib/inspec/resources/auditd_conf.rb +4 -0
  32. data/lib/inspec/resources/bash.rb +4 -0
  33. data/lib/inspec/resources/bond.rb +4 -0
  34. data/lib/inspec/resources/bridge.rb +4 -0
  35. data/lib/inspec/resources/cassandradb_conf.rb +5 -0
  36. data/lib/inspec/resources/cassandradb_session.rb +8 -3
  37. data/lib/inspec/resources/chocolatey_package.rb +4 -0
  38. data/lib/inspec/resources/chrony_conf.rb +4 -0
  39. data/lib/inspec/resources/command.rb +5 -0
  40. data/lib/inspec/resources/cpan.rb +4 -0
  41. data/lib/inspec/resources/cran.rb +4 -0
  42. data/lib/inspec/resources/cron.rb +5 -0
  43. data/lib/inspec/resources/csv.rb +6 -1
  44. data/lib/inspec/resources/dh_params.rb +4 -0
  45. data/lib/inspec/resources/docker_container.rb +4 -0
  46. data/lib/inspec/resources/docker_image.rb +4 -0
  47. data/lib/inspec/resources/docker_plugin.rb +4 -0
  48. data/lib/inspec/resources/docker_service.rb +4 -0
  49. data/lib/inspec/resources/etc_group.rb +4 -0
  50. data/lib/inspec/resources/etc_hosts_allow_deny.rb +5 -0
  51. data/lib/inspec/resources/file.rb +7 -2
  52. data/lib/inspec/resources/filesystem.rb +4 -0
  53. data/lib/inspec/resources/gem.rb +4 -0
  54. data/lib/inspec/resources/groups.rb +4 -0
  55. data/lib/inspec/resources/grub_conf.rb +4 -0
  56. data/lib/inspec/resources/host.rb +4 -0
  57. data/lib/inspec/resources/http.rb +6 -2
  58. data/lib/inspec/resources/ibmdb2_conf.rb +8 -0
  59. data/lib/inspec/resources/ibmdb2_session.rb +12 -3
  60. data/lib/inspec/resources/iis_app.rb +4 -0
  61. data/lib/inspec/resources/iis_app_pool.rb +4 -0
  62. data/lib/inspec/resources/iis_site.rb +4 -0
  63. data/lib/inspec/resources/inetd_conf.rb +4 -0
  64. data/lib/inspec/resources/interface.rb +4 -0
  65. data/lib/inspec/resources/ip6tables.rb +4 -0
  66. data/lib/inspec/resources/ipfilter.rb +4 -0
  67. data/lib/inspec/resources/ipnat.rb +4 -0
  68. data/lib/inspec/resources/iptables.rb +4 -0
  69. data/lib/inspec/resources/json.rb +4 -0
  70. data/lib/inspec/resources/kernel_module.rb +4 -0
  71. data/lib/inspec/resources/kernel_parameter.rb +4 -0
  72. data/lib/inspec/resources/key_rsa.rb +4 -0
  73. data/lib/inspec/resources/ksh.rb +4 -0
  74. data/lib/inspec/resources/limits_conf.rb +4 -0
  75. data/lib/inspec/resources/login_defs.rb +4 -0
  76. data/lib/inspec/resources/lxc.rb +65 -9
  77. data/lib/inspec/resources/mongodb.rb +4 -0
  78. data/lib/inspec/resources/mongodb_conf.rb +5 -0
  79. data/lib/inspec/resources/mongodb_session.rb +6 -1
  80. data/lib/inspec/resources/mount.rb +4 -0
  81. data/lib/inspec/resources/mssql_session.rb +4 -0
  82. data/lib/inspec/resources/mssql_sys_conf.rb +7 -0
  83. data/lib/inspec/resources/mysql_conf.rb +4 -0
  84. data/lib/inspec/resources/mysql_session.rb +8 -1
  85. data/lib/inspec/resources/nginx.rb +6 -1
  86. data/lib/inspec/resources/nginx_conf.rb +4 -0
  87. data/lib/inspec/resources/noop.rb +4 -0
  88. data/lib/inspec/resources/npm.rb +4 -0
  89. data/lib/inspec/resources/ntp_conf.rb +4 -0
  90. data/lib/inspec/resources/oneget.rb +4 -0
  91. data/lib/inspec/resources/opa_api.rb +10 -0
  92. data/lib/inspec/resources/opa_cli.rb +14 -0
  93. data/lib/inspec/resources/oracledb_conf.rb +5 -0
  94. data/lib/inspec/resources/oracledb_listener_conf.rb +4 -0
  95. data/lib/inspec/resources/oracledb_session.rb +23 -4
  96. data/lib/inspec/resources/os.rb +4 -0
  97. data/lib/inspec/resources/os_env.rb +4 -0
  98. data/lib/inspec/resources/package.rb +4 -0
  99. data/lib/inspec/resources/parse_config.rb +10 -1
  100. data/lib/inspec/resources/pip.rb +4 -0
  101. data/lib/inspec/resources/platform.rb +4 -0
  102. data/lib/inspec/resources/podman.rb +353 -0
  103. data/lib/inspec/resources/podman_container.rb +84 -0
  104. data/lib/inspec/resources/podman_image.rb +108 -0
  105. data/lib/inspec/resources/podman_network.rb +81 -0
  106. data/lib/inspec/resources/podman_pod.rb +101 -0
  107. data/lib/inspec/resources/podman_volume.rb +87 -0
  108. data/lib/inspec/resources/postfix_conf.rb +4 -0
  109. data/lib/inspec/resources/postgres_conf.rb +4 -0
  110. data/lib/inspec/resources/postgres_session.rb +8 -4
  111. data/lib/inspec/resources/powershell.rb +4 -0
  112. data/lib/inspec/resources/processes.rb +6 -4
  113. data/lib/inspec/resources/rabbitmq_config.rb +4 -0
  114. data/lib/inspec/resources/registry_key.rb +4 -0
  115. data/lib/inspec/resources/security_identifier.rb +4 -0
  116. data/lib/inspec/resources/security_policy.rb +4 -0
  117. data/lib/inspec/resources/service.rb +5 -1
  118. data/lib/inspec/resources/ssh_config.rb +4 -0
  119. data/lib/inspec/resources/sybase_conf.rb +4 -0
  120. data/lib/inspec/resources/sybase_session.rb +4 -0
  121. data/lib/inspec/resources/sys_info.rb +4 -0
  122. data/lib/inspec/resources/timezone.rb +4 -0
  123. data/lib/inspec/resources/users.rb +4 -0
  124. data/lib/inspec/resources/vbscript.rb +5 -0
  125. data/lib/inspec/resources/virtualization.rb +4 -0
  126. data/lib/inspec/resources/windows_feature.rb +5 -1
  127. data/lib/inspec/resources/windows_firewall.rb +4 -0
  128. data/lib/inspec/resources/windows_firewall_rule.rb +4 -0
  129. data/lib/inspec/resources/windows_hotfix.rb +4 -0
  130. data/lib/inspec/resources/windows_task.rb +4 -0
  131. data/lib/inspec/resources/wmi.rb +4 -0
  132. data/lib/inspec/resources/x509_certificate.rb +59 -0
  133. data/lib/inspec/resources/yum.rb +4 -0
  134. data/lib/inspec/resources/zfs_dataset.rb +4 -0
  135. data/lib/inspec/resources/zfs_pool.rb +4 -0
  136. data/lib/inspec/rule.rb +55 -18
  137. data/lib/inspec/run_data/control.rb +6 -0
  138. data/lib/inspec/run_data/statistics.rb +8 -2
  139. data/lib/inspec/runner.rb +18 -8
  140. data/lib/inspec/runner_rspec.rb +3 -2
  141. data/lib/inspec/schema/exec_json.rb +78 -2
  142. data/lib/inspec/schema/output_schema.rb +4 -1
  143. data/lib/inspec/schema/profile_json.rb +46 -0
  144. data/lib/inspec/schema.rb +91 -0
  145. data/lib/inspec/secrets/yaml.rb +7 -1
  146. data/lib/inspec/ui.rb +1 -0
  147. data/lib/inspec/utils/convert.rb +8 -0
  148. data/lib/inspec/utils/podman.rb +24 -0
  149. data/lib/inspec/utils/waivers/csv_file_reader.rb +34 -0
  150. data/lib/inspec/utils/waivers/excel_file_reader.rb +39 -0
  151. data/lib/inspec/utils/waivers/json_file_reader.rb +15 -0
  152. data/lib/inspec/utils/yaml_profile_summary.rb +34 -0
  153. data/lib/inspec/version.rb +1 -1
  154. data/lib/inspec/waiver_file_reader.rb +61 -0
  155. data/lib/matchers/matchers.rb +7 -1
  156. data/lib/plugins/inspec-init/templates/profiles/alicloud/README.md +27 -0
  157. data/lib/plugins/inspec-init/templates/profiles/alicloud/controls/example.rb +10 -0
  158. data/lib/plugins/inspec-init/templates/profiles/alicloud/inputs.yml +1 -0
  159. data/lib/plugins/inspec-init/templates/profiles/alicloud/inspec.yml +14 -0
  160. data/lib/plugins/inspec-reporter-html2/README.md +1 -1
  161. data/lib/plugins/inspec-reporter-html2/templates/body.html.erb +11 -5
  162. data/lib/plugins/inspec-reporter-html2/templates/control.html.erb +11 -7
  163. data/lib/plugins/inspec-reporter-html2/templates/default.css +12 -0
  164. data/lib/plugins/inspec-reporter-html2/templates/profile.html.erb +1 -1
  165. data/lib/plugins/inspec-reporter-html2/templates/selector.html.erb +7 -1
  166. data/lib/plugins/{inspec-artifact/inspec-artifact.gemspec → inspec-sign/inspec-sign.gemspec} +2 -2
  167. data/lib/plugins/inspec-sign/lib/inspec-sign/base.rb +164 -0
  168. data/lib/plugins/{inspec-artifact/lib/inspec-artifact → inspec-sign/lib/inspec-sign}/cli.rb +14 -23
  169. data/lib/plugins/inspec-sign/lib/inspec-sign.rb +12 -0
  170. data/lib/plugins/inspec-streaming-reporter-progress-bar/lib/inspec-streaming-reporter-progress-bar/streaming_reporter.rb +39 -13
  171. data/lib/source_readers/inspec.rb +8 -2
  172. metadata +33 -15
  173. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +0 -187
  174. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +0 -12
@@ -1,10 +1,11 @@
1
1
  module Inspec::Resources
2
2
  class Lines
3
- attr_reader :output
3
+ attr_reader :output, :exit_status
4
4
 
5
- def initialize(raw, desc)
5
+ def initialize(raw, desc, exit_status)
6
6
  @output = raw
7
7
  @desc = desc
8
+ @exit_status = exit_status
8
9
  end
9
10
 
10
11
  def to_s
@@ -40,10 +41,14 @@ module Inspec::Resources
40
41
  if cmd.exit_status != 0 || out =~ /Unable to connect to any servers/ || out.downcase =~ /^error:.*/
41
42
  raise Inspec::Exceptions::ResourceFailed, "Cassandra query with errors: #{out}"
42
43
  else
43
- Lines.new(cmd.stdout.strip, "Cassandra query: #{q}")
44
+ Lines.new(cmd.stdout.strip, "Cassandra query: #{q}", cmd.exit_status)
44
45
  end
45
46
  end
46
47
 
48
+ def resource_id
49
+ "cassandradb_session:User:#{@user}:Host:#{host}"
50
+ end
51
+
47
52
  def to_s
48
53
  "Cassandra DB Session"
49
54
  end
@@ -45,6 +45,10 @@ module Inspec::Resources
45
45
  end
46
46
  end
47
47
 
48
+ def resource_id
49
+ @package_name || "chocolatey_package"
50
+ end
51
+
48
52
  def to_s
49
53
  "Chocolatey package #{package_name}"
50
54
  end
@@ -34,6 +34,10 @@ module Inspec::Resources
34
34
  param
35
35
  end
36
36
 
37
+ def resource_id
38
+ @conf_path || "chrony_conf"
39
+ end
40
+
37
41
  def to_s
38
42
  "chrony.conf"
39
43
  end
@@ -93,6 +93,11 @@ module Inspec::Resources
93
93
  res.exit_status.to_i == 0
94
94
  end
95
95
 
96
+ # to_s method outputs the command which we are using here as UUID to identify resource and also it take cares of Redact output
97
+ def resource_id
98
+ to_s || "command"
99
+ end
100
+
96
101
  def to_s
97
102
  output = "Command: `#{@command}`"
98
103
  # Redact output if the `redact_regex` option is passed
@@ -51,6 +51,10 @@ module Inspec::Resources
51
51
  info[:version]
52
52
  end
53
53
 
54
+ def resource_id
55
+ @package_name || "cpan"
56
+ end
57
+
54
58
  def to_s
55
59
  "Perl Module #{@package_name}"
56
60
  end
@@ -57,6 +57,10 @@ module Inspec::Resources
57
57
  info[:version]
58
58
  end
59
59
 
60
+ def resource_id
61
+ @package_name || "cran"
62
+ end
63
+
60
64
  def to_s
61
65
  "R Module #{@package_name}"
62
66
  end
@@ -38,6 +38,11 @@ module Inspec::Resources
38
38
  @params.include?(rule)
39
39
  end
40
40
 
41
+ def resource_id
42
+ user = @user || "current user"
43
+ "cron #{user}"
44
+ end
45
+
41
46
  def to_s
42
47
  if is_user_crontab?
43
48
  "cron for user #{@user}"
@@ -19,7 +19,8 @@ module Inspec::Resources
19
19
 
20
20
  def initialize(path, headers = true)
21
21
  @headers = headers
22
- super(path)
22
+ @path = path
23
+ super(@path)
23
24
  end
24
25
 
25
26
  # override the parse method from JsonConfig
@@ -68,6 +69,10 @@ module Inspec::Resources
68
69
  end
69
70
  end
70
71
 
72
+ def resource_id
73
+ @path || "csv"
74
+ end
75
+
71
76
  private
72
77
 
73
78
  # used by JsonConfig to build up a full to_s method
@@ -76,6 +76,10 @@ module Inspec::Resources
76
76
  @dh_params.params_ok?
77
77
  end
78
78
 
79
+ def resource_id
80
+ @dh_params_path || "dh_params"
81
+ end
82
+
79
83
  def to_s
80
84
  "dh_params #{@dh_params_path}"
81
85
  end
@@ -92,6 +92,10 @@ module Inspec::Resources
92
92
  "Docker Container #{name}"
93
93
  end
94
94
 
95
+ def resource_id
96
+ object_info.ids[0] || @opts[:id] || @opts[:name] || ""
97
+ end
98
+
95
99
  private
96
100
 
97
101
  def object_info
@@ -72,6 +72,10 @@ module Inspec::Resources
72
72
  "Docker Image #{img}"
73
73
  end
74
74
 
75
+ def resource_id
76
+ object_info.ids[0] || @opts[:id] || @opts[:image] || ""
77
+ end
78
+
75
79
  private
76
80
 
77
81
  def sanitize_options(opts)
@@ -50,6 +50,10 @@ module Inspec::Resources
50
50
  "Docker plugin #{plugin}"
51
51
  end
52
52
 
53
+ def resource_id
54
+ id || @opts[:id] || @opts[:name] || ""
55
+ end
56
+
53
57
  private
54
58
 
55
59
  def object_info
@@ -73,6 +73,10 @@ module Inspec::Resources
73
73
  "Docker Service #{service}"
74
74
  end
75
75
 
76
+ def resource_id
77
+ object_info.ids[0] || @opts[:id] || @opts[:name] || ""
78
+ end
79
+
76
80
  private
77
81
 
78
82
  def sanitize_options(opts)
@@ -95,6 +95,10 @@ module Inspec::Resources
95
95
  "/etc/group"
96
96
  end
97
97
 
98
+ def resource_id
99
+ @path
100
+ end
101
+
98
102
  private
99
103
 
100
104
  def parse_group(path)
@@ -37,6 +37,10 @@ module Inspec::Resources
37
37
  "hosts.allow Configuration"
38
38
  end
39
39
 
40
+ def resource_id
41
+ @conf_path
42
+ end
43
+
40
44
  private
41
45
 
42
46
  def read_content
@@ -110,5 +114,6 @@ module Inspec::Resources
110
114
  def to_s
111
115
  "hosts.deny Configuration"
112
116
  end
117
+
113
118
  end
114
119
  end
@@ -35,11 +35,12 @@ module Inspec::Resources
35
35
  end
36
36
  EXAMPLE
37
37
 
38
- attr_reader :file, :mount_options
38
+ attr_reader :file, :mount_options, :path
39
39
  def initialize(path)
40
40
  # select permissions style
41
41
  @perms_provider = select_file_perms_style(inspec.os)
42
42
  @file = inspec.backend.file(path)
43
+ @path = path
43
44
  end
44
45
 
45
46
  %w{
@@ -65,7 +66,7 @@ module Inspec::Resources
65
66
  def user_permissions
66
67
  return {} unless exist?
67
68
 
68
- return skip_reource"`user_permissions` is not supported on your OS yet." unless inspec.os.windows?
69
+ return skip_resource "`user_permissions` is not supported on your OS yet." unless inspec.os.windows?
69
70
 
70
71
  @perms_provider.user_permissions(file)
71
72
  end
@@ -217,6 +218,10 @@ module Inspec::Resources
217
218
  end
218
219
  end
219
220
 
221
+ def resource_id
222
+ path
223
+ end
224
+
220
225
  private
221
226
 
222
227
  def file_permission_granted?(access_type, by_usergroup, by_specific_user)
@@ -84,6 +84,10 @@ module Inspec::Resources
84
84
  info = @fsman.info(@partition)
85
85
  info[:name]
86
86
  end
87
+
88
+ def resource_id
89
+ partition
90
+ end
87
91
  end
88
92
 
89
93
  class FsManagement
@@ -76,5 +76,9 @@ module Inspec::Resources
76
76
  def to_s
77
77
  "gem package #{@package_name}"
78
78
  end
79
+
80
+ def resource_id
81
+ "#{@package_name}-#{version}"
82
+ end
79
83
  end
80
84
  end
@@ -154,6 +154,10 @@ module Inspec::Resources
154
154
  "Group #{@group}"
155
155
  end
156
156
 
157
+ def resource_id
158
+ gid ? "#{@group}-#{gid}" : ""
159
+ end
160
+
157
161
  private
158
162
 
159
163
  def flatten_entry(group_info, prop)
@@ -69,6 +69,10 @@ module Inspec::Resources
69
69
  "Grub Config"
70
70
  end
71
71
 
72
+ def resource_id
73
+ @conf_path
74
+ end
75
+
72
76
  private
73
77
 
74
78
  ######################################################################
@@ -130,6 +130,10 @@ module Inspec::Resources
130
130
  resource_name
131
131
  end
132
132
 
133
+ def resource_id
134
+ port ? "#{hostname}-#{port}-#{protocol}" : hostname
135
+ end
136
+
133
137
  private
134
138
 
135
139
  def ping
@@ -4,7 +4,7 @@
4
4
 
5
5
  require "inspec/resources/command"
6
6
  require "faraday" unless defined?(Faraday)
7
- require "faraday_middleware"
7
+ require "faraday/follow_redirects"
8
8
  require "hashie"
9
9
 
10
10
  module Inspec::Resources
@@ -83,6 +83,10 @@ module Inspec::Resources
83
83
  @response = nil
84
84
  end
85
85
 
86
+ def resource_id
87
+ @url
88
+ end
89
+
86
90
  private
87
91
 
88
92
  def params
@@ -149,7 +153,7 @@ module Inspec::Resources
149
153
 
150
154
  conn = Faraday.new(url: url, headers: request_headers, params: params, ssl: { verify: ssl_verify? }) do |builder|
151
155
  builder.request :url_encoded
152
- builder.use FaradayMiddleware::FollowRedirects, limit: max_redirects unless max_redirects.nil?
156
+ builder.use Faraday::FollowRedirects::Middleware, limit: max_redirects unless max_redirects.nil?
153
157
  builder.adapter Faraday.default_adapter
154
158
  end
155
159
 
@@ -24,6 +24,14 @@ module Inspec::Resources
24
24
  @output = run_command
25
25
  end
26
26
 
27
+ def resource_id
28
+ if inspec.os.platform?("windows")
29
+ "ibmdb2_conf"
30
+ else
31
+ "ibmdb2_conf:DatabaseInstance:#{@db_instance}"
32
+ end
33
+ end
34
+
27
35
  def to_s
28
36
  "IBM Db2 Conf"
29
37
  end
@@ -1,10 +1,11 @@
1
1
  module Inspec::Resources
2
2
  class Lines
3
- attr_reader :output
3
+ attr_reader :output, :exit_status
4
4
 
5
- def initialize(raw, desc)
5
+ def initialize(raw, desc, exit_status)
6
6
  @output = raw
7
7
  @desc = desc
8
+ @exit_status = exit_status
8
9
  end
9
10
 
10
11
  def to_s
@@ -58,7 +59,15 @@ module Inspec::Resources
58
59
  if cmd.exit_status != 0 || out =~ /Can't connect to IBM Db2 / || out.downcase =~ /^error:.*/
59
60
  raise Inspec::Exceptions::ResourceFailed, "IBM Db2 connection error: #{out}"
60
61
  else
61
- Lines.new(cmd.stdout.strip, "IBM Db2 Query: #{q}")
62
+ Lines.new(cmd.stdout.strip, "IBM Db2 Query: #{q}", cmd.exit_status)
63
+ end
64
+ end
65
+
66
+ def resource_id
67
+ if inspec.os.platform?("windows")
68
+ "ibmdb2_session:DatabaseName#{@db_name}"
69
+ else
70
+ "ibmdb2_session:DatabaseInstance:#{@db_instance}:DatabaseName#{@db_name}"
62
71
  end
63
72
  end
64
73
 
@@ -72,6 +72,10 @@ module Inspec::Resources
72
72
  "iis_app '#{@site_name}#{@path}'"
73
73
  end
74
74
 
75
+ def resource_id
76
+ @path
77
+ end
78
+
75
79
  private
76
80
 
77
81
  def iis_app
@@ -80,6 +80,10 @@ module Inspec::Resources
80
80
  "IIS App Pool '#{@pool_name}'"
81
81
  end
82
82
 
83
+ def resource_id
84
+ @pool_name
85
+ end
86
+
83
87
  private
84
88
 
85
89
  def iis_app_pool
@@ -77,6 +77,10 @@ module Inspec::Resources
77
77
  iis_site.nil? ? false : (iis_site[:bindings].include? binding)
78
78
  end
79
79
 
80
+ def resource_id
81
+ @site_name || "IIS Site"
82
+ end
83
+
80
84
  def to_s
81
85
  "iis_site '#{@site_name}'"
82
86
  end
@@ -46,6 +46,10 @@ module Inspec::Resources
46
46
  @params = conf.params
47
47
  end
48
48
 
49
+ def resource_id
50
+ @conf_path || "inetd.conf"
51
+ end
52
+
49
53
  def to_s
50
54
  "inetd.conf"
51
55
  end
@@ -83,6 +83,10 @@ module Inspec::Resources
83
83
  interface_info && Array(interface_info[:ipv6_addresses])
84
84
  end
85
85
 
86
+ def resource_id
87
+ @iface || "Interface"
88
+ end
89
+
86
90
  def to_s
87
91
  "Interface #{@iface}"
88
92
  end
@@ -62,6 +62,10 @@ module Inspec::Resources
62
62
  @ip6tables_cache = cmd.stdout.split("\n").map(&:strip)
63
63
  end
64
64
 
65
+ def resource_id
66
+ format("Ip6tables %s %s", @table && "table: #{@table}", @chain && "chain: #{@chain}").strip
67
+ end
68
+
65
69
  def to_s
66
70
  format("Ip6tables %s %s", @table && "table: #{@table}", @chain && "chain: #{@chain}").strip
67
71
  end
@@ -42,6 +42,10 @@ module Inspec::Resources
42
42
  @ipfilter_cache = cmd.stdout.split("\n").map(&:strip)
43
43
  end
44
44
 
45
+ def resource_id
46
+ "Ipfilter"
47
+ end
48
+
45
49
  def to_s
46
50
  "Ipfilter"
47
51
  end
@@ -41,6 +41,10 @@ module Inspec::Resources
41
41
  @ipnat_cache = cmd.stdout.split("\n").map(&:strip)
42
42
  end
43
43
 
44
+ def resource_id
45
+ "Ipnat"
46
+ end
47
+
44
48
  def to_s
45
49
  "Ipnat"
46
50
  end
@@ -69,6 +69,10 @@ module Inspec::Resources
69
69
  end
70
70
  end
71
71
 
72
+ def resource_id
73
+ format("Iptables %s %s", @table && "table: #{@table}", @chain && "chain: #{@chain}").strip
74
+ end
75
+
72
76
  def to_s
73
77
  format("Iptables %s %s", @table && "table: #{@table}", @chain && "chain: #{@chain}").strip
74
78
  end
@@ -59,6 +59,10 @@ module Inspec::Resources
59
59
  extract_value(key, params)
60
60
  end
61
61
 
62
+ def resource_id
63
+ @resource_name_supplement || "#{resource_base_name}'s content"
64
+ end
65
+
62
66
  def to_s
63
67
  "#{resource_base_name} #{@resource_name_supplement || "content"}"
64
68
  end
@@ -69,6 +69,10 @@ module Inspec::Resources
69
69
  cmd.exit_status == 0 ? cmd.stdout.delete("\n") : nil
70
70
  end
71
71
 
72
+ def resource_id
73
+ @module || "Kernel Module"
74
+ end
75
+
72
76
  def to_s
73
77
  "Kernel Module #{@module}"
74
78
  end
@@ -29,6 +29,10 @@ module Inspec::Resources
29
29
  cmd
30
30
  end
31
31
 
32
+ def resource_id
33
+ @parameter || "Kernel Parameter"
34
+ end
35
+
32
36
  def to_s
33
37
  "Kernel Parameter #{@parameter}"
34
38
  end
@@ -59,6 +59,10 @@ module Inspec::Resources
59
59
  @key.public_key.n.num_bytes * 8
60
60
  end
61
61
 
62
+ def resource_id
63
+ @key_path || "RSA Key"
64
+ end
65
+
62
66
  def to_s
63
67
  "rsa_key #{@key_path}"
64
68
  end
@@ -26,6 +26,10 @@ module Inspec::Resources
26
26
  super(CommandWrapper.wrap(command, options))
27
27
  end
28
28
 
29
+ def resource_id
30
+ @raw_command || "Kornshell command"
31
+ end
32
+
29
33
  def to_s
30
34
  "KornShell command #{@raw_command}"
31
35
  end
@@ -38,6 +38,10 @@ module Inspec::Resources
38
38
  @params = conf.params
39
39
  end
40
40
 
41
+ def resource_id
42
+ @conf_path
43
+ end
44
+
41
45
  def to_s
42
46
  "limits.conf"
43
47
  end
@@ -49,6 +49,10 @@ module Inspec::Resources
49
49
  @params = conf.params
50
50
  end
51
51
 
52
+ def resource_id
53
+ @conf_path
54
+ end
55
+
52
56
  def to_s
53
57
  "login.defs"
54
58
  end