test-kitchen 1.7.0 → 1.7.1.dev
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/.cane +8 -8
- data/.gitattributes +3 -0
- data/.github/ISSUE_TEMPLATE.md +55 -55
- data/.gitignore +28 -28
- data/.kitchen.ci.yml +23 -23
- data/.kitchen.proxy.yml +27 -27
- data/.rubocop.yml +3 -3
- data/.travis.yml +70 -70
- data/.yardopts +3 -3
- data/Berksfile +3 -3
- data/CHANGELOG.md +1090 -1083
- data/CONTRIBUTING.md +14 -14
- data/Gemfile +19 -19
- data/Gemfile.proxy_tests +4 -4
- data/Guardfile +42 -42
- data/LICENSE +15 -15
- data/MAINTAINERS.md +23 -23
- data/README.md +135 -135
- data/Rakefile +61 -61
- data/appveyor.yml +44 -44
- data/features/kitchen_action_commands.feature +164 -164
- data/features/kitchen_command.feature +16 -16
- data/features/kitchen_console_command.feature +34 -34
- data/features/kitchen_defaults.feature +38 -38
- data/features/kitchen_diagnose_command.feature +96 -96
- data/features/kitchen_driver_create_command.feature +64 -64
- data/features/kitchen_driver_discover_command.feature +25 -25
- data/features/kitchen_help_command.feature +16 -16
- data/features/kitchen_init_command.feature +274 -274
- data/features/kitchen_list_command.feature +104 -104
- data/features/kitchen_login_command.feature +62 -62
- data/features/kitchen_sink_command.feature +30 -30
- data/features/kitchen_test_command.feature +88 -88
- data/features/step_definitions/gem_steps.rb +36 -36
- data/features/step_definitions/git_steps.rb +5 -5
- data/features/step_definitions/output_steps.rb +5 -5
- data/features/support/env.rb +75 -75
- data/lib/kitchen.rb +150 -150
- data/lib/kitchen/base64_stream.rb +55 -55
- data/lib/kitchen/cli.rb +419 -419
- data/lib/kitchen/collection.rb +55 -55
- data/lib/kitchen/color.rb +65 -65
- data/lib/kitchen/command.rb +185 -185
- data/lib/kitchen/command/action.rb +45 -45
- data/lib/kitchen/command/console.rb +58 -58
- data/lib/kitchen/command/diagnose.rb +92 -92
- data/lib/kitchen/command/driver_discover.rb +105 -105
- data/lib/kitchen/command/exec.rb +41 -41
- data/lib/kitchen/command/list.rb +119 -119
- data/lib/kitchen/command/login.rb +43 -43
- data/lib/kitchen/command/sink.rb +54 -54
- data/lib/kitchen/command/test.rb +51 -51
- data/lib/kitchen/config.rb +322 -322
- data/lib/kitchen/configurable.rb +529 -529
- data/lib/kitchen/data_munger.rb +959 -959
- data/lib/kitchen/diagnostic.rb +141 -141
- data/lib/kitchen/driver.rb +56 -56
- data/lib/kitchen/driver/base.rb +134 -134
- data/lib/kitchen/driver/dummy.rb +108 -108
- data/lib/kitchen/driver/proxy.rb +72 -72
- data/lib/kitchen/driver/ssh_base.rb +357 -357
- data/lib/kitchen/errors.rb +229 -229
- data/lib/kitchen/generator/driver_create.rb +177 -177
- data/lib/kitchen/generator/init.rb +296 -296
- data/lib/kitchen/instance.rb +662 -662
- data/lib/kitchen/lazy_hash.rb +142 -142
- data/lib/kitchen/loader/yaml.rb +349 -349
- data/lib/kitchen/logger.rb +423 -423
- data/lib/kitchen/logging.rb +56 -56
- data/lib/kitchen/login_command.rb +52 -52
- data/lib/kitchen/metadata_chopper.rb +52 -52
- data/lib/kitchen/platform.rb +67 -67
- data/lib/kitchen/provisioner.rb +54 -54
- data/lib/kitchen/provisioner/base.rb +236 -236
- data/lib/kitchen/provisioner/chef/berkshelf.rb +114 -114
- data/lib/kitchen/provisioner/chef/common_sandbox.rb +322 -322
- data/lib/kitchen/provisioner/chef/librarian.rb +112 -112
- data/lib/kitchen/provisioner/chef_apply.rb +124 -124
- data/lib/kitchen/provisioner/chef_base.rb +341 -341
- data/lib/kitchen/provisioner/chef_solo.rb +88 -88
- data/lib/kitchen/provisioner/chef_zero.rb +245 -245
- data/lib/kitchen/provisioner/dummy.rb +79 -79
- data/lib/kitchen/provisioner/shell.rb +138 -138
- data/lib/kitchen/rake_tasks.rb +63 -63
- data/lib/kitchen/shell_out.rb +93 -93
- data/lib/kitchen/ssh.rb +276 -276
- data/lib/kitchen/state_file.rb +120 -120
- data/lib/kitchen/suite.rb +51 -51
- data/lib/kitchen/thor_tasks.rb +66 -66
- data/lib/kitchen/transport.rb +54 -54
- data/lib/kitchen/transport/base.rb +176 -176
- data/lib/kitchen/transport/dummy.rb +79 -79
- data/lib/kitchen/transport/ssh.rb +364 -364
- data/lib/kitchen/transport/winrm.rb +486 -486
- data/lib/kitchen/util.rb +147 -147
- data/lib/kitchen/verifier.rb +55 -55
- data/lib/kitchen/verifier/base.rb +235 -235
- data/lib/kitchen/verifier/busser.rb +277 -277
- data/lib/kitchen/verifier/dummy.rb +79 -79
- data/lib/kitchen/verifier/shell.rb +101 -101
- data/lib/kitchen/version.rb +21 -21
- data/lib/vendor/hash_recursive_merge.rb +82 -82
- data/spec/kitchen/base64_stream_spec.rb +77 -77
- data/spec/kitchen/cli_spec.rb +56 -56
- data/spec/kitchen/collection_spec.rb +80 -80
- data/spec/kitchen/color_spec.rb +54 -54
- data/spec/kitchen/config_spec.rb +408 -408
- data/spec/kitchen/configurable_spec.rb +1095 -1095
- data/spec/kitchen/data_munger_spec.rb +2694 -2694
- data/spec/kitchen/diagnostic_spec.rb +129 -129
- data/spec/kitchen/driver/base_spec.rb +121 -121
- data/spec/kitchen/driver/dummy_spec.rb +199 -199
- data/spec/kitchen/driver/proxy_spec.rb +138 -138
- data/spec/kitchen/driver/ssh_base_spec.rb +1115 -1115
- data/spec/kitchen/driver_spec.rb +112 -112
- data/spec/kitchen/errors_spec.rb +309 -309
- data/spec/kitchen/instance_spec.rb +1419 -1419
- data/spec/kitchen/lazy_hash_spec.rb +117 -117
- data/spec/kitchen/loader/yaml_spec.rb +774 -774
- data/spec/kitchen/logger_spec.rb +429 -429
- data/spec/kitchen/logging_spec.rb +59 -59
- data/spec/kitchen/login_command_spec.rb +68 -68
- data/spec/kitchen/metadata_chopper_spec.rb +82 -82
- data/spec/kitchen/platform_spec.rb +89 -89
- data/spec/kitchen/provisioner/base_spec.rb +386 -386
- data/spec/kitchen/provisioner/chef_apply_spec.rb +136 -136
- data/spec/kitchen/provisioner/chef_base_spec.rb +1161 -1161
- data/spec/kitchen/provisioner/chef_solo_spec.rb +557 -557
- data/spec/kitchen/provisioner/chef_zero_spec.rb +1001 -1001
- data/spec/kitchen/provisioner/dummy_spec.rb +99 -99
- data/spec/kitchen/provisioner/shell_spec.rb +566 -566
- data/spec/kitchen/provisioner_spec.rb +107 -107
- data/spec/kitchen/shell_out_spec.rb +150 -150
- data/spec/kitchen/ssh_spec.rb +693 -693
- data/spec/kitchen/state_file_spec.rb +129 -129
- data/spec/kitchen/suite_spec.rb +62 -62
- data/spec/kitchen/transport/base_spec.rb +89 -89
- data/spec/kitchen/transport/ssh_spec.rb +1255 -1255
- data/spec/kitchen/transport/winrm_spec.rb +1143 -1143
- data/spec/kitchen/transport_spec.rb +112 -112
- data/spec/kitchen/util_spec.rb +165 -165
- data/spec/kitchen/verifier/base_spec.rb +362 -362
- data/spec/kitchen/verifier/busser_spec.rb +610 -610
- data/spec/kitchen/verifier/dummy_spec.rb +99 -99
- data/spec/kitchen/verifier/shell_spec.rb +160 -160
- data/spec/kitchen/verifier_spec.rb +120 -120
- data/spec/kitchen_spec.rb +114 -114
- data/spec/spec_helper.rb +85 -85
- data/spec/support/powershell_max_size_spec.rb +40 -40
- data/support/busser_install_command.ps1 +14 -14
- data/support/busser_install_command.sh +14 -14
- data/support/chef-client-zero.rb +77 -77
- data/support/chef_base_init_command.ps1 +18 -18
- data/support/chef_base_init_command.sh +2 -2
- data/support/chef_base_install_command.ps1 +85 -85
- data/support/chef_base_install_command.sh +229 -229
- data/support/chef_zero_prepare_command_legacy.ps1 +9 -9
- data/support/chef_zero_prepare_command_legacy.sh +10 -10
- data/support/download_helpers.sh +109 -109
- data/support/dummy-validation.pem +27 -27
- data/templates/driver/CHANGELOG.md.erb +3 -3
- data/templates/driver/Gemfile.erb +3 -3
- data/templates/driver/README.md.erb +64 -64
- data/templates/driver/Rakefile.erb +21 -21
- data/templates/driver/driver.rb.erb +23 -23
- data/templates/driver/gemspec.erb +29 -29
- data/templates/driver/gitignore.erb +17 -17
- data/templates/driver/license_apachev2.erb +15 -15
- data/templates/driver/license_lgplv3.erb +16 -16
- data/templates/driver/license_mit.erb +22 -22
- data/templates/driver/license_reserved.erb +5 -5
- data/templates/driver/tailor.erb +4 -4
- data/templates/driver/travis.yml.erb +11 -11
- data/templates/driver/version.rb.erb +12 -12
- data/templates/init/chefignore.erb +1 -1
- data/templates/init/kitchen.yml.erb +18 -18
- data/test-kitchen.gemspec +62 -62
- data/test/integration/default/default_spec.rb +3 -3
- data/testing_windows.md +37 -37
- metadata +5 -4
data/Rakefile
CHANGED
|
@@ -1,61 +1,61 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
|
|
3
|
-
require "bundler/gem_tasks"
|
|
4
|
-
|
|
5
|
-
require "rake/testtask"
|
|
6
|
-
Rake::TestTask.new(:unit) do |t|
|
|
7
|
-
t.libs.push "lib"
|
|
8
|
-
t.test_files = FileList["spec/**/*_spec.rb"]
|
|
9
|
-
t.verbose = true
|
|
10
|
-
end
|
|
11
|
-
|
|
12
|
-
require "cucumber"
|
|
13
|
-
require "cucumber/rake/task"
|
|
14
|
-
Cucumber::Rake::Task.new(:features) do |t|
|
|
15
|
-
t.cucumber_opts = ["features", "-x", "--format progress", "--no-color"]
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
desc "Run all test suites"
|
|
19
|
-
task :test => [:unit, :features]
|
|
20
|
-
|
|
21
|
-
desc "Display LOC stats"
|
|
22
|
-
task :stats do
|
|
23
|
-
puts "\n## Production Code Stats"
|
|
24
|
-
sh "countloc -r lib/kitchen lib/kitchen.rb"
|
|
25
|
-
puts "\n## Test Code Stats"
|
|
26
|
-
sh "countloc -r spec features"
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
require "finstyle"
|
|
30
|
-
require "rubocop/rake_task"
|
|
31
|
-
RuboCop::RakeTask.new(:style) do |task|
|
|
32
|
-
task.options += ["--display-cop-names", "--no-color"]
|
|
33
|
-
end
|
|
34
|
-
|
|
35
|
-
if RUBY_ENGINE != "jruby"
|
|
36
|
-
require "cane/rake_task"
|
|
37
|
-
desc "Run cane to check quality metrics"
|
|
38
|
-
Cane::RakeTask.new do |cane|
|
|
39
|
-
cane.canefile = "./.cane"
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
desc "Run all quality tasks"
|
|
43
|
-
task :quality => [:cane, :style, :stats]
|
|
44
|
-
else
|
|
45
|
-
desc "Run all quality tasks"
|
|
46
|
-
task :quality => [:style, :stats]
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
require "yard"
|
|
50
|
-
YARD::Rake::YardocTask.new
|
|
51
|
-
|
|
52
|
-
task :default => [:test, :quality]
|
|
53
|
-
|
|
54
|
-
require "github_changelog_generator/task"
|
|
55
|
-
|
|
56
|
-
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
|
57
|
-
config.future_release = Kitchen::VERSION
|
|
58
|
-
config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature,Improvement".split(",")
|
|
59
|
-
config.bug_labels = "bug,Bug".split(",")
|
|
60
|
-
config.exclude_labels = %w[Duplicate Question Discussion No_Changelog]
|
|
61
|
-
end
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
|
|
3
|
+
require "bundler/gem_tasks"
|
|
4
|
+
|
|
5
|
+
require "rake/testtask"
|
|
6
|
+
Rake::TestTask.new(:unit) do |t|
|
|
7
|
+
t.libs.push "lib"
|
|
8
|
+
t.test_files = FileList["spec/**/*_spec.rb"]
|
|
9
|
+
t.verbose = true
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
require "cucumber"
|
|
13
|
+
require "cucumber/rake/task"
|
|
14
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
15
|
+
t.cucumber_opts = ["features", "-x", "--format progress", "--no-color"]
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
desc "Run all test suites"
|
|
19
|
+
task :test => [:unit, :features]
|
|
20
|
+
|
|
21
|
+
desc "Display LOC stats"
|
|
22
|
+
task :stats do
|
|
23
|
+
puts "\n## Production Code Stats"
|
|
24
|
+
sh "countloc -r lib/kitchen lib/kitchen.rb"
|
|
25
|
+
puts "\n## Test Code Stats"
|
|
26
|
+
sh "countloc -r spec features"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
require "finstyle"
|
|
30
|
+
require "rubocop/rake_task"
|
|
31
|
+
RuboCop::RakeTask.new(:style) do |task|
|
|
32
|
+
task.options += ["--display-cop-names", "--no-color"]
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
if RUBY_ENGINE != "jruby"
|
|
36
|
+
require "cane/rake_task"
|
|
37
|
+
desc "Run cane to check quality metrics"
|
|
38
|
+
Cane::RakeTask.new do |cane|
|
|
39
|
+
cane.canefile = "./.cane"
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
desc "Run all quality tasks"
|
|
43
|
+
task :quality => [:cane, :style, :stats]
|
|
44
|
+
else
|
|
45
|
+
desc "Run all quality tasks"
|
|
46
|
+
task :quality => [:style, :stats]
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
require "yard"
|
|
50
|
+
YARD::Rake::YardocTask.new
|
|
51
|
+
|
|
52
|
+
task :default => [:test, :quality]
|
|
53
|
+
|
|
54
|
+
require "github_changelog_generator/task"
|
|
55
|
+
|
|
56
|
+
GitHubChangelogGenerator::RakeTask.new :changelog do |config|
|
|
57
|
+
config.future_release = Kitchen::VERSION
|
|
58
|
+
config.enhancement_labels = "enhancement,Enhancement,New Feature,Feature,Improvement".split(",")
|
|
59
|
+
config.bug_labels = "bug,Bug".split(",")
|
|
60
|
+
config.exclude_labels = %w[Duplicate Question Discussion No_Changelog]
|
|
61
|
+
end
|
data/appveyor.yml
CHANGED
|
@@ -1,44 +1,44 @@
|
|
|
1
|
-
version: "master-{build}"
|
|
2
|
-
|
|
3
|
-
os: Windows Server 2012 R2
|
|
4
|
-
platform:
|
|
5
|
-
- x64
|
|
6
|
-
|
|
7
|
-
environment:
|
|
8
|
-
machine_user: test_user
|
|
9
|
-
machine_pass: Pass@word1
|
|
10
|
-
machine_port: 5985
|
|
11
|
-
KITCHEN_YAML: .kitchen.ci.yml
|
|
12
|
-
SSL_CERT_FILE: c:\projects\test_kitchen\certs.pem
|
|
13
|
-
|
|
14
|
-
matrix:
|
|
15
|
-
- ruby_version: "21"
|
|
16
|
-
|
|
17
|
-
clone_folder: c:\projects\test_kitchen
|
|
18
|
-
clone_depth: 1
|
|
19
|
-
skip_tags: true
|
|
20
|
-
|
|
21
|
-
branches:
|
|
22
|
-
only:
|
|
23
|
-
- master
|
|
24
|
-
|
|
25
|
-
install:
|
|
26
|
-
- ps: net user /add $env:machine_user $env:machine_pass
|
|
27
|
-
- ps: net localgroup administrators $env:machine_user /add
|
|
28
|
-
- ps: $env:PATH="C:\Ruby$env:ruby_version\bin;$env:PATH"
|
|
29
|
-
- ps: gem install bundler --quiet --no-ri --no-rdoc
|
|
30
|
-
- ps: Invoke-WebRequest -Uri http://curl.haxx.se/ca/cacert.pem -OutFile c:\projects\test_kitchen\certs.pem
|
|
31
|
-
- ps: Write-Host $env:path
|
|
32
|
-
- ruby --version
|
|
33
|
-
- gem --version
|
|
34
|
-
- bundler --version
|
|
35
|
-
|
|
36
|
-
build_script:
|
|
37
|
-
- bundle install --without guard integration
|
|
38
|
-
|
|
39
|
-
test_script:
|
|
40
|
-
- SET SPEC_OPTS=--format progress
|
|
41
|
-
- bundle exec rake unit
|
|
42
|
-
- bundle exec rake quality
|
|
43
|
-
- bundle install --with integration
|
|
44
|
-
- bundle exec kitchen verify windows
|
|
1
|
+
version: "master-{build}"
|
|
2
|
+
|
|
3
|
+
os: Windows Server 2012 R2
|
|
4
|
+
platform:
|
|
5
|
+
- x64
|
|
6
|
+
|
|
7
|
+
environment:
|
|
8
|
+
machine_user: test_user
|
|
9
|
+
machine_pass: Pass@word1
|
|
10
|
+
machine_port: 5985
|
|
11
|
+
KITCHEN_YAML: .kitchen.ci.yml
|
|
12
|
+
SSL_CERT_FILE: c:\projects\test_kitchen\certs.pem
|
|
13
|
+
|
|
14
|
+
matrix:
|
|
15
|
+
- ruby_version: "21"
|
|
16
|
+
|
|
17
|
+
clone_folder: c:\projects\test_kitchen
|
|
18
|
+
clone_depth: 1
|
|
19
|
+
skip_tags: true
|
|
20
|
+
|
|
21
|
+
branches:
|
|
22
|
+
only:
|
|
23
|
+
- master
|
|
24
|
+
|
|
25
|
+
install:
|
|
26
|
+
- ps: net user /add $env:machine_user $env:machine_pass
|
|
27
|
+
- ps: net localgroup administrators $env:machine_user /add
|
|
28
|
+
- ps: $env:PATH="C:\Ruby$env:ruby_version\bin;$env:PATH"
|
|
29
|
+
- ps: gem install bundler --quiet --no-ri --no-rdoc
|
|
30
|
+
- ps: Invoke-WebRequest -Uri http://curl.haxx.se/ca/cacert.pem -OutFile c:\projects\test_kitchen\certs.pem
|
|
31
|
+
- ps: Write-Host $env:path
|
|
32
|
+
- ruby --version
|
|
33
|
+
- gem --version
|
|
34
|
+
- bundler --version
|
|
35
|
+
|
|
36
|
+
build_script:
|
|
37
|
+
- bundle install --without guard integration
|
|
38
|
+
|
|
39
|
+
test_script:
|
|
40
|
+
- SET SPEC_OPTS=--format progress
|
|
41
|
+
- bundle exec rake unit
|
|
42
|
+
- bundle exec rake quality
|
|
43
|
+
- bundle install --with integration
|
|
44
|
+
- bundle exec kitchen verify windows
|
|
@@ -1,164 +1,164 @@
|
|
|
1
|
-
Feature: Running instance actions
|
|
2
|
-
In order to trigger discrete instance lifecyle actions
|
|
3
|
-
As an operator
|
|
4
|
-
I want to run a action commands
|
|
5
|
-
|
|
6
|
-
Background:
|
|
7
|
-
Given a file named ".kitchen.yml" with:
|
|
8
|
-
"""
|
|
9
|
-
---
|
|
10
|
-
driver:
|
|
11
|
-
name: dummy
|
|
12
|
-
|
|
13
|
-
provisioner:
|
|
14
|
-
name: dummy
|
|
15
|
-
|
|
16
|
-
verifier:
|
|
17
|
-
name: dummy
|
|
18
|
-
|
|
19
|
-
platforms:
|
|
20
|
-
- name: cool
|
|
21
|
-
- name: beans
|
|
22
|
-
|
|
23
|
-
suites:
|
|
24
|
-
- name: client
|
|
25
|
-
- name: server
|
|
26
|
-
"""
|
|
27
|
-
|
|
28
|
-
@spawn
|
|
29
|
-
Scenario: Creating a single instance
|
|
30
|
-
When I successfully run `kitchen list client-beans`
|
|
31
|
-
Then the stdout should match /^client-beans\s+.+\s+\<Not Created\>\Z/
|
|
32
|
-
When I run `kitchen create client-beans`
|
|
33
|
-
Then the output should contain "Finished creating <client-beans>"
|
|
34
|
-
And the exit status should be 0
|
|
35
|
-
When I successfully run `kitchen list client-beans`
|
|
36
|
-
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
37
|
-
|
|
38
|
-
@spawn
|
|
39
|
-
Scenario: Creating a single instance that fails
|
|
40
|
-
Given a file named ".kitchen.local.yml" with:
|
|
41
|
-
"""
|
|
42
|
-
---
|
|
43
|
-
driver:
|
|
44
|
-
fail_create: true
|
|
45
|
-
"""
|
|
46
|
-
When I successfully run `kitchen list client-beans`
|
|
47
|
-
Then the stdout should match /^client-beans\s+.+\s+\<Not Created\>\Z/
|
|
48
|
-
When I run `kitchen create client-beans`
|
|
49
|
-
Then the output should contain "Create failed on instance <client-beans>"
|
|
50
|
-
And the exit status should not be 0
|
|
51
|
-
When I successfully run `kitchen list client-beans`
|
|
52
|
-
Then the stdout should match /^client-beans\s+.+\s+\<Not Created\>\Z/
|
|
53
|
-
|
|
54
|
-
@spawn
|
|
55
|
-
Scenario: Converging a single instance
|
|
56
|
-
When I successfully run `kitchen create client-beans`
|
|
57
|
-
And I successfully run `kitchen list client-beans`
|
|
58
|
-
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
59
|
-
When I run `kitchen converge client-beans`
|
|
60
|
-
Then the output should contain "Finished converging <client-beans>"
|
|
61
|
-
And the exit status should be 0
|
|
62
|
-
When I successfully run `kitchen list client-beans`
|
|
63
|
-
Then the stdout should match /^client-beans\s+.+\s+Converged\Z/
|
|
64
|
-
|
|
65
|
-
@spawn
|
|
66
|
-
Scenario: Converging a single instance that fails
|
|
67
|
-
Given a file named ".kitchen.local.yml" with:
|
|
68
|
-
"""
|
|
69
|
-
---
|
|
70
|
-
provisioner:
|
|
71
|
-
fail: true
|
|
72
|
-
"""
|
|
73
|
-
When I successfully run `kitchen create client-beans`
|
|
74
|
-
And I successfully run `kitchen list client-beans`
|
|
75
|
-
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
76
|
-
When I run `kitchen converge client-beans`
|
|
77
|
-
Then the output should contain "Converge failed on instance <client-beans>"
|
|
78
|
-
And the exit status should not be 0
|
|
79
|
-
When I successfully run `kitchen list client-beans`
|
|
80
|
-
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
81
|
-
|
|
82
|
-
@spawn
|
|
83
|
-
Scenario: Setting up a single instance
|
|
84
|
-
When I successfully run `kitchen converge client-beans`
|
|
85
|
-
And I successfully run `kitchen list client-beans`
|
|
86
|
-
Then the stdout should match /^client-beans\s+.+\s+Converged\Z/
|
|
87
|
-
When I run `kitchen setup client-beans`
|
|
88
|
-
Then the output should contain "Finished setting up <client-beans>"
|
|
89
|
-
And the exit status should be 0
|
|
90
|
-
When I successfully run `kitchen list client-beans`
|
|
91
|
-
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
92
|
-
|
|
93
|
-
@spawn
|
|
94
|
-
Scenario: Setting up a single instance that fails
|
|
95
|
-
Given a file named ".kitchen.local.yml" with:
|
|
96
|
-
"""
|
|
97
|
-
---
|
|
98
|
-
verifier:
|
|
99
|
-
fail: true
|
|
100
|
-
"""
|
|
101
|
-
When I successfully run `kitchen converge client-beans`
|
|
102
|
-
And I successfully run `kitchen list client-beans`
|
|
103
|
-
Then the stdout should match /^client-beans\s+.+\s+Converged\Z/
|
|
104
|
-
When I run `kitchen verify client-beans`
|
|
105
|
-
Then the output should contain "Verify failed on instance <client-beans>"
|
|
106
|
-
And the exit status should not be 0
|
|
107
|
-
When I successfully run `kitchen list client-beans`
|
|
108
|
-
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
109
|
-
|
|
110
|
-
@spawn
|
|
111
|
-
Scenario: Verifying a single instance
|
|
112
|
-
When I successfully run `kitchen setup client-beans`
|
|
113
|
-
And I successfully run `kitchen list client-beans`
|
|
114
|
-
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
115
|
-
When I run `kitchen verify client-beans`
|
|
116
|
-
Then the output should contain "Finished verifying <client-beans>"
|
|
117
|
-
And the exit status should be 0
|
|
118
|
-
When I successfully run `kitchen list client-beans`
|
|
119
|
-
Then the stdout should match /^client-beans\s+.+\s+Verified\Z/
|
|
120
|
-
|
|
121
|
-
@spawn
|
|
122
|
-
Scenario: Verifying a single instance that fails
|
|
123
|
-
Given a file named ".kitchen.local.yml" with:
|
|
124
|
-
"""
|
|
125
|
-
---
|
|
126
|
-
verifier:
|
|
127
|
-
fail: true
|
|
128
|
-
"""
|
|
129
|
-
When I successfully run `kitchen setup client-beans`
|
|
130
|
-
And I successfully run `kitchen list client-beans`
|
|
131
|
-
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
132
|
-
When I run `kitchen verify client-beans`
|
|
133
|
-
Then the output should contain "Verify failed on instance <client-beans>"
|
|
134
|
-
And the exit status should not be 0
|
|
135
|
-
When I successfully run `kitchen list client-beans`
|
|
136
|
-
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
137
|
-
|
|
138
|
-
@spawn
|
|
139
|
-
Scenario: Destroying a single instance
|
|
140
|
-
When I successfully run `kitchen create client-beans`
|
|
141
|
-
And I successfully run `kitchen list client-beans`
|
|
142
|
-
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
143
|
-
When I run `kitchen destroy client-beans`
|
|
144
|
-
Then the output should contain "Finished destroying <client-beans>"
|
|
145
|
-
And the exit status should be 0
|
|
146
|
-
When I successfully run `kitchen list client-beans`
|
|
147
|
-
Then the stdout should match /^client-beans\s+.+\s+\<Not Created\>\Z/
|
|
148
|
-
|
|
149
|
-
@spawn
|
|
150
|
-
Scenario: Destroying a single instance that fails
|
|
151
|
-
Given a file named ".kitchen.local.yml" with:
|
|
152
|
-
"""
|
|
153
|
-
---
|
|
154
|
-
driver:
|
|
155
|
-
fail_destroy: true
|
|
156
|
-
"""
|
|
157
|
-
When I successfully run `kitchen create client-beans`
|
|
158
|
-
And I successfully run `kitchen list client-beans`
|
|
159
|
-
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
160
|
-
When I run `kitchen destroy client-beans`
|
|
161
|
-
Then the output should contain "Destroy failed on instance <client-beans>"
|
|
162
|
-
And the exit status should not be 0
|
|
163
|
-
When I successfully run `kitchen list client-beans`
|
|
164
|
-
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
1
|
+
Feature: Running instance actions
|
|
2
|
+
In order to trigger discrete instance lifecyle actions
|
|
3
|
+
As an operator
|
|
4
|
+
I want to run a action commands
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a file named ".kitchen.yml" with:
|
|
8
|
+
"""
|
|
9
|
+
---
|
|
10
|
+
driver:
|
|
11
|
+
name: dummy
|
|
12
|
+
|
|
13
|
+
provisioner:
|
|
14
|
+
name: dummy
|
|
15
|
+
|
|
16
|
+
verifier:
|
|
17
|
+
name: dummy
|
|
18
|
+
|
|
19
|
+
platforms:
|
|
20
|
+
- name: cool
|
|
21
|
+
- name: beans
|
|
22
|
+
|
|
23
|
+
suites:
|
|
24
|
+
- name: client
|
|
25
|
+
- name: server
|
|
26
|
+
"""
|
|
27
|
+
|
|
28
|
+
@spawn
|
|
29
|
+
Scenario: Creating a single instance
|
|
30
|
+
When I successfully run `kitchen list client-beans`
|
|
31
|
+
Then the stdout should match /^client-beans\s+.+\s+\<Not Created\>\Z/
|
|
32
|
+
When I run `kitchen create client-beans`
|
|
33
|
+
Then the output should contain "Finished creating <client-beans>"
|
|
34
|
+
And the exit status should be 0
|
|
35
|
+
When I successfully run `kitchen list client-beans`
|
|
36
|
+
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
37
|
+
|
|
38
|
+
@spawn
|
|
39
|
+
Scenario: Creating a single instance that fails
|
|
40
|
+
Given a file named ".kitchen.local.yml" with:
|
|
41
|
+
"""
|
|
42
|
+
---
|
|
43
|
+
driver:
|
|
44
|
+
fail_create: true
|
|
45
|
+
"""
|
|
46
|
+
When I successfully run `kitchen list client-beans`
|
|
47
|
+
Then the stdout should match /^client-beans\s+.+\s+\<Not Created\>\Z/
|
|
48
|
+
When I run `kitchen create client-beans`
|
|
49
|
+
Then the output should contain "Create failed on instance <client-beans>"
|
|
50
|
+
And the exit status should not be 0
|
|
51
|
+
When I successfully run `kitchen list client-beans`
|
|
52
|
+
Then the stdout should match /^client-beans\s+.+\s+\<Not Created\>\Z/
|
|
53
|
+
|
|
54
|
+
@spawn
|
|
55
|
+
Scenario: Converging a single instance
|
|
56
|
+
When I successfully run `kitchen create client-beans`
|
|
57
|
+
And I successfully run `kitchen list client-beans`
|
|
58
|
+
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
59
|
+
When I run `kitchen converge client-beans`
|
|
60
|
+
Then the output should contain "Finished converging <client-beans>"
|
|
61
|
+
And the exit status should be 0
|
|
62
|
+
When I successfully run `kitchen list client-beans`
|
|
63
|
+
Then the stdout should match /^client-beans\s+.+\s+Converged\Z/
|
|
64
|
+
|
|
65
|
+
@spawn
|
|
66
|
+
Scenario: Converging a single instance that fails
|
|
67
|
+
Given a file named ".kitchen.local.yml" with:
|
|
68
|
+
"""
|
|
69
|
+
---
|
|
70
|
+
provisioner:
|
|
71
|
+
fail: true
|
|
72
|
+
"""
|
|
73
|
+
When I successfully run `kitchen create client-beans`
|
|
74
|
+
And I successfully run `kitchen list client-beans`
|
|
75
|
+
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
76
|
+
When I run `kitchen converge client-beans`
|
|
77
|
+
Then the output should contain "Converge failed on instance <client-beans>"
|
|
78
|
+
And the exit status should not be 0
|
|
79
|
+
When I successfully run `kitchen list client-beans`
|
|
80
|
+
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
81
|
+
|
|
82
|
+
@spawn
|
|
83
|
+
Scenario: Setting up a single instance
|
|
84
|
+
When I successfully run `kitchen converge client-beans`
|
|
85
|
+
And I successfully run `kitchen list client-beans`
|
|
86
|
+
Then the stdout should match /^client-beans\s+.+\s+Converged\Z/
|
|
87
|
+
When I run `kitchen setup client-beans`
|
|
88
|
+
Then the output should contain "Finished setting up <client-beans>"
|
|
89
|
+
And the exit status should be 0
|
|
90
|
+
When I successfully run `kitchen list client-beans`
|
|
91
|
+
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
92
|
+
|
|
93
|
+
@spawn
|
|
94
|
+
Scenario: Setting up a single instance that fails
|
|
95
|
+
Given a file named ".kitchen.local.yml" with:
|
|
96
|
+
"""
|
|
97
|
+
---
|
|
98
|
+
verifier:
|
|
99
|
+
fail: true
|
|
100
|
+
"""
|
|
101
|
+
When I successfully run `kitchen converge client-beans`
|
|
102
|
+
And I successfully run `kitchen list client-beans`
|
|
103
|
+
Then the stdout should match /^client-beans\s+.+\s+Converged\Z/
|
|
104
|
+
When I run `kitchen verify client-beans`
|
|
105
|
+
Then the output should contain "Verify failed on instance <client-beans>"
|
|
106
|
+
And the exit status should not be 0
|
|
107
|
+
When I successfully run `kitchen list client-beans`
|
|
108
|
+
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
109
|
+
|
|
110
|
+
@spawn
|
|
111
|
+
Scenario: Verifying a single instance
|
|
112
|
+
When I successfully run `kitchen setup client-beans`
|
|
113
|
+
And I successfully run `kitchen list client-beans`
|
|
114
|
+
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
115
|
+
When I run `kitchen verify client-beans`
|
|
116
|
+
Then the output should contain "Finished verifying <client-beans>"
|
|
117
|
+
And the exit status should be 0
|
|
118
|
+
When I successfully run `kitchen list client-beans`
|
|
119
|
+
Then the stdout should match /^client-beans\s+.+\s+Verified\Z/
|
|
120
|
+
|
|
121
|
+
@spawn
|
|
122
|
+
Scenario: Verifying a single instance that fails
|
|
123
|
+
Given a file named ".kitchen.local.yml" with:
|
|
124
|
+
"""
|
|
125
|
+
---
|
|
126
|
+
verifier:
|
|
127
|
+
fail: true
|
|
128
|
+
"""
|
|
129
|
+
When I successfully run `kitchen setup client-beans`
|
|
130
|
+
And I successfully run `kitchen list client-beans`
|
|
131
|
+
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
132
|
+
When I run `kitchen verify client-beans`
|
|
133
|
+
Then the output should contain "Verify failed on instance <client-beans>"
|
|
134
|
+
And the exit status should not be 0
|
|
135
|
+
When I successfully run `kitchen list client-beans`
|
|
136
|
+
Then the stdout should match /^client-beans\s+.+\s+Set Up\Z/
|
|
137
|
+
|
|
138
|
+
@spawn
|
|
139
|
+
Scenario: Destroying a single instance
|
|
140
|
+
When I successfully run `kitchen create client-beans`
|
|
141
|
+
And I successfully run `kitchen list client-beans`
|
|
142
|
+
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
143
|
+
When I run `kitchen destroy client-beans`
|
|
144
|
+
Then the output should contain "Finished destroying <client-beans>"
|
|
145
|
+
And the exit status should be 0
|
|
146
|
+
When I successfully run `kitchen list client-beans`
|
|
147
|
+
Then the stdout should match /^client-beans\s+.+\s+\<Not Created\>\Z/
|
|
148
|
+
|
|
149
|
+
@spawn
|
|
150
|
+
Scenario: Destroying a single instance that fails
|
|
151
|
+
Given a file named ".kitchen.local.yml" with:
|
|
152
|
+
"""
|
|
153
|
+
---
|
|
154
|
+
driver:
|
|
155
|
+
fail_destroy: true
|
|
156
|
+
"""
|
|
157
|
+
When I successfully run `kitchen create client-beans`
|
|
158
|
+
And I successfully run `kitchen list client-beans`
|
|
159
|
+
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|
|
160
|
+
When I run `kitchen destroy client-beans`
|
|
161
|
+
Then the output should contain "Destroy failed on instance <client-beans>"
|
|
162
|
+
And the exit status should not be 0
|
|
163
|
+
When I successfully run `kitchen list client-beans`
|
|
164
|
+
Then the stdout should match /^client-beans\s+.+\s+Created\Z/
|