inspec 1.15.0 → 1.16.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d6a9596b5e8f107982bbf0772679d92bd903b24
4
- data.tar.gz: 87f6fd87e179535f8d78512cc6a35798076cb51f
3
+ metadata.gz: c3a96e098c7ff3d2cb9f43ea5d89cf3a75e34169
4
+ data.tar.gz: c16f66e486f2502feb4c0596c182d494cf2279f1
5
5
  SHA512:
6
- metadata.gz: 73b6a1520ce732b59972ab69a1de54febd1512d06cf3102d81ad678ad7bedf85755a214d1ddc803fe7deda9cf2b1f26c0abc49716281f2690f3c4514dea15f3f
7
- data.tar.gz: 1333f99c255ff0853315186c023fa22d419a3a9ec1e770bc2e6983eed371a15d5f91f3d65ff889deead3cef15d7eec0641fb4b33dc72abaaa1f2c3346de0a173
6
+ metadata.gz: 0d052313445bc953e03e27d8f6f35f078df54249fc1736fc6b48c61c4cffe96b5bebc3ecede732b534ca56337134285c96ec915954dde7b9ccb19eca62bd296d
7
+ data.tar.gz: 4cd5c91590c765f3c9dc8f07721187663245c3092f478672cdaaad95c9ff6ea2f6a3848e76ae36eda2ba5c76a799b01ecdfe22914974816e4a1e7bf70d916cef
data/CHANGELOG.md CHANGED
@@ -1,5 +1,36 @@
1
+
2
+ n.n.n / 2017-03-02
3
+ ==================
4
+
5
+ * Merge pull request #1520 from chef/adamleff/fix-habitat-build
6
+ * Add Rake to Habitat build Gemfile
7
+ * Merge pull request #1454 from jkerry/FunctionalJUnitReporter
8
+ * correcting a typo, anonymnous -> anonymous
9
+ * adding gitignore entries for the tar.gz files that result from the functional tests
10
+ * resolving old junit unit tests with the new format. Adding a skipped test node as a result
11
+ * Converting the junit reporter to use nokogiri on top of the json reporter output hash
1
12
  # Change Log
2
13
 
14
+ ## [1.16.0](https://github.com/chef/inspec/tree/1.16.0) (2017-03-02)
15
+ [Full Changelog](https://github.com/chef/inspec/compare/v1.15.0...v1.16.0)
16
+
17
+ **Implemented enhancements:**
18
+
19
+ - Functional JUnit reporter [\#1454](https://github.com/chef/inspec/pull/1454) ([jkerry](https://github.com/jkerry))
20
+
21
+ **Closed issues:**
22
+
23
+ - Small bug on the registry\_key docs page [\#1523](https://github.com/chef/inspec/issues/1523)
24
+
25
+ **Merged pull requests:**
26
+
27
+ - use -- for description of inspec login\_automate [\#1527](https://github.com/chef/inspec/pull/1527) ([chris-rock](https://github.com/chris-rock))
28
+ - fix ident in cmp matcher docs [\#1524](https://github.com/chef/inspec/pull/1524) ([chris-rock](https://github.com/chris-rock))
29
+ - Add Rake to Habitat build Gemfile [\#1520](https://github.com/chef/inspec/pull/1520) ([adamleff](https://github.com/adamleff))
30
+ - Fix kernel\_module for centos/redhat [\#1513](https://github.com/chef/inspec/pull/1513) ([postgred](https://github.com/postgred))
31
+ - Added oracle linux to rhel platform section of 'service' resource. [\#1511](https://github.com/chef/inspec/pull/1511) ([carldjohnston](https://github.com/carldjohnston))
32
+ - Add FreeBSD support for ZFS datasets and pools [\#1501](https://github.com/chef/inspec/pull/1501) ([jbenden](https://github.com/jbenden))
33
+
3
34
  ## [v1.15.0](https://github.com/chef/inspec/tree/v1.15.0) (2017-02-27)
4
35
  [Full Changelog](https://github.com/chef/inspec/compare/v1.14.1...v1.15.0)
5
36
 
@@ -27,6 +58,7 @@
27
58
 
28
59
  **Merged pull requests:**
29
60
 
61
+ - 1.15.0 [\#1519](https://github.com/chef/inspec/pull/1519) ([adamleff](https://github.com/adamleff))
30
62
  - Fix formatting and colors on Windows [\#1510](https://github.com/chef/inspec/pull/1510) ([trickyearlobe](https://github.com/trickyearlobe))
31
63
  - Adding a Habitat profile artifact creator [\#1505](https://github.com/chef/inspec/pull/1505) ([adamleff](https://github.com/adamleff))
32
64
  - create inspec.io/tutorial.html [\#1490](https://github.com/chef/inspec/pull/1490) ([arlimus](https://github.com/arlimus))
@@ -2170,4 +2202,4 @@
2170
2202
 
2171
2203
 
2172
2204
 
2173
- \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
2205
+ \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
data/Gemfile CHANGED
@@ -8,7 +8,7 @@ if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.2.2')
8
8
  end
9
9
 
10
10
  gem 'ffi', '>= 1.9.14'
11
- gem 'rspec_junit_formatter', '~> 0.2.3'
11
+ gem 'nokogiri', '~> 1.6'
12
12
 
13
13
  group :test do
14
14
  gem 'bundler', '~> 1.5'
@@ -19,7 +19,6 @@ group :test do
19
19
  gem 'concurrent-ruby', '~> 0.9'
20
20
  gem 'mocha', '~> 1.1'
21
21
  gem 'ruby-progressbar', '~> 1.8'
22
- gem 'nokogiri', '~> 1.6'
23
22
  gem 'webmock', '~> 2.3.2'
24
23
  end
25
24
 
@@ -4,7 +4,7 @@ title: About the mount Resource
4
4
 
5
5
  # mount
6
6
 
7
- Use the `mount` InSpec audit resource to test the mount points on Linux systems.
7
+ Use the `mount` InSpec audit resource to test the mount points on FreeBSD and Linux systems.
8
8
 
9
9
  ## Syntax
10
10
 
@@ -0,0 +1,63 @@
1
+ ---
2
+ title: About the zfs_dataset Resource
3
+ ---
4
+
5
+ # zfs_dataset
6
+
7
+ Use the `zfs_dataset` InSpec audit resource to test the ZFS datasets on FreeBSD systems.
8
+
9
+ ## Syntax
10
+
11
+ A `zfs_dataset` resource block declares the ZFS dataset properties that should be tested:
12
+
13
+ describe zfs_dataset('dataset') do
14
+ it { should MATCHER 'value' }
15
+ end
16
+
17
+ where
18
+
19
+ * `('dataset')` is the name of the ZFS dataset (eg: `'tank/tmp'`)
20
+ * `MATCHER` is a valid matcher for this resource
21
+ * `'value'` is the value to be tested
22
+
23
+
24
+ ## Matchers
25
+
26
+ This InSpec audit resource has the matchers listed below, in addition to dynamically exposing all ZFS dataset properties available (see: `man zfs` for the list of supported properties.)
27
+
28
+ ### be
29
+
30
+ <%= partial "/shared/matcher_be" %>
31
+
32
+ ### be_mounted
33
+
34
+ The `be_mounted` matcher tests if the dataset is accessible from the file system:
35
+
36
+ it { should be_mounted }
37
+
38
+ ### cmp
39
+
40
+ <%= partial "/shared/matcher_cmp" %>
41
+
42
+ ### eq
43
+
44
+ <%= partial "/shared/matcher_eq" %>
45
+
46
+ ### match
47
+
48
+ <%= partial "/shared/matcher_match" %>
49
+
50
+ ## Examples
51
+
52
+ The following examples show how to use this InSpec audit resource.
53
+
54
+ ### Test a dataset of 'tank/tmp'
55
+
56
+ describe zfs_dataset('tank/tmp') do
57
+ it { should be_mounted }
58
+ its('atime') { should eq 'on' }
59
+ its('compression') { should eq 'lz4' }
60
+ its('exec') { should eq 'off' }
61
+ its('readonly') { should eq 'off' }
62
+ its('setuid') { should eq 'off' }
63
+ end
@@ -0,0 +1,57 @@
1
+ ---
2
+ title: About the zfs_pool Resource
3
+ ---
4
+
5
+ # zfs_pool
6
+
7
+ Use the `zfs_pool` InSpec audit resource to test the ZFS pools on FreeBSD systems.
8
+
9
+ ## Syntax
10
+
11
+ A `zfs_pool` resource block declares the ZFS pool properties that should be tested:
12
+
13
+ describe zfs_pool('pool') do
14
+ it { should MATCHER 'value' }
15
+ end
16
+
17
+ where
18
+
19
+ * `('pool')` is the name of the ZFS pool (eg: `'tank'`)
20
+ * `MATCHER` is a valid matcher for this resource
21
+ * `'value'` is the value to be tested
22
+
23
+
24
+ ## Matchers
25
+
26
+ This InSpec audit resource has the matchers listed below, in addition to dynamically exposing all ZFS pool properties available (see: `man zpool` for the list of supported properties.)
27
+
28
+ ### be
29
+
30
+ <%= partial "/shared/matcher_be" %>
31
+
32
+ ### cmp
33
+
34
+ <%= partial "/shared/matcher_cmp" %>
35
+
36
+ ### eq
37
+
38
+ <%= partial "/shared/matcher_eq" %>
39
+
40
+ ### match
41
+
42
+ <%= partial "/shared/matcher_match" %>
43
+
44
+ ## Examples
45
+
46
+ The following examples show how to use this InSpec audit resource.
47
+
48
+ ### Test a pool of 'tank'
49
+
50
+ describe zfs_pool('tank') do
51
+ its('autoexpand') { should eq 'off' }
52
+ its('failmode') { should eq 'continue' }
53
+ its('feature@lz4_compress') { should eq 'active' }
54
+ its('health') { should eq 'ONLINE' }
55
+ its('listsnapshots') { should eq 'off' }
56
+ its('readonly') { should eq 'off' }
57
+ end
@@ -28,10 +28,10 @@ vs:
28
28
 
29
29
  Ignoring case sensitivity:
30
30
 
31
- describe some_resource do
32
- its('setting') { should cmp 'raw' }
33
- its('setting') { should cmp 'RAW' }
34
- end
31
+ describe some_resource do
32
+ its('setting') { should cmp 'raw' }
33
+ its('setting') { should cmp 'RAW' }
34
+ end
35
35
 
36
36
  Printing octal values:
37
37
 
@@ -14,5 +14,5 @@ depends:
14
14
  - name: windows-patch-benchmark
15
15
  resolved_source:
16
16
  url: https://github.com/chris-rock/windows-patch-benchmark/archive/master.tar.gz
17
- sha256: 3d473e72d8b70018386a53e0a105e92ccbb4115dc268cadc16ff53d550d2898e
17
+ sha256: 6bdab40a3fe9f9de4e7c87f4f3844fdcf2c5cba6f84089b68d47c72392b51fdc
18
18
  version_constraints: ">= 0"
@@ -76,7 +76,7 @@ module Compliance
76
76
  if !options['dctoken'].nil? || !options['usertoken'].nil?
77
77
  msg = login_automate_config(url, options['user'], options['dctoken'], options['usertoken'], options['ent'], options['insecure'])
78
78
  else
79
- puts "Please specify a token using --dctoken='DATA_COLLECTOR_TOKEN' or usertoken='AUTOMATE_TOKEN' "
79
+ puts "Please specify a token using --dctoken='DATA_COLLECTOR_TOKEN' or --usertoken='AUTOMATE_TOKEN' "
80
80
  exit 1
81
81
  end
82
82
  else
@@ -132,6 +132,8 @@ require 'resources/windows_task'
132
132
  require 'resources/xinetd'
133
133
  require 'resources/wmi'
134
134
  require 'resources/yum'
135
+ require 'resources/zfs_dataset'
136
+ require 'resources/zfs_pool'
135
137
 
136
138
  # file formats, depend on json implementation
137
139
  require 'resources/json'
@@ -791,13 +791,73 @@ class InspecRspecCli < InspecRspecJson # rubocop:disable Metrics/ClassLength
791
791
  end
792
792
  end
793
793
 
794
- class InspecRspecJUnit < RSpecJUnitFormatter
794
+ class InspecRspecJUnit < InspecRspecJson
795
795
  RSpec::Core::Formatters.register self, :close
796
796
 
797
- def initialize(*args)
798
- super(*args)
797
+ #
798
+ # This is the last method is invoked through the formatter interface.
799
+ # Converts the junit formatter constructed output_hash into nokogiri generated
800
+ # XML and writes it to output.
801
+ #
802
+ def close(_notification)
803
+ require 'nokogiri'
804
+ xml_output = Nokogiri::XML::Builder.new { |xml|
805
+ xml.testsuites do
806
+ @output_hash[:profiles].each do |profile|
807
+ build_profile_xml(xml, profile)
808
+ end
809
+ end
810
+ }.to_xml
811
+ output.puts xml_output
799
812
  end
800
813
 
801
- def close(_notification)
814
+ private
815
+
816
+ def build_profile_xml(xml, profile)
817
+ xml.testsuite(
818
+ name: profile[:name],
819
+ tests: count_profile_tests(profile),
820
+ failed: count_profile_failed_tests(profile),
821
+ ) do
822
+ profile[:controls].each do |control|
823
+ build_control_xml(xml, control)
824
+ end
825
+ end
826
+ end
827
+
828
+ def build_control_xml(xml, control)
829
+ return if control[:results].nil?
830
+ control[:results].each do |result|
831
+ build_result_xml(xml, control, result)
832
+ end
833
+ end
834
+
835
+ def build_result_xml(xml, control, result)
836
+ test_class = control[:title].nil? ? 'Anonymous' : control[:id]
837
+ xml.testcase(name: result[:code_desc], class: test_class, time: result[:run_time]) do
838
+ if result[:status] == 'failed'
839
+ xml.failure(message: result[:message])
840
+ elsif result[:status] == 'skipped'
841
+ xml.skipped
842
+ end
843
+ end
844
+ end
845
+
846
+ def count_profile_tests(profile)
847
+ profile[:controls].reduce(0) { |acc, elem|
848
+ acc + (elem[:results].nil? ? 0 : elem[:results].count)
849
+ }
850
+ end
851
+
852
+ def count_profile_failed_tests(profile)
853
+ profile[:controls].reduce(0) { |acc, elem|
854
+ if elem[:results].nil?
855
+ acc
856
+ else
857
+ acc + elem[:results].reduce(0) { |fail_test_total, test_case|
858
+ test_case[:status] == 'failed' ? fail_test_total + 1 : fail_test_total
859
+ }
860
+ end
861
+ }
802
862
  end
803
863
  end
@@ -4,5 +4,5 @@
4
4
  # author: Christoph Hartmann
5
5
 
6
6
  module Inspec
7
- VERSION = '1.15.0'.freeze
7
+ VERSION = '1.16.0'.freeze
8
8
  end
@@ -19,7 +19,7 @@ module Inspec::Resources
19
19
 
20
20
  class FileResource < Inspec.resource(1)
21
21
  include FilePermissionsSelector
22
- include MountParser
22
+ include LinuxMountParser
23
23
 
24
24
  name 'file'
25
25
  desc 'Use the file InSpec audit resource to test all system file types, including files, directories, symbolic links, named pipes, sockets, character devices, block devices, and doors.'
@@ -21,10 +21,11 @@ module Inspec::Resources
21
21
  end
22
22
 
23
23
  def loaded?
24
- # default lsmod command
25
- lsmod_cmd = 'lsmod'
26
- # special care for CentOS 5 and sudo
27
- lsmod_cmd = '/sbin/lsmod' if inspec.os[:name] == 'centos' && inspec.os[:release].to_i == 5
24
+ if inspec.os.redhat? || inspec.os.name == 'fedora'
25
+ lsmod_cmd = '/sbin/lsmod'
26
+ else
27
+ lsmod_cmd = 'lsmod'
28
+ end
28
29
 
29
30
  # get list of all modules
30
31
  cmd = inspec.command(lsmod_cmd)
@@ -37,7 +38,7 @@ module Inspec::Resources
37
38
  end
38
39
 
39
40
  def version
40
- if inspec.os[:name] == 'centos' && inspec.os[:release].to_i == 5
41
+ if inspec.os.redhat? || inspec.os.name == 'fedora'
41
42
  modinfo_cmd = "/sbin/modinfo -F version #{@module}"
42
43
  else
43
44
  modinfo_cmd = "modinfo -F version #{@module}"
@@ -1,6 +1,7 @@
1
1
  # encoding: utf-8
2
2
  # author: Christoph Hartmann
3
3
  # author: Dominik Richter
4
+ # author: Joseph Benden
4
5
 
5
6
  require 'utils/simpleconfig'
6
7
 
@@ -18,13 +19,12 @@ module Inspec::Resources
18
19
  its('options') { should include 'nodev' }
19
20
  end
20
21
  "
21
- include MountParser
22
-
23
22
  attr_reader :file
24
23
 
25
24
  def initialize(path)
26
25
  @path = path
27
- return skip_resource 'The `mount` resource is not supported on your OS yet.' if !inspec.os.linux?
26
+ @mount_manager = mount_manager_for_os
27
+ return skip_resource 'The `mount` resource is not supported on your OS yet.' if @mount_manager.nil?
28
28
  @file = inspec.backend.file(@path)
29
29
  end
30
30
 
@@ -49,12 +49,42 @@ module Inspec::Resources
49
49
  line = mounted.stdout.lines.to_a.last if mounted.stdout.lines.count > 1
50
50
 
51
51
  # parse content if we are on linux
52
- @mount_options ||= parse_mount_options(line)
52
+ @mount_options ||= @mount_manager.parse_mount_options(line)
53
53
  @mount_options[name]
54
54
  end
55
55
 
56
56
  def to_s
57
57
  "Mount #{@path}"
58
58
  end
59
+
60
+ private
61
+
62
+ def mount_manager_for_os
63
+ os = inspec.os
64
+ if os.linux?
65
+ LinuxMounts.new(inspec)
66
+ elsif ['freebsd'].include?(os[:family])
67
+ BsdMounts.new(inspec)
68
+ end
69
+ end
70
+ end
71
+
72
+ class MountsInfo
73
+ attr_reader :inspec
74
+ def initialize(inspec)
75
+ @inspec = inspec
76
+ end
77
+
78
+ def parse_mount_options(_mount_line, _compatibility = false)
79
+ raise NotImplementedError
80
+ end
81
+ end
82
+
83
+ class LinuxMounts < MountsInfo
84
+ include LinuxMountParser
85
+ end
86
+
87
+ class BsdMounts < MountsInfo
88
+ include BsdMountParser
59
89
  end
60
90
  end
@@ -134,9 +134,9 @@ module Inspec::Resources
134
134
  else
135
135
  SysV.new(inspec, service_ctl || '/usr/sbin/service')
136
136
  end
137
- elsif %w{redhat fedora centos}.include?(platform)
137
+ elsif %w{redhat fedora centos oracle}.include?(platform)
138
138
  version = os[:release].to_i
139
- if (%w{ redhat centos }.include?(platform) && version >= 7) || (platform == 'fedora' && version >= 15)
139
+ if (%w{ redhat centos oracle }.include?(platform) && version >= 7) || (platform == 'fedora' && version >= 15)
140
140
  Systemd.new(inspec, service_ctl)
141
141
  else
142
142
  SysV.new(inspec, service_ctl || '/sbin/service')
@@ -0,0 +1,60 @@
1
+ # encoding: utf-8
2
+ # author: Joseph Benden
3
+
4
+ module Inspec::Resources
5
+ class ZfsDataset < Inspec.resource(1)
6
+ name 'zfs_dataset'
7
+ desc "
8
+ Use the zfs_dataset InSpec audit resource to test if the named
9
+ ZFS Dataset is present and/or has certain properties.
10
+ "
11
+ example "
12
+ describe zfs_dataset('tank/tmp') do
13
+ its('exec') { should eq('off') }
14
+ its('setuid') { should eq('off') }
15
+ end
16
+ "
17
+
18
+ def initialize(zfs_dataset)
19
+ return skip_resource 'The `zfs_dataset` resource is not supported on your OS yet.' if !inspec.os.bsd?
20
+ @zfs_dataset = zfs_dataset
21
+
22
+ @params = gather
23
+ end
24
+
25
+ # method called by 'it { should exist }'
26
+ def exists?
27
+ inspec.command("/sbin/zfs get -Hp all #{@zfs_dataset}").exit_status == 0
28
+ end
29
+
30
+ def mounted?
31
+ return false if !exists?
32
+ inspec.mount(@params['mountpoint']).mounted?
33
+ end
34
+
35
+ def to_s
36
+ "ZFS Dataset #{@zfs_dataset}"
37
+ end
38
+
39
+ def gather
40
+ cmd = inspec.command("/sbin/zfs get -Hp all #{@zfs_dataset}")
41
+ return nil if cmd.exit_status.to_i != 0
42
+
43
+ # parse data
44
+ cmd.stdout.chomp.split("\n").each_with_object(Hash.new(0)) do |line, h|
45
+ t = line.split("\t")
46
+ h[t[1].to_s] = t[2].to_s
47
+ end
48
+ end
49
+
50
+ # override method
51
+ def exec
52
+ @params['exec']
53
+ end
54
+
55
+ # expose all parameters
56
+ def method_missing(name)
57
+ @params[name.to_s]
58
+ end
59
+ end
60
+ end
@@ -0,0 +1,49 @@
1
+ # encoding: utf-8
2
+ # author: Joseph Benden
3
+
4
+ module Inspec::Resources
5
+ class ZfsPool < Inspec.resource(1)
6
+ name 'zfs_pool'
7
+ desc "
8
+ Use the zfs_pool InSpec audit resource to test if the named
9
+ ZFS Pool is present and/or has certain properties.
10
+ "
11
+ example "
12
+ describe zfs_pool('tank') do
13
+ its('failmode') { should eq('continue') }
14
+ end
15
+ "
16
+
17
+ def initialize(zfs_pool)
18
+ return skip_resource 'The `zfs_pool` resource is not supported on your OS yet.' if !inspec.os.bsd?
19
+ @zfs_pool = zfs_pool
20
+
21
+ @params = gather
22
+ end
23
+
24
+ # method called by 'it { should exist }'
25
+ def exists?
26
+ inspec.command("/sbin/zpool get -Hp all #{@zfs_pool}").exit_status == 0
27
+ end
28
+
29
+ def to_s
30
+ "ZFS Pool #{@zfs_pool}"
31
+ end
32
+
33
+ def gather
34
+ cmd = inspec.command("/sbin/zpool get -Hp all #{@zfs_pool}")
35
+ return nil if cmd.exit_status.to_i != 0
36
+
37
+ # parse data
38
+ cmd.stdout.chomp.split("\n").each_with_object(Hash.new(0)) do |line, h|
39
+ t = line.split("\t")
40
+ h[t[1].to_s] = t[2].to_s
41
+ end
42
+ end
43
+
44
+ # expose all parameters
45
+ def method_missing(name)
46
+ @params[name.to_s]
47
+ end
48
+ end
49
+ end
data/lib/utils/parser.rb CHANGED
@@ -63,7 +63,7 @@ module CommentParser
63
63
  end
64
64
  end
65
65
 
66
- module MountParser
66
+ module LinuxMountParser
67
67
  # this parses the output of mount command (only tested on linux)
68
68
  # this method expects only one line of the mount output
69
69
  def parse_mount_options(mount_line, compatibility = false)
@@ -94,6 +94,20 @@ module MountParser
94
94
  end
95
95
  end
96
96
 
97
+ module BsdMountParser
98
+ # this parses the output of mount command (only tested on freebsd)
99
+ # this method expects only one line of the mount output
100
+ def parse_mount_options(mount_line, _compatibility = false)
101
+ return {} if mount_line.nil? || mount_line.empty?
102
+
103
+ mount = mount_line.chomp.split(' ', 4)
104
+ options = mount[3].tr('()', '').split(', ')
105
+
106
+ # parse device and type
107
+ { device: mount[0], type: options.shift, options: options }
108
+ end
109
+ end
110
+
97
111
  module SolarisNetstatParser
98
112
  # takes this as a input and parses the values
99
113
  # UDP: IPv4
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: inspec
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.15.0
4
+ version: 1.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dominik Richter
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-27 00:00:00.000000000 Z
11
+ date: 2017-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: train
@@ -346,6 +346,8 @@ files:
346
346
  - docs/resources/xinetd_conf.md.erb
347
347
  - docs/resources/yaml.md.erb
348
348
  - docs/resources/yum.md.erb
349
+ - docs/resources/zfs_dataset.md.erb
350
+ - docs/resources/zfs_pool.md.erb
349
351
  - docs/ruby_usage.md
350
352
  - docs/shared/matcher_be.md.erb
351
353
  - docs/shared/matcher_cmp.md.erb
@@ -384,7 +386,7 @@ files:
384
386
  - examples/meta-profile/controls/example.rb
385
387
  - examples/meta-profile/inspec.lock
386
388
  - examples/meta-profile/inspec.yml
387
- - examples/meta-profile/vendor/3d473e72d8b70018386a53e0a105e92ccbb4115dc268cadc16ff53d550d2898e.tar.gz
389
+ - examples/meta-profile/vendor/6bdab40a3fe9f9de4e7c87f4f3844fdcf2c5cba6f84089b68d47c72392b51fdc.tar.gz
388
390
  - examples/meta-profile/vendor/9ad48391d4e6efff0a13d06736c5b075fb021410e0a629e087bc21e9617d957c.tar.gz
389
391
  - examples/meta-profile/vendor/e25d521fb1093b4c23b31a7dc8f41b5540236f4a433960b151bc427523662ab6.tar.gz
390
392
  - examples/profile-attribute.yml
@@ -558,6 +560,8 @@ files:
558
560
  - lib/resources/xinetd.rb
559
561
  - lib/resources/yaml.rb
560
562
  - lib/resources/yum.rb
563
+ - lib/resources/zfs_dataset.rb
564
+ - lib/resources/zfs_pool.rb
561
565
  - lib/source_readers/flat.rb
562
566
  - lib/source_readers/inspec.rb
563
567
  - lib/utils/command_wrapper.rb