test-kitchen 1.5.0.rc.1 → 1.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +4 -33
- data/CHANGELOG.md +46 -1
- data/CONTRIBUTING.md +17 -0
- data/Gemfile.proxy_tests +1 -2
- data/MAINTAINERS.md +24 -0
- data/features/kitchen_init_command.feature +50 -4
- data/lib/kitchen/cli.rb +43 -5
- data/lib/kitchen/command.rb +1 -0
- data/lib/kitchen/config.rb +4 -0
- data/lib/kitchen/generator/init.rb +4 -4
- data/lib/kitchen/instance.rb +7 -0
- data/lib/kitchen/logger.rb +4 -7
- data/lib/kitchen/provisioner/chef_base.rb +2 -1
- data/lib/kitchen/provisioner/chef_solo.rb +1 -0
- data/lib/kitchen/provisioner/chef_zero.rb +5 -0
- data/lib/kitchen/ssh.rb +1 -1
- data/lib/kitchen/transport/base.rb +7 -0
- data/lib/kitchen/transport/ssh.rb +13 -6
- data/lib/kitchen/transport/winrm.rb +133 -49
- data/lib/kitchen/version.rb +1 -2
- data/spec/kitchen/collection_spec.rb +1 -1
- data/spec/kitchen/logger_spec.rb +10 -0
- data/spec/kitchen/provisioner/chef_base_spec.rb +2 -2
- data/spec/kitchen/provisioner/chef_solo_spec.rb +13 -0
- data/spec/kitchen/provisioner/chef_zero_spec.rb +13 -0
- data/spec/kitchen/ssh_spec.rb +1 -1
- data/spec/kitchen/transport/ssh_spec.rb +2 -1
- data/spec/kitchen/transport/winrm_spec.rb +178 -48
- data/support/chef_base_install_command.ps1 +19 -12
- data/templates/driver/README.md.erb +1 -1
- data/test-kitchen.gemspec +2 -1
- metadata +26 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 08a62137db48122bfe93dc6da4e462fc95941bcf
|
4
|
+
data.tar.gz: 72a2c0b1c5ecea3f074386e41316ccd3e6d1e565
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 40a9ceb94182a02f14007b5396e21d729246e2ab51f45e7cbb934b70a605446a53d83001a73ad0b0b4ae8a742bf6656e540f67e016064546ce817158bb7e488f
|
7
|
+
data.tar.gz: f326bbd4cb7f2d454a9fb5f42cef75799641782fda6d681cb1bb44059d49fe1c5304d5325b858ac5594d6cacf1ada040cc7f1d32cfcba799a70d6014176c7d98
|
data/.travis.yml
CHANGED
@@ -1,21 +1,12 @@
|
|
1
1
|
language: ruby
|
2
2
|
|
3
3
|
rvm:
|
4
|
-
- 2.2.
|
5
|
-
- 2.1
|
4
|
+
- 2.2.4
|
5
|
+
- 2.1.8
|
6
6
|
- 2.0.0
|
7
7
|
- ruby-head
|
8
8
|
|
9
|
-
env:
|
10
|
-
- RUBYGEMS_VERSION=
|
11
|
-
- RUBYGEMS_VERSION=2.4.5
|
12
|
-
- RUBYGEMS_VERSION=2.2.2
|
13
|
-
- RUBYGEMS_VERSION=2.1.11
|
14
|
-
- RUBYGEMS_VERSION=2.0.14
|
15
|
-
- RUBYGEMS_VERSION=1.8.29
|
16
|
-
|
17
9
|
before_install:
|
18
|
-
- if [ -n "$RUBYGEMS_VERSION" ]; then gem update --system $RUBYGEMS_VERSION; fi
|
19
10
|
- gem --version
|
20
11
|
|
21
12
|
bundler_args: --without guard
|
@@ -24,13 +15,14 @@ sudo: false
|
|
24
15
|
|
25
16
|
matrix:
|
26
17
|
include:
|
27
|
-
- rvm: 2.2
|
18
|
+
- rvm: 2.2.4
|
28
19
|
sudo: required
|
29
20
|
dist: trusty
|
30
21
|
# To run the proxy tests we need additional gems than what Test Kitchen normally uses
|
31
22
|
# for testing
|
32
23
|
gemfile: Gemfile.proxy_tests
|
33
24
|
before_install:
|
25
|
+
- gem install bundler
|
34
26
|
- sudo apt-get update
|
35
27
|
- sudo apt-get -y install squid3 git curl
|
36
28
|
env:
|
@@ -51,27 +43,6 @@ matrix:
|
|
51
43
|
- sudo cat /var/log/squid3/access.log
|
52
44
|
allow_failures:
|
53
45
|
- rvm: ruby-head
|
54
|
-
exclude:
|
55
|
-
- rvm: 2.2
|
56
|
-
env: RUBYGEMS_VERSION=2.2.2
|
57
|
-
- rvm: 2.2
|
58
|
-
env: RUBYGEMS_VERSION=2.1.11
|
59
|
-
- rvm: 2.2
|
60
|
-
env: RUBYGEMS_VERSION=2.0.14
|
61
|
-
- rvm: 2.2
|
62
|
-
env: RUBYGEMS_VERSION=1.8.29
|
63
|
-
- rvm: 2.1
|
64
|
-
env: RUBYGEMS_VERSION=1.8.29
|
65
|
-
- rvm: 2.0.0
|
66
|
-
env: RUBYGEMS_VERSION=1.8.29
|
67
|
-
- rvm: ruby-head
|
68
|
-
env: RUBYGEMS_VERSION=2.2.2
|
69
|
-
- rvm: ruby-head
|
70
|
-
env: RUBYGEMS_VERSION=2.1.11
|
71
|
-
- rvm: ruby-head
|
72
|
-
env: RUBYGEMS_VERSION=2.0.14
|
73
|
-
- rvm: ruby-head
|
74
|
-
env: RUBYGEMS_VERSION=1.8.29
|
75
46
|
|
76
47
|
notifications:
|
77
48
|
irc: "chat.freenode.net#kitchenci"
|
data/CHANGELOG.md
CHANGED
@@ -4,24 +4,43 @@
|
|
4
4
|
|
5
5
|
### Bug fixes
|
6
6
|
|
7
|
+
* PR [#499][]: Use single quotes in Rake/Thorfile templates ([@chr4][])
|
8
|
+
* PR [#697][]: Set default log level even if you forget to add it to command line arg ([@scotthain][])
|
7
9
|
* PR [#816][]: Fix SuSe OS Busser install ([@Peuserik][])
|
10
|
+
* PR [#824][]: Fix handling of chunked ssh output ([@kingpong][])
|
8
11
|
* PR [#833][]: Updates the gem path to install everything in /tmp/verifier ([@scotthain][])
|
12
|
+
* PR [#835][]: WinRM connect (with retry) is failing on Windows ([@Stift][])
|
13
|
+
* PR [#864][]: Fix Windows Omnibus Install ([@dissonanz][])
|
9
14
|
* PR [#878][]: write install_command to file and invoke on the instance to avoid command too long on windows ([@mwrock][])
|
15
|
+
* PR [#897][]: typo: on != no ([@miketheman][])
|
16
|
+
* PR [#919][]: Because net/ssh is no longer including timeout.rb, we need to so that Ruby doesn't think Timeout belongs to the TK class ([@tyler-ball][])
|
10
17
|
|
11
18
|
### New features
|
12
19
|
|
13
20
|
* PR [#741][]: Add shell verifier ([@sawanoboly][])
|
14
21
|
* PR [#752][]: Make lazyhash enumerable ([@caboteria][])
|
22
|
+
* PR [#827][]: update omnibus url to chef.io ([@andrewelizondo][])
|
23
|
+
* PR [#857][]: add cli option to set the test path ([@chris-rock][])
|
15
24
|
* PR [#892][]: Adding proxy tests to the Travis.yml ([@tyler-ball][])
|
16
25
|
* PR [#895][]: Adding in ChefConfig support to enable loading proxy config from chef config files ([@tyler-ball][])
|
26
|
+
* PR [#901][]: Add support for --profile-ruby ([@martinb3][])
|
27
|
+
* PR [#906][]: Adding Maintainers file ([@cheeseplus][])
|
17
28
|
|
18
29
|
### Improvements
|
19
30
|
|
31
|
+
* PR [#753][]: add tests for empty or missing files ([@miketheman][])
|
32
|
+
* PR [#776][]: Add more options for WinRM ([@smurawski][])
|
20
33
|
* PR [#782][]: Use [`mixlib-install`](https://github.com/chef/mixlib-install) to generate chef install command. ([@thommay][])
|
21
34
|
* PR [#804][]: Drop Ruby 1.9 from TravisCI build matrix ([@thommay][])
|
22
35
|
* PR [#813][]: Honor proxy ENV variables ([@mcquin][])
|
36
|
+
* PR [#825][]: Add hooks for instance cleanup before exit ([@coderanger][])
|
37
|
+
* PR [#872][]: Added try/catch around main and set error action to stop ([@mcallb][])
|
23
38
|
* PR [#885][]: Running the chef_base provisioner install_command via sudo, and command_prefix support ([@adamleff][])
|
24
39
|
* PR [#896][]: Fixing garbled output for chef_zero provisioner ([@someara][])
|
40
|
+
* PR [#908][]: Updating to the latest release of net-ssh to consume https://github.com/net-ssh/net-ssh/pull/280 ([@tyler-ball][])
|
41
|
+
* PR [#911][]: Put Travis on a diet ([@cheeseplus][])
|
42
|
+
* PR [#912][]: The netssh 3.0 update returns a different error on connection timeout than 2.9.2 did, adding it to the retry list ([@tyler-ball][])
|
43
|
+
|
25
44
|
|
26
45
|
## 1.4.2 / 2015-08-03
|
27
46
|
|
@@ -742,6 +761,7 @@ The initial release.
|
|
742
761
|
[#481]: https://github.com/test-kitchen/test-kitchen/issues/481
|
743
762
|
[#489]: https://github.com/test-kitchen/test-kitchen/issues/489
|
744
763
|
[#498]: https://github.com/test-kitchen/test-kitchen/issues/498
|
764
|
+
[#499]: https://github.com/test-kitchen/test-kitchen/issues/499
|
745
765
|
[#504]: https://github.com/test-kitchen/test-kitchen/issues/504
|
746
766
|
[#507]: https://github.com/test-kitchen/test-kitchen/issues/507
|
747
767
|
[#510]: https://github.com/test-kitchen/test-kitchen/issues/510
|
@@ -787,6 +807,7 @@ The initial release.
|
|
787
807
|
[#675]: https://github.com/test-kitchen/test-kitchen/issues/675
|
788
808
|
[#688]: https://github.com/test-kitchen/test-kitchen/issues/688
|
789
809
|
[#689]: https://github.com/test-kitchen/test-kitchen/issues/689
|
810
|
+
[#697]: https://github.com/test-kitchen/test-kitchen/issues/697
|
790
811
|
[#704]: https://github.com/test-kitchen/test-kitchen/issues/704
|
791
812
|
[#711]: https://github.com/test-kitchen/test-kitchen/issues/711
|
792
813
|
[#728]: https://github.com/test-kitchen/test-kitchen/issues/728
|
@@ -796,25 +817,43 @@ The initial release.
|
|
796
817
|
[#737]: https://github.com/test-kitchen/test-kitchen/issues/737
|
797
818
|
[#741]: https://github.com/test-kitchen/test-kitchen/issues/741
|
798
819
|
[#752]: https://github.com/test-kitchen/test-kitchen/issues/752
|
820
|
+
[#753]: https://github.com/test-kitchen/test-kitchen/issues/753
|
821
|
+
[#776]: https://github.com/test-kitchen/test-kitchen/issues/776
|
799
822
|
[#782]: https://github.com/test-kitchen/test-kitchen/issues/782
|
800
823
|
[#801]: https://github.com/test-kitchen/test-kitchen/issues/801
|
801
824
|
[#802]: https://github.com/test-kitchen/test-kitchen/issues/802
|
802
825
|
[#804]: https://github.com/test-kitchen/test-kitchen/issues/804
|
803
826
|
[#813]: https://github.com/test-kitchen/test-kitchen/issues/813
|
804
827
|
[#816]: https://github.com/test-kitchen/test-kitchen/issues/816
|
828
|
+
[#824]: https://github.com/test-kitchen/test-kitchen/issues/824
|
829
|
+
[#825]: https://github.com/test-kitchen/test-kitchen/issues/825
|
830
|
+
[#827]: https://github.com/test-kitchen/test-kitchen/issues/827
|
805
831
|
[#833]: https://github.com/test-kitchen/test-kitchen/issues/833
|
832
|
+
[#835]: https://github.com/test-kitchen/test-kitchen/issues/835
|
833
|
+
[#857]: https://github.com/test-kitchen/test-kitchen/issues/857
|
834
|
+
[#864]: https://github.com/test-kitchen/test-kitchen/issues/864
|
835
|
+
[#872]: https://github.com/test-kitchen/test-kitchen/issues/872
|
806
836
|
[#878]: https://github.com/test-kitchen/test-kitchen/issues/878
|
807
837
|
[#885]: https://github.com/test-kitchen/test-kitchen/issues/885
|
808
838
|
[#892]: https://github.com/test-kitchen/test-kitchen/issues/892
|
809
839
|
[#895]: https://github.com/test-kitchen/test-kitchen/issues/895
|
810
840
|
[#896]: https://github.com/test-kitchen/test-kitchen/issues/896
|
841
|
+
[#897]: https://github.com/test-kitchen/test-kitchen/issues/897
|
842
|
+
[#901]: https://github.com/test-kitchen/test-kitchen/issues/901
|
843
|
+
[#906]: https://github.com/test-kitchen/test-kitchen/issues/906
|
844
|
+
[#908]: https://github.com/test-kitchen/test-kitchen/issues/908
|
845
|
+
[#911]: https://github.com/test-kitchen/test-kitchen/issues/911
|
846
|
+
[#912]: https://github.com/test-kitchen/test-kitchen/issues/912
|
847
|
+
[#919]: https://github.com/test-kitchen/test-kitchen/issues/919
|
811
848
|
[@Annih]: https://github.com/Annih
|
812
849
|
[@ChrisLundquist]: https://github.com/ChrisLundquist
|
813
850
|
[@MarkGibbons]: https://github.com/MarkGibbons
|
814
851
|
[@Peuserik]: https://github.com/Peuserik
|
852
|
+
[@Stift]: https://github.com/Stift
|
815
853
|
[@adamhjk]: https://github.com/adamhjk
|
816
854
|
[@adamleff]: https://github.com/adamleff
|
817
855
|
[@afiune]: https://github.com/afiune
|
856
|
+
[@andrewelizondo]: https://github.com/andrewelizondo
|
818
857
|
[@arangamani]: https://github.com/arangamani
|
819
858
|
[@arunthampi]: https://github.com/arunthampi
|
820
859
|
[@benlangfeld]: https://github.com/benlangfeld
|
@@ -822,10 +861,14 @@ The initial release.
|
|
822
861
|
[@bryanwb]: https://github.com/bryanwb
|
823
862
|
[@caboteria]: https://github.com/caboteria
|
824
863
|
[@calavera]: https://github.com/calavera
|
864
|
+
[@cheeseplus]: https://github.com/cheeseplus
|
865
|
+
[@chr4]: https://github.com/chr4
|
866
|
+
[@chris-rock]: https://github.com/chris-rock
|
825
867
|
[@chrishenry]: https://github.com/chrishenry
|
826
868
|
[@coderanger]: https://github.com/coderanger
|
827
869
|
[@curiositycasualty]: https://github.com/curiositycasualty
|
828
870
|
[@daniellockard]: https://github.com/daniellockard
|
871
|
+
[@dissonanz]: https://github.com/dissonanz
|
829
872
|
[@ekrupnik]: https://github.com/ekrupnik
|
830
873
|
[@fnichol]: https://github.com/fnichol
|
831
874
|
[@fnordfish]: https://github.com/fnordfish
|
@@ -849,12 +892,14 @@ The initial release.
|
|
849
892
|
[@juliandunn]: https://github.com/juliandunn
|
850
893
|
[@justincampbell]: https://github.com/justincampbell
|
851
894
|
[@kamalim]: https://github.com/kamalim
|
895
|
+
[@kingpong]: https://github.com/kingpong
|
852
896
|
[@kisoku]: https://github.com/kisoku
|
853
897
|
[@lamont-granquist]: https://github.com/lamont-granquist
|
854
898
|
[@lloydde]: https://github.com/lloydde
|
855
899
|
[@manul]: https://github.com/manul
|
856
900
|
[@martinb3]: https://github.com/martinb3
|
857
901
|
[@mattray]: https://github.com/mattray
|
902
|
+
[@mcallb]: https://github.com/mcallb
|
858
903
|
[@mconigliaro]: https://github.com/mconigliaro
|
859
904
|
[@mcquin]: https://github.com/mcquin
|
860
905
|
[@metadave]: https://github.com/metadave
|
@@ -890,4 +935,4 @@ The initial release.
|
|
890
935
|
[@tyler-ball]: https://github.com/tyler-ball
|
891
936
|
[@whiteley]: https://github.com/whiteley
|
892
937
|
[@zl4bv]: https://github.com/zl4bv
|
893
|
-
[@zts]: https://github.com/zts
|
938
|
+
[@zts]: https://github.com/zts
|
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
# Release Process
|
2
|
+
|
3
|
+
This release process applies to all Test Kitchen projects, but each project may have additional requirements.
|
4
|
+
|
5
|
+
1. Perform a Github diff between master and the last released version. Determine whether included PRs justify a patch, minor or major version release.
|
6
|
+
2. Check out the master branch of the project being prepared for release.
|
7
|
+
3. Branch into a release-branch of the form `150_release_prep`.
|
8
|
+
4. Modify the `version.rb` file to specify the version for releasing.
|
9
|
+
5. Update the changelog to include what is being released.
|
10
|
+
1. For these projects we use [PimpMyChangelog](https://github.com/pcreux/pimpmychangelog). All this does is make the CHANGELOG look pretty - for now we manually import the PRs / Issues and categorize them.
|
11
|
+
2. Start a [diff](https://github.com/test-kitchen/test-kitchen/compare/v1.4.2...master) in Github between master and the last release
|
12
|
+
3. Look for all the merged PRs and add them to the CHANGELOG.md under the appropriate category. They should have the form `* PR #999: PR Description (@author)`.
|
13
|
+
4. Install and run `pimpmychangelog`. This should change all the PR numbers and @ mentions into links.
|
14
|
+
6. `git commit` the `version.rb` and `CHANGELOG.md` changes to the branch and setup a PR for them. Allow the PR to run any automated tests and review the CHANGELOG for accuracy.
|
15
|
+
7. Merge the PR to master after review.
|
16
|
+
8. Switch your local copy to the master branch and `git pull` to pull in the release preperation changes.
|
17
|
+
9. Run `rake release` on the master branch.
|
data/Gemfile.proxy_tests
CHANGED
data/MAINTAINERS.md
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# Maintainers
|
2
|
+
|
3
|
+
This file lists how the Test Kitchen project is maintained. When making changes
|
4
|
+
to the system, this file tells you who needs to review your patch. You need a :+1: vote
|
5
|
+
from at least 2 members of the project team listed below. Additionally, you need to not
|
6
|
+
receive a veto from the Lieutenant or the Project Lead.
|
7
|
+
|
8
|
+
## Project Lead
|
9
|
+
|
10
|
+
* [Fletcher Nichol](https://github.com/fnichol)
|
11
|
+
|
12
|
+
## Lieutenants
|
13
|
+
* [Tyler Ball](https://github.com/tyler-ball)
|
14
|
+
|
15
|
+
## Maintainers
|
16
|
+
|
17
|
+
* [Seth Thomas](https://github.com/cheeseplus)
|
18
|
+
* [Adam Leff](https://github.com/adamleff)
|
19
|
+
* [Jennifer Davis](https://github.com/iennae)
|
20
|
+
* [Matt Wrock](https://github.com/mwrock)
|
21
|
+
* [Steven Murawski](http://github.com/smurawski)
|
22
|
+
* [Chris Hartmann](https://github.com/chris-rock)
|
23
|
+
* [Sean Omeara](http://github.com/someara)
|
24
|
+
* [Robb Kidd](https://github.com/robbkidd)
|
@@ -167,10 +167,10 @@ Feature: Add Test Kitchen support to an existing project
|
|
167
167
|
Then the file "Rakefile" should contain:
|
168
168
|
"""
|
169
169
|
begin
|
170
|
-
require
|
170
|
+
require 'kitchen/rake_tasks'
|
171
171
|
Kitchen::RakeTasks.new
|
172
172
|
rescue LoadError
|
173
|
-
puts
|
173
|
+
puts '>>>>> Kitchen gem not loaded, omitting tasks' unless ENV['CI']
|
174
174
|
end
|
175
175
|
"""
|
176
176
|
|
@@ -186,10 +186,10 @@ Feature: Add Test Kitchen support to an existing project
|
|
186
186
|
Then the file "Thorfile" should contain:
|
187
187
|
"""
|
188
188
|
begin
|
189
|
-
require
|
189
|
+
require 'kitchen/thor_tasks'
|
190
190
|
Kitchen::ThorTasks.new
|
191
191
|
rescue LoadError
|
192
|
-
puts
|
192
|
+
puts '>>>>> Kitchen gem not loaded, omitting tasks' unless ENV['CI']
|
193
193
|
end
|
194
194
|
"""
|
195
195
|
|
@@ -226,3 +226,49 @@ Feature: Add Test Kitchen support to an existing project
|
|
226
226
|
attributes:
|
227
227
|
|
228
228
|
"""
|
229
|
+
|
230
|
+
Scenario: Running init with an empty file metadata.rb sets an empty run list
|
231
|
+
Given an empty file named "metadata.rb"
|
232
|
+
When I successfully run `kitchen init`
|
233
|
+
Then the file ".kitchen.yml" should contain exactly:
|
234
|
+
"""
|
235
|
+
---
|
236
|
+
driver:
|
237
|
+
name: vagrant
|
238
|
+
|
239
|
+
provisioner:
|
240
|
+
name: chef_solo
|
241
|
+
|
242
|
+
platforms:
|
243
|
+
- name: ubuntu-14.04
|
244
|
+
- name: centos-7.1
|
245
|
+
|
246
|
+
suites:
|
247
|
+
- name: default
|
248
|
+
run_list:
|
249
|
+
attributes:
|
250
|
+
|
251
|
+
"""
|
252
|
+
|
253
|
+
Scenario: Running init with no metadata.rb file sets an empty run list
|
254
|
+
Given a file named "metadata.rb" does not exist
|
255
|
+
When I successfully run `kitchen init`
|
256
|
+
Then the file ".kitchen.yml" should contain exactly:
|
257
|
+
"""
|
258
|
+
---
|
259
|
+
driver:
|
260
|
+
name: vagrant
|
261
|
+
|
262
|
+
provisioner:
|
263
|
+
name: chef_solo
|
264
|
+
|
265
|
+
platforms:
|
266
|
+
- name: ubuntu-14.04
|
267
|
+
- name: centos-7.1
|
268
|
+
|
269
|
+
suites:
|
270
|
+
- name: default
|
271
|
+
run_list:
|
272
|
+
attributes:
|
273
|
+
|
274
|
+
"""
|
data/lib/kitchen/cli.rb
CHANGED
@@ -93,6 +93,14 @@ module Kitchen
|
|
93
93
|
:type => :boolean
|
94
94
|
end
|
95
95
|
|
96
|
+
# Sets the test_base_path method_options
|
97
|
+
# @api private
|
98
|
+
def self.test_base_path
|
99
|
+
method_option :test_base_path,
|
100
|
+
:aliases => "-t",
|
101
|
+
:desc => "Set the base path of the tests"
|
102
|
+
end
|
103
|
+
|
96
104
|
desc "list [INSTANCE|REGEXP|all]", "Lists one or more instances"
|
97
105
|
method_option :bare,
|
98
106
|
:aliases => "-b",
|
@@ -165,6 +173,7 @@ module Kitchen
|
|
165
173
|
[Future DEPRECATION, use --concurrency]
|
166
174
|
Run a #{action} against all matching instances concurrently.
|
167
175
|
DESC
|
176
|
+
test_base_path
|
168
177
|
log_options
|
169
178
|
define_method(action) do |*args|
|
170
179
|
update_config!
|
@@ -210,6 +219,7 @@ module Kitchen
|
|
210
219
|
:type => :boolean,
|
211
220
|
:default => false,
|
212
221
|
:desc => "Invoke init command if .kitchen.yml is missing"
|
222
|
+
test_base_path
|
213
223
|
log_options
|
214
224
|
def test(*args)
|
215
225
|
update_config!
|
@@ -334,23 +344,51 @@ module Kitchen
|
|
334
344
|
#
|
335
345
|
# @api private
|
336
346
|
def update_config!
|
337
|
-
if
|
338
|
-
|
339
|
-
@config.log_level = level
|
340
|
-
end
|
347
|
+
@config.log_level = log_level if log_level
|
348
|
+
|
341
349
|
unless options[:log_overwrite].nil?
|
342
350
|
@config.log_overwrite = options[:log_overwrite]
|
343
351
|
end
|
344
352
|
|
353
|
+
if options[:test_base_path]
|
354
|
+
# ensure we have an absolute path
|
355
|
+
@config.test_base_path = File.absolute_path(options[:test_base_path])
|
356
|
+
end
|
357
|
+
|
345
358
|
# Now that we have required configs, lets create our file logger
|
346
359
|
Kitchen.logger = Kitchen.default_file_logger(
|
347
|
-
|
360
|
+
log_level,
|
348
361
|
options[:log_overwrite]
|
349
362
|
)
|
350
363
|
|
351
364
|
update_parallel!
|
352
365
|
end
|
353
366
|
|
367
|
+
# Validate the log level from the config / CLI options, defaulting
|
368
|
+
# to :info if the supplied level is empty or invalid
|
369
|
+
#
|
370
|
+
# @api private
|
371
|
+
def log_level
|
372
|
+
return unless options[:log_level]
|
373
|
+
return @log_level if @log_level
|
374
|
+
|
375
|
+
level = options[:log_level].downcase.to_sym
|
376
|
+
unless valid_log_level?(level)
|
377
|
+
level = :info
|
378
|
+
banner "WARNING - invalid log level specified: " \
|
379
|
+
"\"#{options[:log_level]}\" - reverting to :info log level."
|
380
|
+
end
|
381
|
+
|
382
|
+
@log_level = level
|
383
|
+
end
|
384
|
+
|
385
|
+
# Check to whether a provided log level is valid
|
386
|
+
#
|
387
|
+
# @api private
|
388
|
+
def valid_log_level?(level)
|
389
|
+
!Util.to_logger_level(level).nil?
|
390
|
+
end
|
391
|
+
|
354
392
|
# Set parallel concurrency options for Thor
|
355
393
|
#
|
356
394
|
# @api private
|
data/lib/kitchen/command.rb
CHANGED
data/lib/kitchen/config.rb
CHANGED
@@ -77,6 +77,10 @@ module Kitchen
|
|
77
77
|
# @api private
|
78
78
|
attr_accessor :log_overwrite
|
79
79
|
|
80
|
+
# @return [String] an absolute path to the directory containing test suites
|
81
|
+
# @api private
|
82
|
+
attr_accessor :test_base_path
|
83
|
+
|
80
84
|
# Creates a new configuration, representing a particular testing
|
81
85
|
# configuration for a project.
|
82
86
|
#
|