inspec-core 5.17.4 → 5.18.14

Sign up to get free protection for your applications and to get access to all the features.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/etc/deprecations.json +4 -0
  4. data/inspec-core.gemspec +1 -1
  5. data/lib/inspec/base_cli.rb +5 -0
  6. data/lib/inspec/cli.rb +62 -9
  7. data/lib/inspec/dependencies/dependency_set.rb +6 -2
  8. data/lib/inspec/dsl.rb +18 -5
  9. data/lib/inspec/errors.rb +2 -0
  10. data/lib/inspec/exceptions.rb +2 -0
  11. data/lib/inspec/fetcher/url.rb +1 -1
  12. data/lib/inspec/file_provider.rb +36 -0
  13. data/lib/inspec/iaf_file.rb +127 -0
  14. data/lib/inspec/profile.rb +17 -7
  15. data/lib/inspec/resources/aide_conf.rb +4 -0
  16. data/lib/inspec/resources/apache.rb +4 -0
  17. data/lib/inspec/resources/apache_conf.rb +4 -0
  18. data/lib/inspec/resources/apt.rb +6 -1
  19. data/lib/inspec/resources/audit_policy.rb +5 -0
  20. data/lib/inspec/resources/auditd_conf.rb +4 -0
  21. data/lib/inspec/resources/bash.rb +4 -0
  22. data/lib/inspec/resources/bond.rb +4 -0
  23. data/lib/inspec/resources/bridge.rb +4 -0
  24. data/lib/inspec/resources/cassandradb_conf.rb +5 -0
  25. data/lib/inspec/resources/cassandradb_session.rb +8 -3
  26. data/lib/inspec/resources/chocolatey_package.rb +4 -0
  27. data/lib/inspec/resources/chrony_conf.rb +4 -0
  28. data/lib/inspec/resources/command.rb +5 -0
  29. data/lib/inspec/resources/cpan.rb +4 -0
  30. data/lib/inspec/resources/cran.rb +4 -0
  31. data/lib/inspec/resources/cron.rb +5 -0
  32. data/lib/inspec/resources/csv.rb +6 -1
  33. data/lib/inspec/resources/dh_params.rb +4 -0
  34. data/lib/inspec/resources/docker_container.rb +4 -0
  35. data/lib/inspec/resources/docker_image.rb +4 -0
  36. data/lib/inspec/resources/docker_plugin.rb +4 -0
  37. data/lib/inspec/resources/docker_service.rb +4 -0
  38. data/lib/inspec/resources/etc_group.rb +4 -0
  39. data/lib/inspec/resources/etc_hosts_allow_deny.rb +5 -0
  40. data/lib/inspec/resources/file.rb +6 -1
  41. data/lib/inspec/resources/filesystem.rb +4 -0
  42. data/lib/inspec/resources/gem.rb +4 -0
  43. data/lib/inspec/resources/groups.rb +4 -0
  44. data/lib/inspec/resources/grub_conf.rb +4 -0
  45. data/lib/inspec/resources/host.rb +4 -0
  46. data/lib/inspec/resources/http.rb +4 -0
  47. data/lib/inspec/resources/ibmdb2_conf.rb +8 -0
  48. data/lib/inspec/resources/ibmdb2_session.rb +12 -3
  49. data/lib/inspec/resources/iis_app.rb +4 -0
  50. data/lib/inspec/resources/iis_app_pool.rb +4 -0
  51. data/lib/inspec/resources/iis_site.rb +4 -0
  52. data/lib/inspec/resources/inetd_conf.rb +4 -0
  53. data/lib/inspec/resources/interface.rb +4 -0
  54. data/lib/inspec/resources/ip6tables.rb +4 -0
  55. data/lib/inspec/resources/ipfilter.rb +4 -0
  56. data/lib/inspec/resources/ipnat.rb +4 -0
  57. data/lib/inspec/resources/iptables.rb +4 -0
  58. data/lib/inspec/resources/json.rb +4 -0
  59. data/lib/inspec/resources/kernel_module.rb +4 -0
  60. data/lib/inspec/resources/kernel_parameter.rb +4 -0
  61. data/lib/inspec/resources/key_rsa.rb +4 -0
  62. data/lib/inspec/resources/ksh.rb +4 -0
  63. data/lib/inspec/resources/limits_conf.rb +4 -0
  64. data/lib/inspec/resources/login_defs.rb +4 -0
  65. data/lib/inspec/resources/mongodb.rb +4 -0
  66. data/lib/inspec/resources/mongodb_conf.rb +5 -0
  67. data/lib/inspec/resources/mongodb_session.rb +6 -1
  68. data/lib/inspec/resources/mount.rb +4 -0
  69. data/lib/inspec/resources/mssql_session.rb +4 -0
  70. data/lib/inspec/resources/mssql_sys_conf.rb +7 -0
  71. data/lib/inspec/resources/mysql_conf.rb +4 -0
  72. data/lib/inspec/resources/mysql_session.rb +8 -1
  73. data/lib/inspec/resources/nginx.rb +6 -1
  74. data/lib/inspec/resources/nginx_conf.rb +4 -0
  75. data/lib/inspec/resources/noop.rb +4 -0
  76. data/lib/inspec/resources/npm.rb +4 -0
  77. data/lib/inspec/resources/ntp_conf.rb +4 -0
  78. data/lib/inspec/resources/oneget.rb +4 -0
  79. data/lib/inspec/resources/opa_api.rb +10 -0
  80. data/lib/inspec/resources/opa_cli.rb +14 -0
  81. data/lib/inspec/resources/oracledb_conf.rb +5 -0
  82. data/lib/inspec/resources/oracledb_listener_conf.rb +4 -0
  83. data/lib/inspec/resources/oracledb_session.rb +10 -0
  84. data/lib/inspec/resources/os.rb +4 -0
  85. data/lib/inspec/resources/os_env.rb +4 -0
  86. data/lib/inspec/resources/package.rb +4 -0
  87. data/lib/inspec/resources/parse_config.rb +10 -1
  88. data/lib/inspec/resources/pip.rb +4 -0
  89. data/lib/inspec/resources/platform.rb +4 -0
  90. data/lib/inspec/resources/postfix_conf.rb +4 -0
  91. data/lib/inspec/resources/postgres_conf.rb +4 -0
  92. data/lib/inspec/resources/postgres_session.rb +8 -4
  93. data/lib/inspec/resources/powershell.rb +4 -0
  94. data/lib/inspec/resources/processes.rb +6 -4
  95. data/lib/inspec/resources/rabbitmq_config.rb +4 -0
  96. data/lib/inspec/resources/registry_key.rb +4 -0
  97. data/lib/inspec/resources/security_identifier.rb +4 -0
  98. data/lib/inspec/resources/security_policy.rb +4 -0
  99. data/lib/inspec/resources/service.rb +4 -0
  100. data/lib/inspec/resources/ssh_config.rb +4 -0
  101. data/lib/inspec/resources/sybase_conf.rb +4 -0
  102. data/lib/inspec/resources/sybase_session.rb +4 -0
  103. data/lib/inspec/resources/sys_info.rb +4 -0
  104. data/lib/inspec/resources/timezone.rb +4 -0
  105. data/lib/inspec/resources/users.rb +4 -0
  106. data/lib/inspec/resources/vbscript.rb +5 -0
  107. data/lib/inspec/resources/virtualization.rb +4 -0
  108. data/lib/inspec/resources/windows_feature.rb +5 -1
  109. data/lib/inspec/resources/windows_firewall.rb +4 -0
  110. data/lib/inspec/resources/windows_firewall_rule.rb +4 -0
  111. data/lib/inspec/resources/windows_hotfix.rb +4 -0
  112. data/lib/inspec/resources/windows_task.rb +4 -0
  113. data/lib/inspec/resources/wmi.rb +4 -0
  114. data/lib/inspec/resources/x509_certificate.rb +59 -0
  115. data/lib/inspec/resources/yum.rb +4 -0
  116. data/lib/inspec/resources/zfs_dataset.rb +4 -0
  117. data/lib/inspec/resources/zfs_pool.rb +4 -0
  118. data/lib/inspec/rule.rb +1 -1
  119. data/lib/inspec/secrets/yaml.rb +7 -1
  120. data/lib/inspec/ui.rb +1 -0
  121. data/lib/inspec/utils/yaml_profile_summary.rb +34 -0
  122. data/lib/inspec/version.rb +1 -1
  123. data/lib/plugins/inspec-reporter-html2/templates/body.html.erb +4 -4
  124. data/lib/plugins/inspec-reporter-html2/templates/control.html.erb +1 -1
  125. data/lib/plugins/inspec-reporter-html2/templates/profile.html.erb +1 -1
  126. data/lib/plugins/{inspec-artifact/inspec-artifact.gemspec → inspec-sign/inspec-sign.gemspec} +2 -2
  127. data/lib/plugins/inspec-sign/lib/inspec-sign/base.rb +161 -0
  128. data/lib/plugins/{inspec-artifact/lib/inspec-artifact → inspec-sign/lib/inspec-sign}/cli.rb +14 -23
  129. data/lib/plugins/inspec-sign/lib/inspec-sign.rb +12 -0
  130. data/lib/source_readers/inspec.rb +8 -2
  131. metadata +10 -8
  132. data/lib/plugins/inspec-artifact/lib/inspec-artifact/base.rb +0 -187
  133. data/lib/plugins/inspec-artifact/lib/inspec-artifact.rb +0 -12
@@ -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{
@@ -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
@@ -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
@@ -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
@@ -19,6 +19,10 @@ module Inspec::Resources
19
19
  end
20
20
  end
21
21
 
22
+ def resource_id
23
+ @conf_path
24
+ end
25
+
22
26
  def to_s
23
27
  "MongoDB"
24
28
  end
@@ -24,6 +24,11 @@ module Inspec::Resources
24
24
  super(@conf_path)
25
25
  end
26
26
 
27
+ # set resource_id to "" if system is not able to determine the @conf_path
28
+ def resource_id
29
+ @conf_path || "mongodb_conf"
30
+ end
31
+
27
32
  private
28
33
 
29
34
  def parse(content)
@@ -4,9 +4,10 @@ module Inspec::Resources
4
4
  class Lines
5
5
  attr_reader :params
6
6
 
7
- def initialize(raw, desc)
7
+ def initialize(raw, desc, exit_status = nil)
8
8
  @params = raw
9
9
  @desc = desc
10
+ @exit_status = exit_status
10
11
  end
11
12
 
12
13
  def to_s
@@ -62,6 +63,10 @@ module Inspec::Resources
62
63
  raise Inspec::Exceptions::ResourceFailed, "Can't run MongoDB command Error: #{e.message}"
63
64
  end
64
65
 
66
+ def resource_id
67
+ "mongodb_session:User:#{@user}:Host:#{@host}:Database:#{@database}"
68
+ end
69
+
65
70
  private
66
71
 
67
72
  def create_session
@@ -51,6 +51,10 @@ module Inspec::Resources
51
51
  @mount_options[name]
52
52
  end
53
53
 
54
+ def resource_id
55
+ @path || "mount"
56
+ end
57
+
54
58
  def to_s
55
59
  "Mount #{@path}"
56
60
  end
@@ -80,6 +80,10 @@ module Inspec::Resources
80
80
  end
81
81
  end
82
82
 
83
+ def resource_id
84
+ "mssql_session:User:#{@user}:Host:#{@host}:Database:#{@db_name}:Instance:#{@instance}"
85
+ end
86
+
83
87
  def to_s
84
88
  "MSSQL session"
85
89
  end
@@ -19,6 +19,8 @@ module Inspec::Resources
19
19
  attr_reader :mssql_session, :sql_query
20
20
 
21
21
  def initialize(conf_param_name, opts = {})
22
+ @conf_param_name = conf_param_name
23
+ @opts = opts
22
24
  opts[:username] ||= "SA"
23
25
  @mssql_session = inspec.mssql_session(opts)
24
26
  setting = conf_param_name.to_s.gsub("_", " ").split.map(&:capitalize).join(" ")
@@ -37,6 +39,11 @@ module Inspec::Resources
37
39
  "MsSql DB Configuration"
38
40
  end
39
41
 
42
+ def resource_id
43
+ username = @opts[:username] || "SA"
44
+ "#{@conf_param_name}-#{username}"
45
+ end
46
+
40
47
  private
41
48
 
42
49
  def determine_system_configurations(setting)
@@ -121,6 +121,10 @@ module Inspec::Resources
121
121
  @files_contents[path] ||= read_file_content(path)
122
122
  end
123
123
 
124
+ def resource_id
125
+ @conf_path || "mysql_conf"
126
+ end
127
+
124
128
  def to_s
125
129
  "MySQL Configuration"
126
130
  end
@@ -43,6 +43,7 @@ module Inspec::Resources
43
43
  @host = host
44
44
  @port = port
45
45
  @socket = socket
46
+ @db = nil
46
47
  init_fallback if user.nil? || pass.nil?
47
48
  raise Inspec::Exceptions::ResourceFailed, "Can't run MySQL SQL checks without authentication." if @user.nil? || @pass.nil?
48
49
 
@@ -52,7 +53,9 @@ module Inspec::Resources
52
53
  def query(q, db = "")
53
54
  raise Inspec::Exceptions::ResourceFailed, "#{resource_exception_message}" if resource_failed?
54
55
 
55
- mysql_cmd = create_mysql_cmd(q, db)
56
+ @db = db
57
+ mysql_cmd = create_mysql_cmd(q, @db)
58
+
56
59
  cmd = if !@pass.nil?
57
60
  inspec.command(mysql_cmd, redact_regex: /(mysql -u\w+ -p).+(\s-(h|S).*)/)
58
61
  else
@@ -66,6 +69,10 @@ module Inspec::Resources
66
69
  end
67
70
  end
68
71
 
72
+ def resource_id
73
+ "mysql_session:User:#{@user}:Host:#{@host}:Database:#{@db}"
74
+ end
75
+
69
76
  def to_s
70
77
  "MySQL Session"
71
78
  end
@@ -18,12 +18,13 @@ module Inspec::Resources
18
18
  its('modules') { should include 'my_module' }
19
19
  end
20
20
  EXAMPLE
21
- attr_reader :params, :bin_dir
21
+ attr_reader :params, :bin_dir, :nginx_path
22
22
 
23
23
  def initialize(nginx_path = "/usr/sbin/nginx")
24
24
  return skip_resource "The `nginx` resource is not yet available on your OS." if inspec.os.windows?
25
25
  return skip_resource "The `nginx` binary not found in the path provided." unless inspec.command(nginx_path).exist?
26
26
 
27
+ @nginx_path = nginx_path
27
28
  cmd = inspec.command("#{nginx_path} -V 2>&1")
28
29
  if cmd.exit_status != 0
29
30
  return skip_resource "Error using the command nginx -V"
@@ -59,6 +60,10 @@ module Inspec::Resources
59
60
  @data.scan(/--with-(\S+)_module/).flatten
60
61
  end
61
62
 
63
+ def resource_id
64
+ nginx_path || "nginx"
65
+ end
66
+
62
67
  def to_s
63
68
  "Nginx Environment"
64
69
  end