@@ -18,6 +18,7 @@ package status
18
18
19
19
import (
20
20
"context"
21
+ "errors"
21
22
"fmt"
22
23
"sort"
23
24
"strings"
@@ -85,19 +86,28 @@ func (sc *StatusChecker) Assess(identifiers ...object.ObjMetadata) error {
85
86
sort .SliceStable (identifiers , func (i , j int ) bool {
86
87
return strings .Compare (identifiers [i ].Name , identifiers [j ].Name ) < 0
87
88
})
89
+ var errs []error
88
90
for _ , id := range identifiers {
89
91
rs := coll .ResourceStatuses [id ]
90
92
switch rs .Status {
91
93
case status .CurrentStatus :
92
94
sc .logger .Successf ("%s: %s ready" , rs .Identifier .Name , strings .ToLower (rs .Identifier .GroupKind .Kind ))
93
95
case status .NotFoundStatus :
94
- sc .logger .Failuref ("%s: %s not found" , rs .Identifier .Name , strings .ToLower (rs .Identifier .GroupKind .Kind ))
96
+ errMsg := fmt .Sprintf ("%s: %s not found" , rs .Identifier .Name , strings .ToLower (rs .Identifier .GroupKind .Kind ))
97
+ sc .logger .Failuref (errMsg )
98
+ errs = append (errs , errors .New (errMsg ))
95
99
default :
96
- sc .logger .Failuref ("%s: %s not ready" , rs .Identifier .Name , strings .ToLower (rs .Identifier .GroupKind .Kind ))
100
+ errMsg := fmt .Sprintf ("%s: %s not ready" , rs .Identifier .Name , strings .ToLower (rs .Identifier .GroupKind .Kind ))
101
+ sc .logger .Failuref (errMsg )
102
+ errs = append (errs , errors .New (errMsg ))
97
103
}
98
104
}
99
105
100
- if coll .Error != nil || ctx .Err () == context .DeadlineExceeded {
106
+ if len (errs ) > 0 {
107
+ return errors .Join (errs ... )
108
+ }
109
+
110
+ if coll .Error != nil || errors .Is (ctx .Err (), context .DeadlineExceeded ) {
101
111
return fmt .Errorf ("timed out waiting for all resources to be ready" )
102
112
}
103
113
return nil
0 commit comments