File tree Expand file tree Collapse file tree 5 files changed +66
-0
lines changed Expand file tree Collapse file tree 5 files changed +66
-0
lines changed Original file line number Diff line number Diff line change 2020* [ ` peadm::assert_supported_pe_version ` ] ( #peadm--assert_supported_pe_version ) : Assert that the PE version given is supported by PEAdm
2121* [ ` peadm::bolt_version ` ] ( #peadm--bolt_version )
2222* [ ` peadm::certname ` ] ( #peadm--certname ) : Return the certname of the given target-like input
23+ * [ ` peadm::check_availability ` ] ( #peadm--check_availability ) : check if a group of targets are reachable for bolt
2324* [ ` peadm::check_version_and_known_hosts ` ] ( #peadm--check_version_and_known_hosts ) : Checks PE verison and warns about setting r10k_known_hosts
2425* [ ` peadm::convert_hash ` ] ( #peadm--convert_hash ) : converts two arrays into hash
2526* [ ` peadm::convert_status ` ] ( #peadm--convert_status ) : Transforms a value in a human readable status with or without colors
@@ -266,6 +267,30 @@ Variant[Target,
266267
267268
268269
270+ ### <a name =" peadm--check_availability " ></a >` peadm::check_availability `
271+
272+ Type: Puppet Language
273+
274+ check if a group of targets are reachable for bolt
275+
276+ #### ` peadm::check_availability(TargetSpec $targets, Boolean $output_details = true) `
277+
278+ The peadm::check_availability function.
279+
280+ Returns: ` Integer ` counter for unavailable nodes
281+
282+ ##### ` targets `
283+
284+ Data type: ` TargetSpec `
285+
286+ list of targets that are going to be checked
287+
288+ ##### ` output_details `
289+
290+ Data type: ` Boolean `
291+
292+ flag to enable/disable error output for failed nodes
293+
269294### <a name =" peadm--check_version_and_known_hosts " ></a >` peadm::check_version_and_known_hosts `
270295
271296Type: Puppet Language
Original file line number Diff line number Diff line change 1+ #
2+ # @summary check if a group of targets are reachable for bolt
3+ #
4+ # @param targets list of targets that are going to be checked
5+ # @param output_details flag to enable/disable error output for failed nodes
6+ #
7+ # @return counter for unavailable nodes
8+ #
9+ # @author Tim Meusel <[email protected] >10+ #
11+ function peadm::check_availability(
12+ TargetSpec $targets ,
13+ Boolean $output_details = true
14+ ) >> Integer {
15+ $check_result = wait_until_available($targets , wait_time => 2, _catch_errors => true )
16+ if $check_result .ok {
17+ } else {
18+ $messages = $check_result .error_set.map |$result | {
19+ " ## node ${result.target} has connection error '${result.error.kind}' with message '${result.error.msg}'"
20+ }
21+ $end_message = " ${check_result.error_set.count} targets are not reachable, stopping plan"
22+ $fail_message = $output_details ? {
23+ true => " ${messages.join(" \n" )}\n ${end_message} " ,
24+ false => $end_message ,
25+ }
26+ fail_plan($fail_message )
27+ }
28+
29+ return $check_result .error_set.count
30+ }
Original file line number Diff line number Diff line change 5656 )
5757
5858 out::message(' # Gathering information' )
59+ peadm::check_availability($all_targets )
5960
6061 # Get trusted fact information for all compilers. Use peadm::certname() as
6162 # the hash key because the apply block below will break trying to parse the
Original file line number Diff line number Diff line change 7676) {
7777 peadm::assert_supported_bolt_version()
7878
79+ out::message(' # Gathering information' )
80+ $all_targets = peadm::flatten_compact([
81+ $primary_host ,
82+ $replica_host ,
83+ $replica_postgresql_host ,
84+ $compiler_hosts ,
85+ $primary_postgresql_host ,
86+ ])
87+ peadm::check_availability($all_targets )
7988 peadm::assert_supported_pe_version($version , $permit_unsafe_versions )
8089
8190 $install_result = run_plan(' peadm::subplans::install' ,
Original file line number Diff line number Diff line change 9898 ])
9999
100100 out::message(' # Gathering information' )
101+ peadm::check_availability($all_targets )
101102
102103 # lint:ignore:strict_indent
103104 $primary_target .peadm::fail_on_transport(' pcp' , @(HEREDOC/n))
You can’t perform that action at this time.
0 commit comments