inspec 0.19.0 → 0.19.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 +22 -2
- data/Gemfile +4 -0
- data/README.md +16 -0
- data/inspec.gemspec +1 -1
- data/lib/inspec/version.rb +1 -1
- data/lib/matchers/matchers.rb +4 -4
- data/lib/resources/command.rb +28 -2
- data/lib/resources/shadow.rb +5 -1
- data/test/unit/resources/command_test.rb +35 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7bd506ba6b5577bc33e6a4421be6891fe2bc664
|
4
|
+
data.tar.gz: dcfde04ac7bc6c6119112d719c2a56a00f324043
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dca0da99fe77fa5df70d636352b7db12768c566c3eec2d92a16d21c98ab650f642318e681736e9117f005e9322a3cedd9b0a7f28a8aa801ad73d281a4d57567e
|
7
|
+
data.tar.gz: 47cabf8903b98d634bfb158b64eba3e8750d5e24b3fd7cbe2c3d258daece4cf9b32ce257dfa03833c263e5fb6041273e68b630eae48a19d566daf172b33bf678
|
data/CHANGELOG.md
CHANGED
@@ -1,7 +1,27 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [0.19.
|
4
|
-
[Full Changelog](https://github.com/chef/inspec/compare/v0.
|
3
|
+
## [0.19.1](https://github.com/chef/inspec/tree/0.19.1) (2016-04-18)
|
4
|
+
[Full Changelog](https://github.com/chef/inspec/compare/v0.19.0...0.19.1)
|
5
|
+
|
6
|
+
**Implemented enhancements:**
|
7
|
+
|
8
|
+
- configure command execution shells to sh/bash/zsh [\#659](https://github.com/chef/inspec/pull/659) ([arlimus](https://github.com/arlimus))
|
9
|
+
- be descriptive on shadow.entries [\#657](https://github.com/chef/inspec/pull/657) ([arlimus](https://github.com/arlimus))
|
10
|
+
|
11
|
+
**Fixed bugs:**
|
12
|
+
|
13
|
+
- bugfix: print cmp expectations [\#656](https://github.com/chef/inspec/pull/656) ([arlimus](https://github.com/arlimus))
|
14
|
+
|
15
|
+
**Closed issues:**
|
16
|
+
|
17
|
+
- gem install failure on RHEL 7.2 Ruby 2.0 [\#653](https://github.com/chef/inspec/issues/653)
|
18
|
+
|
19
|
+
**Merged pull requests:**
|
20
|
+
|
21
|
+
- add requirements for gem installation to readme [\#655](https://github.com/chef/inspec/pull/655) ([arlimus](https://github.com/arlimus))
|
22
|
+
|
23
|
+
## [v0.19.0](https://github.com/chef/inspec/tree/v0.19.0) (2016-04-17)
|
24
|
+
[Full Changelog](https://github.com/chef/inspec/compare/v0.18.0...v0.19.0)
|
5
25
|
|
6
26
|
**Implemented enhancements:**
|
7
27
|
|
data/Gemfile
CHANGED
@@ -2,6 +2,10 @@
|
|
2
2
|
source 'https://rubygems.org'
|
3
3
|
gemspec
|
4
4
|
|
5
|
+
group :development do
|
6
|
+
gem 'r-train', github: 'chef/train'
|
7
|
+
end
|
8
|
+
|
5
9
|
# pin dependency for Ruby 1.9.3 since bundler is not
|
6
10
|
# detecting that net-ssh 3 does not work with 1.9.3
|
7
11
|
if Gem::Version.new(RUBY_VERSION) <= Gem::Version.new('1.9.3')
|
data/README.md
CHANGED
@@ -47,6 +47,22 @@ InSpec requires Ruby ( >1.9 ).
|
|
47
47
|
|
48
48
|
### Install it via rubygems.org
|
49
49
|
|
50
|
+
When installing from source, gem dependencies may require ruby build tools to be installed.
|
51
|
+
|
52
|
+
For CentOS/RedHat/Fedora:
|
53
|
+
|
54
|
+
```bash
|
55
|
+
yum -y install ruby ruby-devel make gcc
|
56
|
+
```
|
57
|
+
|
58
|
+
For Ubuntu:
|
59
|
+
|
60
|
+
```bash
|
61
|
+
apt-get -y install ruby ruby-dev gcc make
|
62
|
+
```
|
63
|
+
|
64
|
+
To install inspec from [rubygems](https://rubygems.org/):
|
65
|
+
|
50
66
|
```bash
|
51
67
|
gem install inspec
|
52
68
|
```
|
data/inspec.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
25
25
|
spec.require_paths = ['lib']
|
26
26
|
|
27
|
-
spec.add_dependency 'r-train', '~> 0.10.
|
27
|
+
spec.add_dependency 'r-train', '~> 0.10.5'
|
28
28
|
spec.add_dependency 'thor', '~> 0.19'
|
29
29
|
spec.add_dependency 'json', '~> 1.8'
|
30
30
|
spec.add_dependency 'rainbow', '~> 2'
|
data/lib/inspec/version.rb
CHANGED
data/lib/matchers/matchers.rb
CHANGED
@@ -282,13 +282,13 @@ RSpec::Matchers.define :cmp do |first_expected|
|
|
282
282
|
end
|
283
283
|
|
284
284
|
failure_message do |actual|
|
285
|
-
actual = '0' + actual.to_s(8) if octal?(expected)
|
286
|
-
"\nexpected: value #{@operation} #{expected}\n got: #{actual}\n\n(compared using `cmp` matcher)\n"
|
285
|
+
actual = '0' + actual.to_s(8) if octal?(@expected)
|
286
|
+
"\nexpected: value #{@operation} #{@expected}\n got: #{actual}\n\n(compared using `cmp` matcher)\n"
|
287
287
|
end
|
288
288
|
|
289
289
|
failure_message_when_negated do |actual|
|
290
|
-
actual = '0' + actual.to_s(8) if octal?(expected)
|
291
|
-
"\nexpected: value ! #{@operation} #{expected}\n got: #{actual}\n\n(compared using `cmp` matcher)\n"
|
290
|
+
actual = '0' + actual.to_s(8) if octal?(@expected)
|
291
|
+
"\nexpected: value ! #{@operation} #{@expected}\n got: #{actual}\n\n(compared using `cmp` matcher)\n"
|
292
292
|
end
|
293
293
|
end
|
294
294
|
|
data/lib/resources/command.rb
CHANGED
@@ -4,6 +4,8 @@
|
|
4
4
|
# author: Christoph Hartmann
|
5
5
|
# license: All rights reserved
|
6
6
|
|
7
|
+
require 'shellwords'
|
8
|
+
|
7
9
|
module Inspec::Resources
|
8
10
|
class Cmd < Inspec.resource(1)
|
9
11
|
name 'command'
|
@@ -17,14 +19,25 @@ module Inspec::Resources
|
|
17
19
|
end
|
18
20
|
"
|
19
21
|
|
22
|
+
SHELLS = {
|
23
|
+
'sh' => ->(x, path = 'sh') { path + ' -c ' + Shellwords.escape(x) },
|
24
|
+
'bash' => ->(x, path = 'bash') { path + ' -c ' + Shellwords.escape(x) },
|
25
|
+
'zsh' => ->(x, path = 'zsh') { path + ' -c ' + Shellwords.escape(x) },
|
26
|
+
}.freeze
|
27
|
+
|
20
28
|
attr_reader :command
|
21
29
|
|
22
|
-
def initialize(cmd)
|
30
|
+
def initialize(cmd, opts = {})
|
23
31
|
@command = cmd
|
32
|
+
unless opts.is_a?(Hash)
|
33
|
+
skip_resource "Called #{self} with invalid command options. See the resource help for valid examples."
|
34
|
+
opts = {}
|
35
|
+
end
|
36
|
+
@opts = opts
|
24
37
|
end
|
25
38
|
|
26
39
|
def result
|
27
|
-
@result ||= inspec.backend.run_command(
|
40
|
+
@result ||= inspec.backend.run_command(wrap_cmd)
|
28
41
|
end
|
29
42
|
|
30
43
|
def stdout
|
@@ -59,5 +72,18 @@ module Inspec::Resources
|
|
59
72
|
def to_s
|
60
73
|
"Command #{@command}"
|
61
74
|
end
|
75
|
+
|
76
|
+
private
|
77
|
+
|
78
|
+
def wrap_cmd
|
79
|
+
shell = @opts[:shell]
|
80
|
+
return @command if shell.nil?
|
81
|
+
|
82
|
+
wrapper = SHELLS[shell]
|
83
|
+
# TODO: fail with an error if the command isn't found
|
84
|
+
return @command if wrapper.nil?
|
85
|
+
|
86
|
+
wrapper.call(@command)
|
87
|
+
end
|
62
88
|
end
|
63
89
|
end
|
data/lib/resources/shadow.rb
CHANGED
@@ -67,7 +67,11 @@ module Inspec::Resources
|
|
67
67
|
end
|
68
68
|
|
69
69
|
def entries
|
70
|
-
@lines.map
|
70
|
+
@lines.map do |line|
|
71
|
+
params = parse_shadow_line(line)
|
72
|
+
Shadow.new(@path, content: line,
|
73
|
+
filters: "#{@filters} on entry user=#{params['user']}")
|
74
|
+
end
|
71
75
|
end
|
72
76
|
|
73
77
|
def users(name = nil)
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
# author: Christoph Hartmann
|
3
|
+
# author: Dominik Richter
|
4
|
+
|
5
|
+
require 'helper'
|
6
|
+
require 'inspec/resource'
|
7
|
+
|
8
|
+
describe Inspec::Resources::Cmd do
|
9
|
+
it 'runs regular commands' do
|
10
|
+
x = rand.to_s
|
11
|
+
load_resource('command', x).method(:wrap_cmd).call
|
12
|
+
.must_equal x
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'runs sh commands' do
|
16
|
+
x = rand.to_s
|
17
|
+
load_resource('command', '$("'+x+'")', {shell: 'sh'})
|
18
|
+
.method(:wrap_cmd).call
|
19
|
+
.must_equal "sh -c \\$\\(\\\"#{x}\\\"\\)"
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'runs bash commands' do
|
23
|
+
x = rand.to_s
|
24
|
+
load_resource('command', '$("'+x+'")', {shell: 'bash'})
|
25
|
+
.method(:wrap_cmd).call
|
26
|
+
.must_equal "bash -c \\$\\(\\\"#{x}\\\"\\)"
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'runs zsh commands' do
|
30
|
+
x = rand.to_s
|
31
|
+
load_resource('command', '$("'+x+'")', {shell: 'zsh'})
|
32
|
+
.method(:wrap_cmd).call
|
33
|
+
.must_equal "zsh -c \\$\\(\\\"#{x}\\\"\\)"
|
34
|
+
end
|
35
|
+
end
|
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: 0.19.
|
4
|
+
version: 0.19.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Dominik Richter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: r-train
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.10.
|
19
|
+
version: 0.10.5
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 0.10.
|
26
|
+
version: 0.10.5
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: thor
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -541,6 +541,7 @@ files:
|
|
541
541
|
- test/unit/resources/auditd_rules_test.rb
|
542
542
|
- test/unit/resources/bond_test.rb
|
543
543
|
- test/unit/resources/bridge_test.rb
|
544
|
+
- test/unit/resources/command_test.rb
|
544
545
|
- test/unit/resources/csv_test.rb
|
545
546
|
- test/unit/resources/etc_group_test.rb
|
546
547
|
- test/unit/resources/file_test.rb
|
@@ -811,6 +812,7 @@ test_files:
|
|
811
812
|
- test/unit/resources/auditd_rules_test.rb
|
812
813
|
- test/unit/resources/bond_test.rb
|
813
814
|
- test/unit/resources/bridge_test.rb
|
815
|
+
- test/unit/resources/command_test.rb
|
814
816
|
- test/unit/resources/csv_test.rb
|
815
817
|
- test/unit/resources/etc_group_test.rb
|
816
818
|
- test/unit/resources/file_test.rb
|