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/lib/kitchen/command/exec.rb
CHANGED
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
#
|
|
3
|
-
# Author:: SAWANOBORI Yukihiko (<sawanoboriyu@higanworks.com>)
|
|
4
|
-
#
|
|
5
|
-
# Copyright (C) 2014, HiganWorks LLC
|
|
6
|
-
#
|
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
# you may not use this file except in compliance with the License.
|
|
9
|
-
# You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
# See the License for the specific language governing permissions and
|
|
17
|
-
# limitations under the License.
|
|
18
|
-
|
|
19
|
-
require "kitchen/command"
|
|
20
|
-
|
|
21
|
-
module Kitchen
|
|
22
|
-
|
|
23
|
-
module Command
|
|
24
|
-
|
|
25
|
-
# Execute command on remote instance.
|
|
26
|
-
#
|
|
27
|
-
# @author SAWANOBORI Yukihiko (<sawanoboriyu@higanworks.com>)
|
|
28
|
-
class Exec < Kitchen::Command::Base
|
|
29
|
-
|
|
30
|
-
# Invoke the command.
|
|
31
|
-
def call
|
|
32
|
-
results = parse_subcommand(args.first)
|
|
33
|
-
|
|
34
|
-
results.each do |instance|
|
|
35
|
-
banner "Execute command on #{instance.name}."
|
|
36
|
-
instance.remote_exec(options[:command])
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Author:: SAWANOBORI Yukihiko (<sawanoboriyu@higanworks.com>)
|
|
4
|
+
#
|
|
5
|
+
# Copyright (C) 2014, HiganWorks LLC
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
|
|
19
|
+
require "kitchen/command"
|
|
20
|
+
|
|
21
|
+
module Kitchen
|
|
22
|
+
|
|
23
|
+
module Command
|
|
24
|
+
|
|
25
|
+
# Execute command on remote instance.
|
|
26
|
+
#
|
|
27
|
+
# @author SAWANOBORI Yukihiko (<sawanoboriyu@higanworks.com>)
|
|
28
|
+
class Exec < Kitchen::Command::Base
|
|
29
|
+
|
|
30
|
+
# Invoke the command.
|
|
31
|
+
def call
|
|
32
|
+
results = parse_subcommand(args.first)
|
|
33
|
+
|
|
34
|
+
results.each do |instance|
|
|
35
|
+
banner "Execute command on #{instance.name}."
|
|
36
|
+
instance.remote_exec(options[:command])
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
data/lib/kitchen/command/list.rb
CHANGED
|
@@ -1,119 +1,119 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
#
|
|
3
|
-
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
|
4
|
-
#
|
|
5
|
-
# Copyright (C) 2013, Fletcher Nichol
|
|
6
|
-
#
|
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
# you may not use this file except in compliance with the License.
|
|
9
|
-
# You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
# See the License for the specific language governing permissions and
|
|
17
|
-
# limitations under the License.
|
|
18
|
-
|
|
19
|
-
require "kitchen/command"
|
|
20
|
-
|
|
21
|
-
module Kitchen
|
|
22
|
-
|
|
23
|
-
module Command
|
|
24
|
-
|
|
25
|
-
# Command to list one or more instances.
|
|
26
|
-
#
|
|
27
|
-
# @author Fletcher Nichol <fnichol@nichol.ca>
|
|
28
|
-
class List < Kitchen::Command::Base
|
|
29
|
-
|
|
30
|
-
# Invoke the command.
|
|
31
|
-
def call
|
|
32
|
-
result = parse_subcommand(args.first)
|
|
33
|
-
if options[:debug]
|
|
34
|
-
die "The --debug flag on the list subcommand is deprecated, " \
|
|
35
|
-
"please use `kitchen diagnose'."
|
|
36
|
-
elsif options[:bare]
|
|
37
|
-
puts Array(result).map(&:name).join("\n")
|
|
38
|
-
else
|
|
39
|
-
list_table(result)
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
private
|
|
44
|
-
|
|
45
|
-
# Add a trailing ansi color escape code to line up columns of colored
|
|
46
|
-
# output.
|
|
47
|
-
#
|
|
48
|
-
# @param string [String] a string
|
|
49
|
-
# @return [String]
|
|
50
|
-
# @api private
|
|
51
|
-
def color_pad(string)
|
|
52
|
-
string + colorize("", :white)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
# Generate the display rows for an instance.
|
|
56
|
-
#
|
|
57
|
-
# @param instance [Instance] an instance
|
|
58
|
-
# @return [Array<String>]
|
|
59
|
-
# @api private
|
|
60
|
-
def display_instance(instance)
|
|
61
|
-
[
|
|
62
|
-
color_pad(instance.name),
|
|
63
|
-
color_pad(instance.driver.name),
|
|
64
|
-
color_pad(instance.provisioner.name),
|
|
65
|
-
color_pad(instance.verifier.name),
|
|
66
|
-
color_pad(instance.transport.name),
|
|
67
|
-
format_last_action(instance.last_action)
|
|
68
|
-
]
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
# Format and color the given last action.
|
|
72
|
-
#
|
|
73
|
-
# @param last_action [String] the last action
|
|
74
|
-
# @return [String] formated last action
|
|
75
|
-
# @api private
|
|
76
|
-
def format_last_action(last_action)
|
|
77
|
-
case last_action
|
|
78
|
-
when "create" then colorize("Created", :cyan)
|
|
79
|
-
when "converge" then colorize("Converged", :magenta)
|
|
80
|
-
when "setup" then colorize("Set Up", :blue)
|
|
81
|
-
when "verify" then colorize("Verified", :yellow)
|
|
82
|
-
when nil then colorize("<Not Created>", :red)
|
|
83
|
-
else colorize("<Unknown>", :white)
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
# Constructs a list display table and output it to the screen.
|
|
88
|
-
#
|
|
89
|
-
# @param result [Array<Instance>] an array of instances
|
|
90
|
-
# @api private
|
|
91
|
-
def list_table(result)
|
|
92
|
-
table = [
|
|
93
|
-
[
|
|
94
|
-
colorize("Instance", :green), colorize("Driver", :green),
|
|
95
|
-
colorize("Provisioner", :green), colorize("Verifier", :green),
|
|
96
|
-
colorize("Transport", :green), colorize("Last Action", :green)
|
|
97
|
-
]
|
|
98
|
-
]
|
|
99
|
-
table += Array(result).map { |i| display_instance(i) }
|
|
100
|
-
print_table(table)
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
# Outputs a formatted display table.
|
|
104
|
-
#
|
|
105
|
-
# @api private
|
|
106
|
-
def print_table(*args)
|
|
107
|
-
shell.print_table(*args)
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# Colorize a string.
|
|
111
|
-
#
|
|
112
|
-
# @return [String] a colorized string
|
|
113
|
-
# @api private
|
|
114
|
-
def colorize(*args)
|
|
115
|
-
shell.set_color(*args)
|
|
116
|
-
end
|
|
117
|
-
end
|
|
118
|
-
end
|
|
119
|
-
end
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
|
4
|
+
#
|
|
5
|
+
# Copyright (C) 2013, Fletcher Nichol
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
|
|
19
|
+
require "kitchen/command"
|
|
20
|
+
|
|
21
|
+
module Kitchen
|
|
22
|
+
|
|
23
|
+
module Command
|
|
24
|
+
|
|
25
|
+
# Command to list one or more instances.
|
|
26
|
+
#
|
|
27
|
+
# @author Fletcher Nichol <fnichol@nichol.ca>
|
|
28
|
+
class List < Kitchen::Command::Base
|
|
29
|
+
|
|
30
|
+
# Invoke the command.
|
|
31
|
+
def call
|
|
32
|
+
result = parse_subcommand(args.first)
|
|
33
|
+
if options[:debug]
|
|
34
|
+
die "The --debug flag on the list subcommand is deprecated, " \
|
|
35
|
+
"please use `kitchen diagnose'."
|
|
36
|
+
elsif options[:bare]
|
|
37
|
+
puts Array(result).map(&:name).join("\n")
|
|
38
|
+
else
|
|
39
|
+
list_table(result)
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
private
|
|
44
|
+
|
|
45
|
+
# Add a trailing ansi color escape code to line up columns of colored
|
|
46
|
+
# output.
|
|
47
|
+
#
|
|
48
|
+
# @param string [String] a string
|
|
49
|
+
# @return [String]
|
|
50
|
+
# @api private
|
|
51
|
+
def color_pad(string)
|
|
52
|
+
string + colorize("", :white)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# Generate the display rows for an instance.
|
|
56
|
+
#
|
|
57
|
+
# @param instance [Instance] an instance
|
|
58
|
+
# @return [Array<String>]
|
|
59
|
+
# @api private
|
|
60
|
+
def display_instance(instance)
|
|
61
|
+
[
|
|
62
|
+
color_pad(instance.name),
|
|
63
|
+
color_pad(instance.driver.name),
|
|
64
|
+
color_pad(instance.provisioner.name),
|
|
65
|
+
color_pad(instance.verifier.name),
|
|
66
|
+
color_pad(instance.transport.name),
|
|
67
|
+
format_last_action(instance.last_action)
|
|
68
|
+
]
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Format and color the given last action.
|
|
72
|
+
#
|
|
73
|
+
# @param last_action [String] the last action
|
|
74
|
+
# @return [String] formated last action
|
|
75
|
+
# @api private
|
|
76
|
+
def format_last_action(last_action)
|
|
77
|
+
case last_action
|
|
78
|
+
when "create" then colorize("Created", :cyan)
|
|
79
|
+
when "converge" then colorize("Converged", :magenta)
|
|
80
|
+
when "setup" then colorize("Set Up", :blue)
|
|
81
|
+
when "verify" then colorize("Verified", :yellow)
|
|
82
|
+
when nil then colorize("<Not Created>", :red)
|
|
83
|
+
else colorize("<Unknown>", :white)
|
|
84
|
+
end
|
|
85
|
+
end
|
|
86
|
+
|
|
87
|
+
# Constructs a list display table and output it to the screen.
|
|
88
|
+
#
|
|
89
|
+
# @param result [Array<Instance>] an array of instances
|
|
90
|
+
# @api private
|
|
91
|
+
def list_table(result)
|
|
92
|
+
table = [
|
|
93
|
+
[
|
|
94
|
+
colorize("Instance", :green), colorize("Driver", :green),
|
|
95
|
+
colorize("Provisioner", :green), colorize("Verifier", :green),
|
|
96
|
+
colorize("Transport", :green), colorize("Last Action", :green)
|
|
97
|
+
]
|
|
98
|
+
]
|
|
99
|
+
table += Array(result).map { |i| display_instance(i) }
|
|
100
|
+
print_table(table)
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
# Outputs a formatted display table.
|
|
104
|
+
#
|
|
105
|
+
# @api private
|
|
106
|
+
def print_table(*args)
|
|
107
|
+
shell.print_table(*args)
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
# Colorize a string.
|
|
111
|
+
#
|
|
112
|
+
# @return [String] a colorized string
|
|
113
|
+
# @api private
|
|
114
|
+
def colorize(*args)
|
|
115
|
+
shell.set_color(*args)
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
end
|
|
119
|
+
end
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
#
|
|
3
|
-
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
|
4
|
-
#
|
|
5
|
-
# Copyright (C) 2013, Fletcher Nichol
|
|
6
|
-
#
|
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
# you may not use this file except in compliance with the License.
|
|
9
|
-
# You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
# See the License for the specific language governing permissions and
|
|
17
|
-
# limitations under the License.
|
|
18
|
-
|
|
19
|
-
require "kitchen/command"
|
|
20
|
-
|
|
21
|
-
module Kitchen
|
|
22
|
-
|
|
23
|
-
module Command
|
|
24
|
-
|
|
25
|
-
# Command to log into to instance.
|
|
26
|
-
#
|
|
27
|
-
# @author Fletcher Nichol <fnichol@nichol.ca>
|
|
28
|
-
class Login < Kitchen::Command::Base
|
|
29
|
-
|
|
30
|
-
# Invoke the command.
|
|
31
|
-
def call
|
|
32
|
-
results = parse_subcommand(args.first)
|
|
33
|
-
if results.size > 1
|
|
34
|
-
die "Argument `#{args.first}' returned multiple results:\n" +
|
|
35
|
-
results.map { |i| " * #{i.name}" }.join("\n")
|
|
36
|
-
end
|
|
37
|
-
instance = results.pop
|
|
38
|
-
|
|
39
|
-
instance.login
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
|
4
|
+
#
|
|
5
|
+
# Copyright (C) 2013, Fletcher Nichol
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
|
|
19
|
+
require "kitchen/command"
|
|
20
|
+
|
|
21
|
+
module Kitchen
|
|
22
|
+
|
|
23
|
+
module Command
|
|
24
|
+
|
|
25
|
+
# Command to log into to instance.
|
|
26
|
+
#
|
|
27
|
+
# @author Fletcher Nichol <fnichol@nichol.ca>
|
|
28
|
+
class Login < Kitchen::Command::Base
|
|
29
|
+
|
|
30
|
+
# Invoke the command.
|
|
31
|
+
def call
|
|
32
|
+
results = parse_subcommand(args.first)
|
|
33
|
+
if results.size > 1
|
|
34
|
+
die "Argument `#{args.first}' returned multiple results:\n" +
|
|
35
|
+
results.map { |i| " * #{i.name}" }.join("\n")
|
|
36
|
+
end
|
|
37
|
+
instance = results.pop
|
|
38
|
+
|
|
39
|
+
instance.login
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
data/lib/kitchen/command/sink.rb
CHANGED
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
# -*- encoding: utf-8 -*-
|
|
2
|
-
#
|
|
3
|
-
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
|
4
|
-
#
|
|
5
|
-
# Copyright (C) 2013, Fletcher Nichol
|
|
6
|
-
#
|
|
7
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
-
# you may not use this file except in compliance with the License.
|
|
9
|
-
# You may obtain a copy of the License at
|
|
10
|
-
#
|
|
11
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
#
|
|
13
|
-
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
# See the License for the specific language governing permissions and
|
|
17
|
-
# limitations under the License.
|
|
18
|
-
|
|
19
|
-
require "kitchen/command"
|
|
20
|
-
|
|
21
|
-
module Kitchen
|
|
22
|
-
|
|
23
|
-
module Command
|
|
24
|
-
|
|
25
|
-
# Command to... include the sink.
|
|
26
|
-
#
|
|
27
|
-
# @author Seth Vargo <sethvargo@gmail.com>
|
|
28
|
-
class Sink < Kitchen::Command::Base
|
|
29
|
-
|
|
30
|
-
# Invoke the command.
|
|
31
|
-
def call
|
|
32
|
-
puts [
|
|
33
|
-
"",
|
|
34
|
-
" ___ ",
|
|
35
|
-
" ' _ '. ",
|
|
36
|
-
" / /` `\\ \\ ",
|
|
37
|
-
" | | [__] ",
|
|
38
|
-
" | | {{ ",
|
|
39
|
-
" | | }} ",
|
|
40
|
-
" _ | | _ {{ ",
|
|
41
|
-
" ___________<_>_| |_<_>}}________ ",
|
|
42
|
-
" .=======^=(___)=^={{====. ",
|
|
43
|
-
" / .----------------}}---. \\ ",
|
|
44
|
-
" / / {{ \\ \\ ",
|
|
45
|
-
" / / }} \\ \\ ",
|
|
46
|
-
" ( '=========================' ) ",
|
|
47
|
-
" '-----------------------------' ",
|
|
48
|
-
" ", # necessary newline
|
|
49
|
-
""
|
|
50
|
-
].map(&:rstrip).join("\n")
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
54
|
-
end
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
|
2
|
+
#
|
|
3
|
+
# Author:: Fletcher Nichol (<fnichol@nichol.ca>)
|
|
4
|
+
#
|
|
5
|
+
# Copyright (C) 2013, Fletcher Nichol
|
|
6
|
+
#
|
|
7
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
# you may not use this file except in compliance with the License.
|
|
9
|
+
# You may obtain a copy of the License at
|
|
10
|
+
#
|
|
11
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
#
|
|
13
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
# See the License for the specific language governing permissions and
|
|
17
|
+
# limitations under the License.
|
|
18
|
+
|
|
19
|
+
require "kitchen/command"
|
|
20
|
+
|
|
21
|
+
module Kitchen
|
|
22
|
+
|
|
23
|
+
module Command
|
|
24
|
+
|
|
25
|
+
# Command to... include the sink.
|
|
26
|
+
#
|
|
27
|
+
# @author Seth Vargo <sethvargo@gmail.com>
|
|
28
|
+
class Sink < Kitchen::Command::Base
|
|
29
|
+
|
|
30
|
+
# Invoke the command.
|
|
31
|
+
def call
|
|
32
|
+
puts [
|
|
33
|
+
"",
|
|
34
|
+
" ___ ",
|
|
35
|
+
" ' _ '. ",
|
|
36
|
+
" / /` `\\ \\ ",
|
|
37
|
+
" | | [__] ",
|
|
38
|
+
" | | {{ ",
|
|
39
|
+
" | | }} ",
|
|
40
|
+
" _ | | _ {{ ",
|
|
41
|
+
" ___________<_>_| |_<_>}}________ ",
|
|
42
|
+
" .=======^=(___)=^={{====. ",
|
|
43
|
+
" / .----------------}}---. \\ ",
|
|
44
|
+
" / / {{ \\ \\ ",
|
|
45
|
+
" / / }} \\ \\ ",
|
|
46
|
+
" ( '=========================' ) ",
|
|
47
|
+
" '-----------------------------' ",
|
|
48
|
+
" ", # necessary newline
|
|
49
|
+
""
|
|
50
|
+
].map(&:rstrip).join("\n")
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|