func()

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
}