beaker 1.16.0 → 1.17.0
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 +8 -8
- data/CONTRIBUTING.md +90 -0
- data/HISTORY.md +654 -2
- data/beaker.gemspec +1 -0
- data/lib/beaker/answers/version34.rb +4 -0
- data/lib/beaker/cli.rb +49 -2
- data/lib/beaker/dsl/helpers.rb +356 -196
- data/lib/beaker/dsl/install_utils.rb +135 -16
- data/lib/beaker/dsl/patterns.rb +37 -0
- data/lib/beaker/dsl/roles.rb +29 -0
- data/lib/beaker/dsl.rb +2 -1
- data/lib/beaker/host/unix.rb +14 -10
- data/lib/beaker/host/windows.rb +2 -0
- data/lib/beaker/host.rb +96 -1
- data/lib/beaker/host_prebuilt_steps.rb +41 -51
- data/lib/beaker/hypervisor/aws_sdk.rb +80 -16
- data/lib/beaker/hypervisor/ec2_helper.rb +1 -1
- data/lib/beaker/logger.rb +17 -0
- data/lib/beaker/options/command_line_parser.rb +3 -0
- data/lib/beaker/options/hosts_file_parser.rb +7 -4
- data/lib/beaker/options/options_hash.rb +2 -2
- data/lib/beaker/options/parser.rb +1 -1
- data/lib/beaker/options/presets.rb +128 -83
- data/lib/beaker/perf.rb +58 -0
- data/lib/beaker/shared/host_manager.rb +81 -0
- data/lib/beaker/shared.rb +2 -2
- data/lib/beaker/ssh_connection.rb +14 -7
- data/lib/beaker/test_case.rb +13 -0
- data/lib/beaker/test_suite.rb +23 -5
- data/lib/beaker/version.rb +1 -1
- data/lib/beaker.rb +1 -1
- data/spec/beaker/answers_spec.rb +13 -8
- data/spec/beaker/dsl/ezbake_utils_spec.rb +8 -9
- data/spec/beaker/dsl/helpers_spec.rb +299 -51
- data/spec/beaker/dsl/install_utils_spec.rb +75 -10
- data/spec/beaker/dsl/roles_spec.rb +36 -1
- data/spec/beaker/host_prebuilt_steps_spec.rb +21 -5
- data/spec/beaker/host_spec.rb +187 -23
- data/spec/beaker/hypervisor/ec2_helper_spec.rb +4 -4
- data/spec/beaker/hypervisor/vagrant_spec.rb +1 -1
- data/spec/beaker/options/hosts_file_parser_spec.rb +5 -0
- data/spec/beaker/options/options_hash_spec.rb +2 -2
- data/spec/beaker/options/parser_spec.rb +6 -0
- data/spec/beaker/options/presets_spec.rb +18 -2
- data/spec/beaker/perf_spec.rb +87 -0
- data/spec/beaker/shared/{host_role_parser_spec.rb → host_manager_spec.rb} +36 -5
- data/spec/beaker/test_suite_spec.rb +4 -3
- data/spec/matchers.rb +31 -3
- data/spec/mocks.rb +31 -25
- metadata +24 -5
- data/lib/beaker/shared/host_role_parser.rb +0 -36
data/lib/beaker/cli.rb
CHANGED
@@ -78,6 +78,9 @@ module Beaker
|
|
78
78
|
|
79
79
|
provision
|
80
80
|
|
81
|
+
# Setup perf monitoring if needed
|
82
|
+
@perf = Beaker::Perf.new( @hosts, @options ) if @options[:collect_perf_data]
|
83
|
+
|
81
84
|
errored = false
|
82
85
|
|
83
86
|
#pre acceptance phase
|
@@ -108,9 +111,11 @@ module Beaker
|
|
108
111
|
end
|
109
112
|
end
|
110
113
|
|
111
|
-
@
|
114
|
+
@perf.print_perf_info if @options[:collect_perf_data]
|
112
115
|
print_reproduction_info( :error )
|
113
116
|
|
117
|
+
@logger.error "Failed running the test suite."
|
118
|
+
puts ''
|
114
119
|
exit 1
|
115
120
|
else
|
116
121
|
#cleanup on success
|
@@ -120,7 +125,11 @@ module Beaker
|
|
120
125
|
@network_manager.cleanup
|
121
126
|
end
|
122
127
|
end
|
123
|
-
|
128
|
+
|
129
|
+
if @logger.is_debug?
|
130
|
+
print_reproduction_info( :debug )
|
131
|
+
end
|
132
|
+
@perf.print_perf_info if @options[:collect_perf_data]
|
124
133
|
end
|
125
134
|
end
|
126
135
|
|
@@ -138,7 +147,45 @@ module Beaker
|
|
138
147
|
).run_and_raise_on_failure
|
139
148
|
end
|
140
149
|
|
150
|
+
# @see print_env_vars_affecting_beaker & print_command_line
|
141
151
|
def print_reproduction_info( log_level = :debug )
|
152
|
+
print_command_line( log_level )
|
153
|
+
print_env_vars_affecting_beaker( log_level )
|
154
|
+
end
|
155
|
+
|
156
|
+
# Prints Environment variables affecting the beaker run (those that
|
157
|
+
# beaker introspects + the ruby env that beaker runs within)
|
158
|
+
# @param [Symbol] log_level The log level (coloring) to print the message at
|
159
|
+
# @example Print pertinent env vars using error leve reporting (red)
|
160
|
+
# print_env_vars_affecting_beaker :error
|
161
|
+
#
|
162
|
+
# @return nil
|
163
|
+
def print_env_vars_affecting_beaker( log_level )
|
164
|
+
beaker_env_vars = Beaker::Options::Presets::ENVIRONMENT_SPEC.values
|
165
|
+
non_beaker_env_vars = [ 'BUNDLE_PATH', 'BUNDLE_BIN', 'GEM_HOME', 'GEM_PATH', 'RUBYLIB', 'PATH']
|
166
|
+
important_env_vars = beaker_env_vars + non_beaker_env_vars
|
167
|
+
env_var_map = important_env_vars.inject({}) do |memo, possibly_set_vars|
|
168
|
+
set_var = Array(possibly_set_vars).detect {|possible_var| ENV[possible_var] }
|
169
|
+
memo[set_var] = ENV[set_var] if set_var
|
170
|
+
memo
|
171
|
+
end
|
172
|
+
|
173
|
+
puts ''
|
174
|
+
@logger.send( log_level, "Important ENV variables that may have affected your run:" )
|
175
|
+
env_var_map.each_pair do |var, value|
|
176
|
+
@logger.send( log_level, " #{var}\t\t#{value}" )
|
177
|
+
end
|
178
|
+
puts ''
|
179
|
+
end
|
180
|
+
|
181
|
+
# Prints the command line that can be called to reproduce this run
|
182
|
+
# (assuming the environment is the same)
|
183
|
+
# @param [Symbol] log_level The log level (coloring) to print the message at
|
184
|
+
# @example Print pertinent env vars using error leve reporting (red)
|
185
|
+
# print_command_line :error
|
186
|
+
#
|
187
|
+
# @return nil
|
188
|
+
def print_command_line( log_level = :debug )
|
142
189
|
puts ''
|
143
190
|
@logger.send(log_level, "You can reproduce this run with:\n")
|
144
191
|
@logger.send(log_level, @options[:command_line])
|