File tree 5 files changed +65
-0
lines changed
5 files changed +65
-0
lines changed Original file line number Diff line number Diff line change 20
20
* [ ` peadm::assert_supported_pe_version ` ] ( #peadm--assert_supported_pe_version ) : Assert that the PE version given is supported by PEAdm
21
21
* [ ` peadm::bolt_version ` ] ( #peadm--bolt_version )
22
22
* [ ` 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
23
24
* [ ` peadm::check_version_and_known_hosts ` ] ( #peadm--check_version_and_known_hosts ) : Checks PE verison and warns about setting r10k_known_hosts
24
25
* [ ` peadm::convert_hash ` ] ( #peadm--convert_hash ) : converts two arrays into hash
25
26
* [ ` peadm::convert_status ` ] ( #peadm--convert_status ) : Transforms a value in a human readable status with or without colors
@@ -266,6 +267,30 @@ Variant[Target,
266
267
267
268
268
269
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
+
269
294
### <a name =" peadm--check_version_and_known_hosts " ></a >` peadm::check_version_and_known_hosts `
270
295
271
296
Type: 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(TargetSpec $targets , Boolean $output_details = true ) >> Integer {
12
+ $check_result = wait_until_available($targets , wait_time => 2, _catch_errors => true )
13
+ if $check_result .ok {
14
+ } elsif $output_details {
15
+ $check_result .error_set.each |$result | {
16
+ out::message(" ## node ${result.target} has connection error '${result.error.kind}' with message '${result.error.msg}'" )
17
+ }
18
+ }
19
+
20
+ return $check_result .error_set.count
21
+ }
Original file line number Diff line number Diff line change 56
56
)
57
57
58
58
out::message(' # Gathering information' )
59
+ $failed_node_counter = peadm::check_availability($pe_installer_targets )
60
+ if $failed_node_counter > 0 {
61
+ fail(" # Stopping peadm::convert because ${$failed_node_counter} nodes aren't available" )
62
+ } else {
63
+ out::message(' # All nodes are reachable, continuing with peadm::convert' )
64
+ }
59
65
60
66
# Get trusted fact information for all compilers. Use peadm::certname() as
61
67
# the hash key because the apply block below will break trying to parse the
Original file line number Diff line number Diff line change 76
76
) {
77
77
peadm::assert_supported_bolt_version()
78
78
79
+ out::message(' # Gathering information' )
79
80
peadm::assert_supported_pe_version($version , $permit_unsafe_versions )
81
+ $failed_node_counter = peadm::check_availability($pe_installer_targets )
82
+ if $failed_node_counter > 0 {
83
+ fail(" # Stopping peadm::upgrade because ${$failed_node_counter} nodes aren't available" )
84
+ } else {
85
+ out::message(' # All nodes are reachable, continuing with peadm::install' )
86
+ }
80
87
81
88
$install_result = run_plan(' peadm::subplans::install' ,
82
89
# Standard
Original file line number Diff line number Diff line change 98
98
])
99
99
100
100
out::message(' # Gathering information' )
101
+ $failed_node_counter = peadm::check_availability($pe_installer_targets )
102
+ if $failed_node_counter > 0 {
103
+ fail(" # Stopping peadm::upgrade because ${$failed_node_counter} nodes aren't available" )
104
+ } else {
105
+ out::message(' # All nodes are reachable, continuing with peadm::upgrade' )
106
+ }
101
107
102
108
# lint:ignore:strict_indent
103
109
$primary_target .peadm::fail_on_transport(' pcp' , @(HEREDOC/n))
You can’t perform that action at this time.
0 commit comments