inspec 0.14.0 → 0.14.1
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/CHANGELOG.md +18 -2
- data/lib/inspec/plugins/fetcher.rb +8 -0
- data/lib/inspec/version.rb +1 -1
- data/test/helper.rb +4 -10
- data/test/unit/fetchers.rb +3 -0
- data/test/unit/fetchers/tar_test.rb +1 -1
- data/test/unit/fetchers/url_test.rb +2 -2
- metadata +2 -10
- data/examples/resource/controls/tiny.rb +0 -3
- data/examples/resource/inspec.yml +0 -10
- data/examples/resource/libraries/tiny.rb +0 -3
- data/lib/bundles/inspec-supermarket.rb +0 -13
- data/test/unit/mock/profiles/resource-tiny/inspec.yml +0 -10
- data/test/unit/mock/profiles/resource-tiny/libraries/resource.rb +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 84dfdf4c3180317c15fcb732fcf4cc0098b8177d
|
4
|
+
data.tar.gz: e239dd876de5734c0fd5ff9f3f539e55df91450b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3c608e883ca7d72f263e9e5758ad589391a59ea6b68873bd3d3febd3c98b5e0eeb61b8ae0a0ba913ede5b600088281b9fdb3d303863515b401680ac0cbe3bd2d
|
7
|
+
data.tar.gz: 5334c5fa729531fca7de775064fb3b82cd0f93efe7d0adf9e9b8b8c2bc28dea4ccfc1f4dd2abcf81af695e6ac79c275231ad18315f55655ead316c3a208942b0
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,19 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [0.14.
|
4
|
-
[Full Changelog](https://github.com/chef/inspec/compare/v0.
|
3
|
+
## [0.14.1](https://github.com/chef/inspec/tree/0.14.1) (2016-02-22)
|
4
|
+
[Full Changelog](https://github.com/chef/inspec/compare/v0.14.0...0.14.1)
|
5
|
+
|
6
|
+
**Implemented enhancements:**
|
7
|
+
|
8
|
+
- optimize appveyor [\#479](https://github.com/chef/inspec/pull/479) ([chris-rock](https://github.com/chris-rock))
|
9
|
+
- fix windows tests [\#478](https://github.com/chef/inspec/pull/478) ([srenatus](https://github.com/srenatus))
|
10
|
+
|
11
|
+
**Fixed bugs:**
|
12
|
+
|
13
|
+
- ignore `pax\_global\_header` as valid file [\#480](https://github.com/chef/inspec/pull/480) ([chris-rock](https://github.com/chris-rock))
|
14
|
+
|
15
|
+
## [v0.14.0](https://github.com/chef/inspec/tree/v0.14.0) (2016-02-22)
|
16
|
+
[Full Changelog](https://github.com/chef/inspec/compare/v0.13.0...v0.14.0)
|
5
17
|
|
6
18
|
**Fixed bugs:**
|
7
19
|
|
@@ -10,6 +22,10 @@
|
|
10
22
|
- bugfix: handle edge-cases in upstart service [\#474](https://github.com/chef/inspec/pull/474) ([arlimus](https://github.com/arlimus))
|
11
23
|
- replace targets with fetcher+reader system [\#473](https://github.com/chef/inspec/pull/473) ([arlimus](https://github.com/arlimus))
|
12
24
|
|
25
|
+
**Merged pull requests:**
|
26
|
+
|
27
|
+
- 0.14.0 [\#477](https://github.com/chef/inspec/pull/477) ([arlimus](https://github.com/arlimus))
|
28
|
+
|
13
29
|
## [v0.13.0](https://github.com/chef/inspec/tree/v0.13.0) (2016-02-19)
|
14
30
|
[Full Changelog](https://github.com/chef/inspec/compare/v0.12.0...v0.13.0)
|
15
31
|
|
@@ -33,6 +33,10 @@ module Inspec
|
|
33
33
|
end
|
34
34
|
end
|
35
35
|
|
36
|
+
BLACKLIST_FILES = [
|
37
|
+
'pax_global_header',
|
38
|
+
].freeze
|
39
|
+
|
36
40
|
class RelFetcher < Fetcher
|
37
41
|
attr_reader :files
|
38
42
|
attr_reader :prefix
|
@@ -56,6 +60,10 @@ module Inspec
|
|
56
60
|
|
57
61
|
def get_prefix(fs)
|
58
62
|
return '' if fs.empty?
|
63
|
+
|
64
|
+
# filter backlisted files
|
65
|
+
fs -= BLACKLIST_FILES
|
66
|
+
|
59
67
|
sorted = fs.sort_by(&:length)
|
60
68
|
get_folder_prefix(sorted)
|
61
69
|
end
|
data/lib/inspec/version.rb
CHANGED
data/test/helper.rb
CHANGED
@@ -17,6 +17,7 @@ end
|
|
17
17
|
require 'fileutils'
|
18
18
|
require 'pathname'
|
19
19
|
require 'tempfile'
|
20
|
+
require 'tmpdir'
|
20
21
|
require 'zip'
|
21
22
|
|
22
23
|
require 'utils/base_cli'
|
@@ -51,8 +52,6 @@ class MockLoader
|
|
51
52
|
undefined: { family: nil, release: nil, arch: nil },
|
52
53
|
}
|
53
54
|
|
54
|
-
@archives = {}
|
55
|
-
|
56
55
|
# pass the os identifier to emulate a specific operating system
|
57
56
|
def initialize(os = nil)
|
58
57
|
# selects operating system
|
@@ -266,9 +265,7 @@ class MockLoader
|
|
266
265
|
|
267
266
|
def self.profile_tgz(name)
|
268
267
|
path = File.join(home, 'mock', 'profiles', name)
|
269
|
-
|
270
|
-
dst = archive.path
|
271
|
-
archive.close
|
268
|
+
dst = File.join(Dir.tmpdir, Dir::Tmpname.make_tmpname(name, '.tar.gz'))
|
272
269
|
|
273
270
|
# generate relative paths
|
274
271
|
files = Dir.glob("#{path}/**/*")
|
@@ -277,16 +274,13 @@ class MockLoader
|
|
277
274
|
require 'inspec/archive/tar'
|
278
275
|
tag = Inspec::Archive::TarArchiveGenerator.new
|
279
276
|
tag.archive(path, relatives, dst)
|
280
|
-
@archives[dst] = archive
|
281
277
|
|
282
278
|
dst
|
283
279
|
end
|
284
280
|
|
285
281
|
def self.profile_zip(name, opts = {})
|
286
282
|
path = File.join(home, 'mock', 'profiles', name)
|
287
|
-
|
288
|
-
dst = archive.path
|
289
|
-
archive.close
|
283
|
+
dst = File.join(Dir.tmpdir, Dir::Tmpname.make_tmpname(name, '.zip'))
|
290
284
|
|
291
285
|
# rubyzip only works relative paths
|
292
286
|
files = Dir.glob("#{path}/**/*")
|
@@ -295,7 +289,7 @@ class MockLoader
|
|
295
289
|
require 'inspec/archive/zip'
|
296
290
|
zag = Inspec::Archive::ZipArchiveGenerator.new
|
297
291
|
zag.archive(path, relatives, dst)
|
298
|
-
|
292
|
+
|
299
293
|
dst
|
300
294
|
end
|
301
295
|
end
|
data/test/unit/fetchers.rb
CHANGED
@@ -48,6 +48,9 @@ describe Inspec::Plugins::RelFetcher do
|
|
48
48
|
# extract folder structure buildup
|
49
49
|
%w{/a /a/b /a/b/c} => %w{c},
|
50
50
|
%w{/a /a/b /a/b/c/d/e} => %w{e},
|
51
|
+
# ignore pax_global_header, which are commonly seen in github tars and are not
|
52
|
+
# ignored by all tar streaming tools, its not extracted by GNU tar since 1.14
|
53
|
+
%w{/pax_global_header /a/b} => %w{b},
|
51
54
|
}.each do |ins, outs|
|
52
55
|
describe 'empty profile' do
|
53
56
|
let(:in_files) { ins }
|
@@ -12,7 +12,7 @@ describe Fetchers::Tar do
|
|
12
12
|
_(reg['tar']).must_equal fetcher
|
13
13
|
end
|
14
14
|
|
15
|
-
describe 'applied to a
|
15
|
+
describe 'applied to a tar archive' do
|
16
16
|
let(:target) { MockLoader.profile_tgz('complete-profile') }
|
17
17
|
let(:res) { fetcher.resolve(target) }
|
18
18
|
|
@@ -82,7 +82,7 @@ describe Fetchers::Url do
|
|
82
82
|
let(:res) {
|
83
83
|
mock_open = Minitest::Mock.new
|
84
84
|
mock_open.expect :meta, {'content-type' => 'application/gzip'}
|
85
|
-
mock_open.expect :read, File.
|
85
|
+
mock_open.expect :read, File.open(mock_file, 'rb').read
|
86
86
|
fetcher.expects(:open).returns(mock_open)
|
87
87
|
fetcher.resolve(target)
|
88
88
|
}
|
@@ -115,7 +115,7 @@ describe Fetchers::Url do
|
|
115
115
|
let(:res) {
|
116
116
|
mock_open = Minitest::Mock.new
|
117
117
|
mock_open.expect :meta, {'content-type' => 'application/zip'}
|
118
|
-
mock_open.expect :read, File.
|
118
|
+
mock_open.expect :read, File.open(mock_file, 'rb').read
|
119
119
|
fetcher.expects(:open).returns(mock_open)
|
120
120
|
fetcher.resolve(target)
|
121
121
|
}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: inspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.14.
|
4
|
+
version: 0.14.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dominik Richter
|
@@ -207,9 +207,6 @@ files:
|
|
207
207
|
- examples/profile/controls/gordon.rb
|
208
208
|
- examples/profile/inspec.yml
|
209
209
|
- examples/profile/libraries/gordon_config.rb
|
210
|
-
- examples/resource/controls/tiny.rb
|
211
|
-
- examples/resource/inspec.yml
|
212
|
-
- examples/resource/libraries/tiny.rb
|
213
210
|
- inspec.gemspec
|
214
211
|
- lib/bundles/README.md
|
215
212
|
- lib/bundles/inspec-compliance.rb
|
@@ -224,7 +221,6 @@ files:
|
|
224
221
|
- lib/bundles/inspec-init/templates/profile/controls/example.rb
|
225
222
|
- lib/bundles/inspec-init/templates/profile/inspec.yml
|
226
223
|
- lib/bundles/inspec-init/templates/profile/libraries/.gitkeep
|
227
|
-
- lib/bundles/inspec-supermarket.rb
|
228
224
|
- lib/bundles/inspec-supermarket/README.md
|
229
225
|
- lib/bundles/inspec-supermarket/api.rb
|
230
226
|
- lib/bundles/inspec-supermarket/cli.rb
|
@@ -486,8 +482,6 @@ files:
|
|
486
482
|
- test/unit/mock/profiles/legacy-empty-metadata/metadata.rb
|
487
483
|
- test/unit/mock/profiles/legacy-simple-metadata/metadata.rb
|
488
484
|
- test/unit/mock/profiles/legacy-simple-metadata/test/.gitkeep
|
489
|
-
- test/unit/mock/profiles/resource-tiny/inspec.yml
|
490
|
-
- test/unit/mock/profiles/resource-tiny/libraries/resource.rb
|
491
485
|
- test/unit/mock/profiles/simple-metadata/inspec.yml
|
492
486
|
- test/unit/plugin_test.rb
|
493
487
|
- test/unit/profile_context_test.rb
|
@@ -563,7 +557,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
563
557
|
version: '0'
|
564
558
|
requirements: []
|
565
559
|
rubyforge_project:
|
566
|
-
rubygems_version: 2.
|
560
|
+
rubygems_version: 2.4.6
|
567
561
|
signing_key:
|
568
562
|
specification_version: 4
|
569
563
|
summary: Infrastructure and compliance testing.
|
@@ -729,8 +723,6 @@ test_files:
|
|
729
723
|
- test/unit/mock/profiles/legacy-empty-metadata/metadata.rb
|
730
724
|
- test/unit/mock/profiles/legacy-simple-metadata/metadata.rb
|
731
725
|
- test/unit/mock/profiles/legacy-simple-metadata/test/.gitkeep
|
732
|
-
- test/unit/mock/profiles/resource-tiny/inspec.yml
|
733
|
-
- test/unit/mock/profiles/resource-tiny/libraries/resource.rb
|
734
726
|
- test/unit/mock/profiles/simple-metadata/inspec.yml
|
735
727
|
- test/unit/plugin_test.rb
|
736
728
|
- test/unit/profile_context_test.rb
|
@@ -1,10 +0,0 @@
|
|
1
|
-
name: resource
|
2
|
-
title: InSpec Example Resources
|
3
|
-
maintainer: Chef Software, Inc.
|
4
|
-
copyright: Chef Software, Inc.
|
5
|
-
copyright_email: support@chef.io
|
6
|
-
license: Apache 2 license
|
7
|
-
summary: Demonstrates the use of InSpec custom resources
|
8
|
-
version: 1.0.0
|
9
|
-
supports:
|
10
|
-
- linux
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# encoding: utf-8
|
2
|
-
# author: Christoph Hartmann
|
3
|
-
# author: Dominik Richter
|
4
|
-
|
5
|
-
libdir = File.dirname(__FILE__)
|
6
|
-
$LOAD_PATH.unshift(libdir) unless $LOAD_PATH.include?(libdir)
|
7
|
-
|
8
|
-
module Supermarket
|
9
|
-
autoload :API, 'inspec-supermarket/api'
|
10
|
-
end
|
11
|
-
|
12
|
-
require 'inspec-supermarket/cli'
|
13
|
-
require 'inspec-supermarket/target'
|
@@ -1,10 +0,0 @@
|
|
1
|
-
name: complete
|
2
|
-
title: complete example profile
|
3
|
-
maintainer: Chef Software, Inc.
|
4
|
-
copyright: Chef Software, Inc.
|
5
|
-
copyright_email: support@chef.io
|
6
|
-
license: Proprietary, All rights reserved
|
7
|
-
summary: Testing stub
|
8
|
-
version: 1.0.0
|
9
|
-
supports:
|
10
|
-
- os-family: linux
|