Commit graph

1185 commits

Author SHA1 Message Date
Christoph Hartmann
c6c9d0278c 0.10.1 2016-02-05 18:52:44 +01:00
Dominik Richter
bb264897f4 wrap basecli in inspec module
Take care of a rare error which has Inspec undefined
2016-02-05 18:25:40 +01:00
Christoph Hartmann
be7aa8f0c4 0.10.0 2016-02-05 17:18:07 +01:00
Christoph Hartmann
b7a88dbd7a fix linting and unit test 2016-02-05 16:57:51 +01:00
Christoph Hartmann
f826c07af5 minor improvements 2016-02-05 14:55:12 +01:00
Christoph Hartmann
7e88f56917 move plugin to bundles 2016-02-05 14:48:55 +01:00
Christoph Hartmann
a55a4869d9 extract base cli class 2016-02-05 14:20:32 +01:00
Christoph Hartmann
7494854c60 implement profile upload 2016-02-05 14:18:05 +01:00
Christoph Hartmann
368f6ed56a refactor compliance plugin 2016-02-05 14:18:05 +01:00
Christoph Hartmann
2cb3d6f90f bugfix: rescue url error in url target helper 2016-02-05 14:15:57 +01:00
Christoph Hartmann
6c1b9fff9d do not try to load a profile if we have no token available 2016-02-05 14:15:57 +01:00
Christoph Hartmann
7f57b12258 refactor cli 2016-02-05 14:15:57 +01:00
Christoph Hartmann
823e30e9cf re-introduce compliance exec 2016-02-05 14:14:34 +01:00
Christoph Hartmann
0958327f06 improve url target helper, match github url with trailing / 2016-02-05 14:14:34 +01:00
Christoph Hartmann
6cf8ecf304 add target helper for compliance plugin, extract API methods from CLI 2016-02-05 14:14:34 +01:00
Christoph Hartmann
0b59dab9ea initial version of compliance plugin 2016-02-05 14:13:22 +01:00
Christoph Hartmann
bab7eb1986 improve styling 2016-02-05 14:06:55 +01:00
Christoph Hartmann
589db0bcd0 add registry for cli plugins 2016-02-05 14:06:55 +01:00
Stephan Renatus
f63a8ad1d5 upstart_service: add version fallback, fix regexp
before this regexp change, a service called "running" (hello integration
tests) would always be "running" ;)
2016-02-05 13:49:18 +01:00
Christoph Hartmann
e6ff20f91e add metadata warnings in structured hash 2016-02-04 18:46:11 +01:00
Christoph Hartmann
d7cb5a9ae0 adapt unit tests 2016-02-04 18:05:40 +01:00
Christoph Hartmann
ea63a39b40 improve code style 2016-02-04 17:01:38 +01:00
Christoph Hartmann
14a3100e41 simplify result value from profile check 2016-02-04 16:47:33 +01:00
Christoph Hartmann
7e19c5eec6 fix ignore errors option use in archive method 2016-02-04 16:41:59 +01:00
Christoph Hartmann
1796c3271b generate hash output for check and use it in inspec cli 2016-02-04 16:41:14 +01:00
Christoph Hartmann
6b7e5818fb expose source location in rule 2016-02-04 16:38:57 +01:00
Christoph Hartmann
d50b634879 bugfix: fix control tests 2016-02-04 16:38:57 +01:00
Christoph Hartmann
826d059b19 optimize json logger for line delimited JSON 2016-02-04 16:38:57 +01:00
Christoph Hartmann
907a4e1f33 add json stream logger for inspec check 2016-02-04 16:38:57 +01:00
Dominik Richter
ecb78e3a19 establish plugin loading dock 2016-02-04 14:43:51 +01:00
Stephan Renatus
e8c7452acf Inspec::Profile: document that it always reads with ignore_supports 2016-02-03 16:47:52 +01:00
Stephan Renatus
828d6ad443 Inspec::Profile fix @metadata 2016-02-03 16:47:49 +01:00
Stephan Renatus
cc60fa1e23 tar/zip: return empty-string if an entry is empty; zip: return ref 2016-02-03 14:38:46 +01:00
Stephan Renatus
1510f330a9 read and return metadata from archives, too
Note that this adds `ref: some/where/in/tarball/file` to the file
contents hash; it wasn't there before but it may be useful for error
reporting nonetheless.
2016-02-03 14:38:46 +01:00
Stephan Renatus
f335865377 WIP: kill all the checks that fail with tarballs.
current output:

    $ inspec check test/unit/mock/profiles/complete-profile.tgz
    I, [2016-02-03T10:22:21.377650 #13207]  INFO -- : Checking profile in test/unit/mock/profiles/complete-profile.tgz
    I, [2016-02-03T10:22:21.377745 #13207]  INFO -- : Found 1 rules.
    I, [2016-02-03T10:22:21.377771 #13207]  INFO -- : Rule definitions OK.
2016-02-03 14:38:46 +01:00
Stephan Renatus
889be88543 remove stray require 2016-02-03 14:04:55 +01:00
Stephan Renatus
79d171fb2c rubocop 2016-02-03 14:04:55 +01:00
Stephan Renatus
45f0cbff03 inspec/rspec: decouple reporting and formatting
If reporting is requested, register a "reporting formatter", i.e.,
Inspec::RSpecReporter, that does the same things JsonFormatter does, but
suppresses output.

When the report is then requested, it returns the output hash that
JsonFormatter aggregates.
2016-02-03 14:04:55 +01:00
Stephan Renatus
6789e089d7 Inspec::Runner: provide a report 2016-02-03 14:04:55 +01:00
Stephan Renatus
ff682532cf fix warning in #find_files[_or_error] 2016-02-01 16:32:47 +01:00
Dominik Richter
34bc94d13f mock resource operating systems for tests 2016-01-29 21:55:08 +01:00
Dominik Richter
4c1b6f7509 remove os check exposure in file resource 2016-01-29 21:55:08 +01:00
Christoph Hartmann
9cfc69cf15 0.9.11 2016-01-29 18:34:12 +01:00
Stephan Renatus
6fbd28c2bb runit_service: fix resource, improve integration tests
Turns out using `/usr/bin/yes` to imitate a daemon process is a TERRIBLE idea.
2016-01-29 17:03:05 +01:00
Christoph Hartmann
317b0cae9d lint check in user resource 2016-01-28 21:11:13 +01:00
Christoph Hartmann
6ccfbe5e95 bugfix: use freebsd netstat parser instead of linux netstat parser for solaris 2016-01-28 21:08:52 +01:00
Christoph Hartmann
35899ebce6 optimize style in user resource 2016-01-28 18:30:39 +01:00
Christoph Hartmann
202190ea56 fix user resource unit test 2016-01-28 18:30:39 +01:00
Christoph Hartmann
ef3dbbb35c improvement: make port parsing on solaris more reliable 2016-01-28 18:30:38 +01:00
Christoph Hartmann
678ee2b473 parse port information on solaris 10 and 11 via netstat 2016-01-28 18:30:38 +01:00
Christoph Hartmann
59f3214817 use id -a for solaris 2016-01-28 18:30:38 +01:00
Christoph Hartmann
bd1e5e4085 service resource for solaris 10 and 11 2016-01-28 18:30:38 +01:00
Christoph Hartmann
913191fb9e package resource for solaris 10 and 11 2016-01-28 18:30:38 +01:00
Christoph Hartmann
dd59dd9a5a use os.linux and os.windows where possible 2016-01-28 18:30:38 +01:00
Christoph Hartmann
a5f526b368 use freebsd file permission checks for solaris 2016-01-28 18:30:38 +01:00
Christoph Hartmann
2fd6aea357 extend etc_group support for all unix systems 2016-01-28 18:30:38 +01:00
Christoph Hartmann
058ec27d64 0.9.10 2016-01-25 17:45:43 +01:00
Stephan Renatus
56f22a1d2a resource/postgres_session: add integration tests, change error handling
this makes it work (tested with default-ubuntu-1404), but doesn't
improve the error handling (i.e., the skip_resource doesn't really
prevent the failure)
2016-01-25 16:44:53 +01:00
Stephan Renatus
9821c4c754 resource/launchd_service: correctly match non-running services 2016-01-25 16:29:08 +01:00
Christoph Hartmann
5506319ad8 Merge pull request #389 from chef/dr/write-id-to-json
bugfix: write given ID to metadata json
2016-01-25 07:22:19 -08:00
Dominik Richter
88d2b26387 bugfix: write given ID to metadata json
Whenever the user provides an ID under which the profile is scoped, write it out to JSON during generation.
2016-01-25 15:48:56 +01:00
Christoph Hartmann
cc0db43813 optimize the error output for missing registry keys to nil 2016-01-25 13:55:47 +01:00
Christoph Hartmann
b30720f926 Merge pull request #380 from chef/sr/service-override
add service overrides for picking specific service managers, add runit_service
2016-01-21 13:35:23 +01:00
Stephan Renatus
ef77e01229 service resources: fix service_ctl default/override handling 2016-01-21 11:35:34 +01:00
Dominik Richter
d10207caca warn about legacy supports fields in metadata
I.e.: Prevent users from writing `supports: linux` and similar. These are deprecated and will be removed. Also improve the warning to indicate what the user should do instead. Finally add tests to make sure we get all these.
2016-01-21 11:05:26 +01:00
Stephan Renatus
492c7f8146 runit_service: cleanup; fix "non-running-runit-service" test + recipe 2016-01-21 09:05:29 +01:00
Stephan Renatus
c761b8b40d service resources: further simplifications, debian/centos handling
I've recovered the debian/centos special handling of the `service`
binary, although I doubt that it's necessary.
2016-01-21 08:22:04 +01:00
Dominik Richter
cac102aeac add profile tests (non-legacy) 2016-01-20 21:57:23 +01:00
Stephan Renatus
3f39b35502 add runit_service resource, fix service_ctl handling 2016-01-20 17:54:16 +01:00
Stephan Renatus
709e4ca9e0 some code simplifications 2016-01-20 16:05:20 +01:00
Stephan Renatus
0e410df69d add *_service overrides, allowing for different control binaries 2016-01-20 15:33:18 +01:00
Dominik Richter
20b138778e bugfix: expose tests for docker unit-tests 2016-01-19 15:48:06 +01:00
Dominik Richter
c713a0af87 lint 2016-01-19 15:48:06 +01:00
Dominik Richter
22c6fa871d add code docs to rspec runner 2016-01-19 15:48:06 +01:00
Dominik Richter
611487e956 clearly identify legacy profile tests and fix identification 2016-01-19 15:48:06 +01:00
Dominik Richter
8c464965c1 extract example group creation
and restore profile tests that had been completely mocked until now
2016-01-19 15:48:06 +01:00
Dominik Richter
dd2d93fd6f completely separate rspec runner parts 2016-01-19 15:48:06 +01:00
Dominik Richter
21a92a0c4e isolate rspec-dsl in profile context 2016-01-19 15:48:06 +01:00
Dominik Richter
b991dd03bb flatten creation of profile context 2016-01-19 15:48:06 +01:00
Dominik Richter
21d9ae7e1d move resource dsl creation to resource plugin 2016-01-19 15:48:06 +01:00
Jason Reed
1807c688b8 Fix typo 2016-01-19 09:07:24 -05:00
Dominik Richter
b0ffe684ab freeze those versions 2016-01-15 21:41:20 +01:00
Christoph Hartmann
e9b94d55d1 0.9.9 2016-01-15 15:20:04 -05:00
Dominik Richter
acbc345321 make metadata.rb legacy mode consistent for supports
Before introducing InSpec profiles in https://github.com/chef/inspec/pull/252 we had `metadata.rb` keep all information. This included an undisclosed field called `supports`. However, this field was never actually used in practice. So for legacy profiles, this means that `supports` was ignored. In order to keep old profiles running in exactly the way they were before, ignore this field when reading from metadata.rb
2016-01-15 18:58:18 +01:00
Christoph Hartmann
b9978b5606 new rubocop fixes 2016-01-14 23:15:10 -05:00
Christoph Hartmann
46d85c2cbc fail test if lsof is not available 2016-01-14 23:03:51 -05:00
Jeremy W. Chalfant
9e40e6d9f3 my rubocop is different 2016-01-14 23:03:26 -05:00
Jeremy W. Chalfant
0681562fcd rubocop is nuts 2016-01-14 23:03:26 -05:00
Jeremy W. Chalfant
98a7e6303e fix remaining rubocop complaints 2016-01-14 23:03:26 -05:00
Jeremy W. Chalfant
2fc8ba1b83 fix lint complaint 2016-01-14 23:03:26 -05:00
Jeremy W. Chalfant
2d8c892298 use formmated lsof output to ensure accuracy and consistency across platforms 2016-01-14 23:03:26 -05:00
Jeremy W. Chalfant
adbc5b8ef4 sanity check and AIX tests 2016-01-14 23:03:26 -05:00
Jeremy W. Chalfant
2e7ab9bad7 fix rubocop complaint 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
388937e9b4 add aix user support 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
3b87e385d7 my rubocop is different 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
6cd801fbb9 rubocop is nuts 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
94a286929f fix remaining rubocop complaints 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
420aef7cb9 fix lint complaint 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
c8c676e1d6 use formmated lsof output to ensure accuracy and consistency across platforms 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
f31a9f35b5 sanity check and AIX tests 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
5a6b1bbddf fix rubocop complaint 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
fbe79d1bc4 add aix user support 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
b167854c18 my rubocop is different 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
bbed0e7164 rubocop is nuts 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
88656c9ea8 fix remaining rubocop complaints 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
2aceba417c fix lint complaint 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
d5a7bad414 superflous chomp 2016-01-14 23:03:25 -05:00
Jeremy W. Chalfant
b6649dd581 use formmated lsof output to ensure accuracy and consistency across platforms 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
55d7faec8a sanity check and AIX tests 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
a0bbb175c2 AIX packages 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
1d99afe623 fix rubocop complaint 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
3168e4d100 add aix user support 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
d51d86e6d8 disable cops 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
6bdb06fbe9 move lsof parsing to seperate method 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
c982daaf6e my rubocop is different 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
3211071b9f simplify lsof call 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
221d27423e rubocop is nuts 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
f817840d38 fix remaining rubocop complaints 2016-01-14 23:03:24 -05:00
Jeremy W. Chalfant
3a90ea3a74 fix lint complaint 2016-01-14 23:03:23 -05:00
Jeremy W. Chalfant
2c5cb06990 superflous chomp 2016-01-14 23:03:23 -05:00
Jeremy W. Chalfant
b9ce468886 add AIX service support 2016-01-14 23:03:23 -05:00
Jeremy W. Chalfant
d855602efe use formmated lsof output to ensure accuracy and consistency across platforms 2016-01-14 23:03:23 -05:00
Jeremy W. Chalfant
aef7f6de39 sanity check and AIX tests 2016-01-14 23:00:10 -05:00
Jeremy W. Chalfant
bc503f080d rename etc_group to etc_group_spec and etc_group test success on AIX 2016-01-14 23:00:10 -05:00
Jeremy W. Chalfant
db43739951 AIX packages 2016-01-14 23:00:10 -05:00
Jeremy W. Chalfant
506b0ea996 fix rubocop complaint 2016-01-14 23:00:10 -05:00
Jeremy W. Chalfant
26afecf857 add aix user support 2016-01-14 23:00:09 -05:00
Mark Harrison
f5780b69a4 Correctly detect UDP ports on linux
netstat on UDP lines doesn't display a port state (e.g. LISTEN), so make this
field optional when parsing the netstat line.
2016-01-14 22:53:38 -05:00
Christoph Hartmann
454a7e466d bugfix: only skip regkey if required 2016-01-14 22:39:17 -05:00
Dominik Richter
375f65c903 casecmp == 0 if both entries are the same 2016-01-15 04:18:48 +01:00
Dominik Richter
4092691a78 lint 2016-01-15 04:07:25 +01:00
Stephan Renatus
5c17f8b643 regexp github url targets, add tests for Inspec::Targests::UrlHelper
replacing occuring http:// with https:// is probably ok, github
redirects to https anyways
2016-01-14 12:05:58 -05:00
Jacob McCann
f25ab3a373 Fix systemd service enabled check 2016-01-11 15:32:33 -06:00
Christoph Hartmann
ab88c23ab6 0.9.8 2016-01-11 12:48:36 -05:00
Stephan Renatus
ee62499fc0 bugfix: ignore supports when generating a profile's json representation
without this, `inspec json PATH` does never contain rules != {}, because
of the usage of the mock backend
2016-01-11 09:16:06 +01:00
Christoph Hartmann
a1ddbe4cf2 explicitly ignore supports for inspec check 2016-01-10 23:59:57 -05:00
Stephan Renatus
a26dbe146d fix reading profiles bug
For reading the profiles metadata, we're using the train mock backend
through Inspec::Runner. The new `supports` feature never agrees with the
mock backend.

Now, it we figure out if this is a mock class and then just say that it
supports whatever we're asking for.

Tl;dr: there's probably a more beautiful solution to this.

Added a test case, but it fails -- while the command line interface
works fine.
2016-01-07 15:16:49 -08:00
Stephan Renatus
3ce8cd7d16 support old "supports" field in metadata
current compliance-profiles still have

```yaml
supports:
  - linux
```

and we might want to be a little backwards compatible, too.
2016-01-05 22:50:56 +01:00
Dominik Richter
26c0cd0871 lint 2016-01-03 09:49:40 +01:00
Dominik Richter
8953278204 unfortunately Enumerator#last is not supported 2016-01-03 09:40:17 +01:00
Christoph Hartmann
e1d7d30919 add deprecation warning for serverspec users 2016-01-03 00:03:24 +01:00
Christoph Hartmann
a72ba94f10 handle mount results with multiple entries 2016-01-03 00:03:24 +01:00
Christoph Hartmann
9930773f37 restrict mount functionality to linux 2016-01-03 00:03:24 +01:00
Christoph Hartmann
a5acb03e49 add mount resource 2016-01-03 00:03:24 +01:00
Christoph Hartmann
772df929f6 implement be_mounted.with for file resources 2016-01-03 00:03:24 +01:00
Christoph Hartmann
19ed6be39f more fine-grained utils parser 2016-01-02 22:41:58 +01:00
Christoph Hartmann
3be9ea18cc use 1.8 syntax for dash key values to be compatible with older ruby versions 2016-01-02 22:29:31 +01:00
Christoph Hartmann
c11c36058a separate os check 2016-01-02 21:25:22 +01:00
Dominik Richter
d6f48d3534 catch empty support clause 2015-12-31 17:57:59 +01:00
Dominik Richter
af8e4e93ca add supports keyword to profiles 2015-12-31 17:54:13 +01:00
Dominik Richter
2e0da6e9e8 unify metadata resolution 2015-12-31 12:49:18 +01:00
Dominik Richter
3db2dd756d resolve metadata from profile targets 2015-12-31 12:49:18 +01:00
Dominik Richter
e7b7f166cf dry folder resolver 2015-12-31 12:49:18 +01:00
Dominik Richter
96c9794cbf bugfix: reload inspec DSL after loading libraries 2015-12-29 19:27:00 +01:00
Dominik Richter
526932584d fix metadata validation 2015-12-28 13:35:38 +01:00
Dominik Richter
cfa2b9a39c fix metadata reading and parsing 2015-12-28 13:16:09 +01:00
Dominik Richter
cdc95df5ca keep metadata checks in metadata.rb 2015-12-28 13:07:21 +01:00
Dominik Richter
aef0cabde8 fix method length in inspec.check 2015-12-28 13:01:27 +01:00
Christoph Hartmann
0ab46ff5b1 rename metadata.yml to inspec.yml 2015-12-28 12:53:42 +01:00
Christoph Hartmann
1d4295ee4d remove owner/name restriction 2015-12-28 12:53:42 +01:00
Christoph Hartmann
06c1265b38 add support for .tgz extension. Thanks @srenatus 2015-12-28 12:53:42 +01:00
Christoph Hartmann
31c8509092 lint profile implementation 2015-12-28 12:53:42 +01:00
Christoph Hartmann
27150e5341 feature: generate profile archive 2015-12-28 12:53:42 +01:00
Christoph Hartmann
9da0e32f3d bugfix: only add path to load path if the test is located on filesystem 2015-12-28 12:53:42 +01:00
Christoph Hartmann
ebe54efd67 feature: load tests from zip and tar.gz 2015-12-28 12:53:42 +01:00
Christoph Hartmann
43c778078c feature: add support for metadata.yml 2015-12-28 12:53:42 +01:00
Christoph Hartmann
9e8e64319e improvement: better detection of directory types 2015-12-28 12:53:42 +01:00
Christoph Hartmann
bb97044338 bugfix: fix profile check 2015-12-28 12:53:38 +01:00
Christoph Hartmann
9fda6d3e89 bugfix: use skip_control instead of skip_rule as default 2015-12-28 12:07:57 +01:00
Christoph Hartmann
e122e48ae5 change profile directory from 'test' to 'controls' 2015-12-28 12:07:57 +01:00
Dominik Richter
7473dea1f2 ignore auto-generated controls during verify check 2015-12-23 11:11:49 +01:00
Dominik Richter
b2e0fac625 change check errors on summary+title to warnings 2015-12-23 09:18:59 +01:00
Dominik Richter
d2509f745e reference correct fields from metadata in inspec check 2015-12-23 09:18:59 +01:00
Dominik Richter
25706b3612 0.9.7 2015-12-21 16:31:48 +01:00
Christoph Hartmann
ca33ac9288 Merge pull request #321 from jeremymv2/security_policy_fixes
Fixing issue with security policy always returning nil
2015-12-17 17:55:01 +01:00
Jeremy J. Miller
f1e8483cd8 Removed extra whitespace 2015-12-17 08:56:43 -05:00
Stephan Renatus
3a1dcb7669 teach cmp matcher octal tricks 2015-12-16 11:32:31 +01:00
Jeremy J. Miller
af55cb41d8 Added ensure block to always delete file 2015-12-15 14:40:57 -05:00
Jeremy J. Miller
652392918d Fixing issue with security policy always returning nil 2015-12-15 10:29:54 -05:00
Stephan Renatus
a5a780f920 reset rspec configuration when initializing Inspec::Runner
fixes https://github.com/chef/kitchen-inspec/issues/15
2015-12-15 14:00:53 +01:00
troyready
29f954f7f3 add release to el pkg version & catch missing linebreaks
Package release info (e.g. '19.el7') is often required to determine if
a system has been properly patched.

Lines like the following from rpm are messing up the version returned
by the package resource:
"...\nVersion     : 1.8.6p3                           Vendor: Red Hat, Inc.\n..."
Correcting this with a new conditional check.
2015-12-11 13:05:22 -08:00
Dominik Richter
cc67d8d4c0 0.9.6 2015-12-11 18:34:15 +01:00
Dominik Richter
494ed708d4 Merge pull request #318 from chef/chris-rock/cmp-matcher
matcher for less-restrictive comparison
2015-12-11 17:58:47 +01:00
Christoph Hartmann
0185751ff5 lint exception 2015-12-11 17:48:05 +01:00
Christoph Hartmann
52cd0b38d1 update style of float? detection 2015-12-11 17:26:46 +01:00
Christoph Hartmann
31f8863701 update failure message for cmp matcher 2015-12-11 17:19:28 +01:00
Christoph Hartmann
53728ee03a lint fix 2015-12-11 17:17:01 +01:00
Christoph Hartmann
9f0755be99 add new cmp matcher that eases the comparison for values 2015-12-11 17:02:48 +01:00
Christoph Hartmann
b2c457cf22 lint: remove redundant return 2015-12-11 15:39:49 +01:00
Christoph Hartmann
6badbf4dc9 bugfix: abort registry_key resource if the os is not supported 2015-12-11 15:39:49 +01:00
Christoph Hartmann
90e1eb9e39 bugfix: always ensure the script resource is properly initialized, even if the os is not supported 2015-12-11 15:39:49 +01:00
Christoph Hartmann
7422306ba7 lint fix 2015-12-11 14:34:28 +01:00
Christoph Hartmann
95c7ba8fe5 simplify prompt color setting 2015-12-11 14:29:31 +01:00
Christoph Hartmann
100df85b27 improve shell prompt and help 2015-12-11 14:03:36 +01:00
Stephan Renatus
652d51e9dc [resource/port] add port(addr, port) variant 2015-12-08 20:33:36 +01:00
Stephan Renatus
8532dd7034 [resource/port] change attribute names to plural, indicating arrays
see discussion in #256
2015-12-08 20:33:36 +01:00
Adam Leff
c146a76679 File permission checks should return false unless file exists
Currently, #readable?, #writeable?, and #executable? will incorrectly
return true if the file does not exist.

In addition, I took the opportunity to refactor the File resource to
make it easier to write unit tests and supplied a full unit test
suite for this resource.
2015-12-08 19:57:34 +01:00
Stephan Renatus
7a1cd660c3 [resources/processes] add users, states attribute; update docs
processes('bash').user does not actually make much sense for a resource
that is a list -- different entries can belong to different users.
Analogous for processes('bash').state.

The attributes 'users' and 'states' expose the unique values
corresponding to that property of entries in the process list.

Fixes #295.
2015-12-08 13:06:27 +01:00
Stephan Renatus
bf15c05f7f Merge pull request #299 from chef/chris-rock/os-resource
support string and symbol for os resource
2015-12-07 12:22:58 +01:00
Stephan Renatus
33f2fe3dde hide summary output when running interactively (inspec shell) 2015-12-07 11:12:41 +01:00
Stephan Renatus
17a80d32a9 remove second welcome 2015-12-07 11:12:41 +01:00
Stephan Renatus
c6fd8c5880 mention help [resource] 2015-12-07 11:12:41 +01:00
Christoph Hartmann
dcb09802d3 support string and symbol for os resource 2015-12-07 11:11:55 +01:00
Stephan Renatus
79f48afa6c [resources/apache_conf]: add tests, fix bug
before, the resource would throw an exception when include_files
returned nil (i.e., [].flatten!)

added basic unit tests capturing the include_files behaviour
2015-12-07 10:50:48 +01:00
Christoph Hartmann
7c393a1891 Merge pull request #291 from chef/sr/fix-find_files
revert to old find_files interface
2015-12-04 14:41:36 +01:00
Stephan Renatus
324ba14a6b fix optional type argument handling 2015-12-04 14:27:32 +01:00
Stephan Renatus
390e0fcca7 restore old find_files interface
- fixes #276
- basic test for find_files
2015-12-04 14:15:45 +01:00
Adam Leff
e0c356dae7 Adding support for Wind River Linux
WRL is used as the OS on Cisco Nexus devices and acts like a Red
Hat variant. These changes add support for WRL.
2015-12-03 17:41:11 -05:00
Christoph Hartmann
766fe47b87 add inline documentation 2015-12-01 10:56:47 +01:00
Christoph Hartmann
6a6cff1526 feature: add help command for resources 2015-12-01 10:56:47 +01:00
Christoph Hartmann
2c8a8ccb25 improvement: add etc_group support for centos and add integration test 2015-12-01 10:40:12 +01:00
Dominik Richter
762562b967 0.9.5 2015-11-25 15:43:31 +01:00
Dominik Richter
468159772f 0.9.4 2015-11-24 20:04:31 +01:00
Christoph Hartmann
a822dcee1a optimize code structure 2015-11-24 18:39:32 +01:00
Christoph Hartmann
0bd7f557d5 bugfix: do manual split of id result because we cannot use whitespace 2015-11-24 18:35:10 +01:00
Christoph Hartmann
be62b76dc2 improvement: add checks to ensure the requested file is available 2015-11-24 16:46:17 +01:00
Christoph Hartmann
60e2a3512f add init resource 2015-11-24 16:46:17 +01:00
Christoph Hartmann
0657525f4d lint json resource 2015-11-24 16:46:17 +01:00
Christoph Hartmann
62ecdf6a1f rewrite extraction of values 2015-11-24 16:46:17 +01:00
Christoph Hartmann
b70ba447b2 simplify method returns 2015-11-24 10:41:46 +01:00
Christoph Hartmann
129395141b bugfix: make registry_key case-insensitive for properties 2015-11-23 16:26:17 +01:00
Dominik Richter
75d8b9388b 0.9.3 2015-11-20 23:33:18 +01:00
Seth Chisamore
606f618fc7 ensure all test directories are on the runner $LOAD_PATH
This change builds on chef/kitchen-inspec#12. All test directories should
be on the `$LOAD_PATH` when `Inspec::Runner` executes the test suites with
`RSpec::Core::Runner`. This will allow things like `require 'spec_helper'`
to work as expected.
2015-11-20 00:14:57 -05:00
Seth Chisamore
beade346bf Add Windows support to the os_env resource
This change allows checks like:

```
describe os_env('PATH') do
  its('split') { should include('C:\wix') }
end
```
2015-11-19 15:41:00 +01:00
Dominik Richter
a04ff021c6 bugfix: support multiple computed calls to describe
fixes #246
2015-11-19 14:28:42 +01:00
Christoph Hartmann
b899430541 bugfix: add attribute reader to make the command accessible to script resource 2015-11-17 22:40:07 +01:00
Christoph Hartmann
cb95951e03 simplify script resource 2015-11-17 22:28:11 +01:00
Christoph Hartmann
cd35d82326 improvement: reimplement registry key resource 2015-11-17 22:28:11 +01:00
Christoph Hartmann
c6166e335b lint: fix lint error 2015-11-17 12:29:33 +01:00
Christoph Hartmann
850af710b0 improvement: add v6 protocol detection, it netstat does not deliver the information 2015-11-17 12:15:49 +01:00
Christoph Hartmann
9e3dccbfa3 improvement: restrice rescue to URI parse error 2015-11-17 12:14:05 +01:00
Christoph Hartmann
a4c47e1cd7 bugfix: fix regular expression to leave port colon 2015-11-17 12:12:59 +01:00
Christoph Hartmann
0de7549a64 lint: remove trailing whitespace 2015-11-16 21:44:12 +01:00
Christoph Hartmann
7898c1d29c improvement: optimize regular expression, catch parse errors and ignore header lines 2015-11-16 20:33:49 +01:00
Christoph Hartmann
83e6f46724 add centos support for port 2015-11-16 20:32:43 +01:00
Dominik Richter
17ce88b63d api: don't force root on os_env 2015-11-13 12:10:22 +01:00
Dominik Richter
069075b48a lint 2015-11-13 10:46:04 +01:00
Christoph Hartmann
7b179872bd extend upstart implementation to support systemv services 2015-11-13 09:54:30 +01:00
Dominik Richter
6cbe3466fb update rubocop 0.35.1 2015-11-13 01:03:15 +01:00
Dominik Richter
007594eef7 lint 2015-11-13 00:48:52 +01:00
Dominik Richter
b47409fd73 0.9.2 2015-11-05 18:40:24 +01:00
Dominik Richter
faa0b41803 bugfix: correct add_content call to new param structure
this was breaking inspec shell
2015-11-05 18:35:38 +01:00
Dominik Richter
b31501ab93 0.9.1 2015-11-04 00:51:16 +01:00
Dominik Richter
6c36720bd1 0.9.0 2015-11-03 03:04:57 +01:00
Dominik Richter
6e548364f4 bugfix: dont skip controls during json generation 2015-11-03 01:10:05 +01:00
Dominik Richter
ea66947b36 dont warn on command not existing on mock backend 2015-11-03 00:35:45 +01:00
Dominik Richter
6e8c4f02a1 fix typo 2015-11-03 00:35:45 +01:00
Christoph Hartmann
9d32bc7f81 improvement: fail properly if os is not supported 2015-11-02 22:58:20 +00:00
Christoph Hartmann
b1153685a4 bugfix: relax fail for command.exist? for inspec check command 2015-11-02 22:52:04 +00:00
Dominik Richter
7a07c02b4d alias rule instead of recreating it 2015-11-02 22:43:20 +01:00
Dominik Richter
ccabe55608 api: change require/include_rules -> require/include_controls 2015-11-02 22:26:20 +01:00
Dominik Richter
f976730a27 api: make control the default keyword 2015-11-02 22:26:20 +01:00
Dominik Richter
9aec339d9f disable class length metrics on profile context for now 2015-11-02 17:47:04 +01:00
Dominik Richter
de8437caa6 feature: introduce group title for files 2015-11-02 17:31:56 +01:00
Dominik Richter
93ee171dfa bugfix: use full path when resolving files 2015-11-02 16:43:39 +01:00
Dominik Richter
31d42b0212 lint: ignore line length on runner for now 2015-11-02 15:06:48 +01:00
Dominik Richter
421d7ecaa9 feature: auto-load libraries in profiles 2015-11-02 15:06:48 +01:00
Dominik Richter
f410ee3dba simplify folder resolver 2015-11-02 15:06:48 +01:00
Dominik Richter
22bf549e0b api: change library loading from /lib -> /libraries 2015-11-02 15:06:48 +01:00
Christoph Hartmann
d470803c37 improve command.exist? for more operating systems 2015-11-02 12:06:42 +01:00
Dominik Richter
13a6538acf temporarily disable rubocop metric on profile 2015-11-02 10:06:35 +01:00
Christoph Hartmann
ea47c5add8 use new internal structure for inspect check 2015-11-02 09:59:15 +01:00
Christoph Hartmann
4a676f55c3 remove dup method users, use usernames, fix example 2015-11-02 00:22:08 +01:00
Dominik Richter
d328919370 simplify resiliance 2015-11-01 23:48:29 +01:00
Christoph Hartmann
cdab39079a improvement: make os_env command more robust 2015-11-01 23:22:01 +01:00
Christoph Hartmann
1be689b77e remove exit_status and only call split if we have a string 2015-11-01 23:21:08 +01:00
Christoph Hartmann
324fa4881f do not offer stderr method via os_env 2015-11-01 23:14:12 +01:00
Christoph Hartmann
1941606b9e deactivate group policy for now 2015-11-01 22:39:30 +01:00
Christoph Hartmann
9e53556379 fix os_env example 2015-10-31 11:55:10 +01:00
Dominik Richter
24451469ca api: method_missing doesnt resolve hashmaps
Since #its has its(pun) own way of handling calls with a dot-notation, the full call is never passed to the resource. For example:

```ruby
describe json('file') do
  its('a.b.c') { should eq 123 }
end
```

This is resolved to calling `json('file').a.b.c` and thus doesnt work as an intended `json('file').send('a.b.c'). For now use
regular its-behavior of calling `json('file').params ...  its(%w{a b c}) { should ... }`.

Its' behavior must be improved.
2015-10-27 16:35:43 +01:00
Dominik Richter
8daf8dfa86 lint 2015-10-27 03:07:38 +01:00
Dominik Richter
59a8ca6639 construct profile in legacy structure
This is a temporary commit to achieve compliance with other components. It will be overturned before the final release.
2015-10-27 02:29:11 +01:00
Dominik Richter
5720aa3294 bugfix: detect filename+line for all example blocks 2015-10-27 02:29:11 +01:00
Dominik Richter
32e5e3ec29 move to symbols-based fields in profile params 2015-10-27 02:29:11 +01:00
Christoph Hartmann
cdb30c356f add apache base config 2015-10-27 02:20:29 +01:00
Dominik Richter
b280203d03 consistently set an empty logger in non-verbose mode 2015-10-26 18:27:46 +01:00
Dominik Richter
471a723b83 restore parse_passwd_line to be public, thanks @chris-rock 2015-10-26 17:16:05 +01:00
Dominik Richter
d5973d1189 bugfix: harmonize postgres session handling 2015-10-26 16:59:46 +01:00
Dominik Richter
e76b83a24e bugfix: mysql conf and session handling 2015-10-26 16:58:42 +01:00
Dominik Richter
5485111907 bugfix: support missing conf path for postgres_conf 2015-10-26 16:50:49 +01:00
Dominik Richter
414bf6b1fa bugfix: handle empty processes result 2015-10-26 16:49:26 +01:00
Dominik Richter
ec6d1e680a support postgres_session resource 2015-10-26 16:47:45 +01:00
Dominik Richter
ee0e9fc7c1 mock outer dsl attributes method 2015-10-26 16:44:20 +01:00
Dominik Richter
1613add894 bugfix: group policy needs a name for init 2015-10-26 16:40:21 +01:00
Dominik Richter
6dc0a3b638 rename inetd_config -> inetd_conf
be consistent with the filename
2015-10-26 16:21:51 +01:00
Dominik Richter
0ac3c412aa bugfix: support empty content in simpleconfig 2015-10-26 16:16:42 +01:00
Dominik Richter
03fe892899 bugfix: handle empty parseconfig options 2015-10-26 16:13:48 +01:00
Dominik Richter
69be6acae8 bugfix: fail on missing access to /etc/group 2015-10-26 16:11:28 +01:00
Dominik Richter
95242bf9c2 add content parser tests 2015-10-26 15:50:57 +01:00
Dominik Richter
9d1dcef469 bugfix: remove '/' prefix from folder 2015-10-26 13:06:44 +01:00
Dominik Richter
090281fb0b lint 2015-10-26 12:34:35 +01:00
Dominik Richter
b58a4b3f43 rename vulcanosec -> inspec 2015-10-26 12:34:15 +01:00
Christoph Hartmann
4bcfc76f27 simplify auditd name 2015-10-26 12:15:29 +01:00
Dominik Richter
05eb8df687 lint 2015-10-26 12:09:43 +01:00
Dominik Richter
76f7282e2c add yard header to profile#check 2015-10-26 12:07:03 +01:00
Dominik Richter
83082b2e7b feature: bring back profile check 2015-10-26 11:58:41 +01:00
Dominik Richter
b0bef37b06 support chef audit folder structure 2015-10-26 11:53:09 +01:00
Dominik Richter
9c1f258707 dont fail on missing rule body source 2015-10-26 11:46:43 +01:00
Dominik Richter
9703f3c747 bugfix: provide source code for rules in json 2015-10-26 11:46:43 +01:00
Dominik Richter
80b8b319d9 api: auto-include library files for inspec profile 2015-10-26 11:46:43 +01:00
Dominik Richter
07e3d749be skip empty file content 2015-10-26 11:46:43 +01:00
Dominik Richter
8f0c9c890e bugfix: fix path prefix in folder resolution 2015-10-26 11:46:43 +01:00
Dominik Richter
73b7b3c99a bugfix: point to metadata.rb instead of vmetadata.rb 2015-10-26 11:46:43 +01:00
Dominik Richter
45f7057f30 lint 2015-10-26 04:39:16 +01:00
Dominik Richter
c326e08739 remove old verify code 2015-10-26 00:35:18 +01:00
Dominik Richter
93b4db01ca add rules to profile information 2015-10-26 00:35:18 +01:00
Dominik Richter
a62ce0e14b create json from profile metadata 2015-10-26 00:35:18 +01:00
Christoph Hartmann
24e23f3db4 bugfix: fix regular expression for apt 2015-10-25 22:32:50 +01:00
Christoph Hartmann
b7777d265e improve fail warning. thanks @arlimus 2015-10-25 21:47:27 +01:00
Christoph Hartmann
d75e16546c improvement: file resource check precondition and add file permission check 2015-10-25 21:35:35 +01:00
Christoph Hartmann
98d5a40686 generalize matcher 2015-10-25 21:33:36 +01:00
Christoph Hartmann
3c76ed6e37 integration test for file 2015-10-24 11:15:53 +02:00
Christoph Hartmann
25783ea283 fail with warning, if users use contain matcher 2015-10-24 11:15:53 +02:00
Christoph Hartmann
a407e3b6ce bugfix: parse " with apt urls 2015-10-24 11:15:52 +02:00
Christoph Hartmann
0bbb70302d bugfix: fix kernel_module in combination with CentOS 5 & sudo 2015-10-23 13:57:37 +02:00
Christoph Hartmann
66a2be7f33 improvement: add complete linux support for kernel_module 2015-10-23 13:57:03 +02:00
Christoph Hartmann
4574c07954 improvement: support all linux os for kernel_parameter 2015-10-23 13:30:14 +02:00
Christoph Hartmann
c177a511fa add opensuse support for user resource 2015-10-23 12:14:00 +02:00
Christoph Hartmann
20afebc1a6 improvement: support package for opensuse 2015-10-23 12:14:00 +02:00
Christoph Hartmann
022ec31529 bugfix: rpm does not return exit code if package is not available, work around that 2015-10-23 12:14:00 +02:00
Christoph Hartmann
86bdb9903b bugfix: only return true and false for package installed? 2015-10-23 12:14:00 +02:00
Christoph Hartmann
773bd0e971 improvement: add opensuse support for service resource 2015-10-23 12:14:00 +02:00
Christoph Hartmann
28c497a492 bugfix: support for sudo and service on debian 2015-10-23 12:14:00 +02:00
Christoph Hartmann
807ee03e8b bugfix: fix regular expression to detect services on freebsd 2015-10-23 12:14:00 +02:00
Christoph Hartmann
eca6476ced bugfix: use absolute path for SysV service to work well with sudo on CentOS 5 2015-10-23 12:14:00 +02:00
Christoph Hartmann
836697585b bugfix: Ubuntu 10.04 initctl does not support show-config 2015-10-23 12:14:00 +02:00
Christoph Hartmann
579e465b88 0.8.0 2015-10-21 21:49:07 +02:00
Christoph Hartmann
e3cc942f60 bugfix: always return false instead of nil in case a service could not be determined 2015-10-21 20:54:46 +02:00
Christoph Hartmann
3d2bca2eaf add centos support to service resource 2015-10-21 20:54:46 +02:00
Christoph Hartmann
571de7fc68 fix typos in os skip message 2015-10-21 20:54:46 +02:00
Christoph Hartmann
17279f9ef8 add centos support 2015-10-21 20:54:46 +02:00
Christoph Hartmann
20bbb4c960 add more usage headers 2015-10-21 19:30:01 +02:00
Christoph Hartmann
035e39ee8c simplify yum implementation 2015-10-20 19:57:00 +02:00
Dominik Richter
cea48ceb5a remove leftover comments 2015-10-19 12:07:14 +02:00
Dominik Richter
20dae26925 split methods for processing rules and checks after loading 2015-10-19 09:49:40 +02:00
Dominik Richter
08707eb2d2 temporarily attach the dsl to all example objects
TODO: Remove this!! It is very dangerous to do this here. The goal of this is to make the audit DSL available to all describe blocks. Right now, these blocks are executed outside the scope of this run, thus not gaining ony of the DSL pieces. To circumvent this, the full DSL is attached to the examples
2015-10-18 19:50:12 +02:00
Dominik Richter
d66f874e1c feature: support expect keyword in rules 2015-10-18 19:14:22 +02:00
Dominik Richter
2cebd3fc31 allow loading without file and line info
i.e. dynamic loading only
2015-10-18 19:11:56 +02:00
Dominik Richter
c6cc45c28e bugfix: add rspec core dsl to profile context 2015-10-18 19:11:56 +02:00
Christoph Hartmann
89f003f61b bugfix: add missing uri import 2015-10-17 19:33:52 +02:00
Dominik Richter
c01e1f2c74 lint: make sure variables are defined 2015-10-17 00:03:41 +02:00
Dominik Richter
df07e768d0 lint: replace obsolete URI.regexp 2015-10-17 00:03:37 +02:00
Dominik Richter
9224d5db58 bugfix: support ruby 1.9.3 2015-10-15 23:28:37 +02:00
Dominik Richter
56b88cba1d create factory for backend creation 2015-10-15 22:42:06 +02:00
Dominik Richter
6a51a5be00 remove rake tasks for runner tests
they are now found in train
2015-10-15 14:36:34 +02:00
Dominik Richter
132019a6d9 move backend creation to profile context
keeping it in the runner will create conflicts with rspec runners
2015-10-14 23:44:15 +02:00
Dominik Richter
be614e9056 migrate backend to Train project 2015-10-14 23:13:49 +02:00
Christoph Hartmann
693af465f6 fix lint issue 2015-10-12 13:23:11 +02:00
Christoph Hartmann
03f07e1a3e add to_s methods to resources, fixes #98 2015-10-12 13:01:58 +02:00
Christoph Hartmann
c5924b697c 0.7.0 2015-10-12 12:11:53 +02:00