in internal/deployers/eksapi/logs.go [253:280]
func (m *logManager) isNodeDiagnosticComplete(nodeDiagnostic *unstructured.Unstructured) (bool, []string) {
captureStatuses, found, err := unstructured.NestedSlice(nodeDiagnostic.Object, "status", "captureStatuses")
if err != nil {
klog.Errorf("NodeDiagnostic captureStatuses does not match expected type: %+v", nodeDiagnostic)
return false, nil
}
if !found {
return false, nil
}
var reasons []string
for _, captureStatus := range captureStatuses {
captureStatusMap, ok := captureStatus.(map[string]interface{})
if !ok {
klog.Errorf("NodeDiagnostic captureStatus does not match expected type: %+v", nodeDiagnostic)
return false, nil
}
reason, found, err := unstructured.NestedString(captureStatusMap, "state", "completed", "reason")
if err != nil {
klog.Errorf("NodeDiagnostic captureStatus.reason does not match expected type: %+v", nodeDiagnostic)
return false, nil
}
if !found {
return false, nil
}
reasons = append(reasons, reason)
}
return true, reasons
}