crossplane
44 строки · 1.2 Кб
1/*
2Copyright 2023 The Crossplane Authors.
3
4Licensed under the Apache License, Version 2.0 (the "License");
5you may not use this file except in compliance with the License.
6You may obtain a copy of the License at
7
8http://www.apache.org/licenses/LICENSE-2.0
9
10Unless required by applicable law or agreed to in writing, software
11distributed under the License is distributed on an "AS IS" BASIS,
12WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13See the License for the specific language governing permissions and
14limitations under the License.
15*/
16
17package errors18
19import (20"k8s.io/apimachinery/pkg/util/validation/field"21)
22
23// WrapFieldError wraps the given field.Error adding the given field.Path as root of the Field.
24func WrapFieldError(err *field.Error, path *field.Path) *field.Error {25if err == nil {26return nil27}28if path == nil {29return err30}31err.Field = path.Child(err.Field).String()32return err33}
34
35// WrapFieldErrorList wraps the given field.ErrorList adding the given field.Path as root of the Field.
36func WrapFieldErrorList(errs field.ErrorList, path *field.Path) field.ErrorList {37if path == nil {38return errs39}40for i := range errs {41errs[i] = WrapFieldError(errs[i], path)42}43return errs44}
45