* Activate schema validation and align underlying systems * update to save as v0 if not the right schema version * Resolve merge conflicts * Move RequireApiErrorStatus to tests package * Add mutation tests * Fix lint * Only do min version check if dashboard is v1 * Fix lint and disable provisioning test * Revert provisioning changes * Revert more tests and add schema test * Reran gen * SQL Dashboard save * Adjust APIVERSION * Fixed mutation test * Add logging on downgrade --------- Co-authored-by: Marco de Abreu <18629099+marcoabreu@users.noreply.github.com> Co-authored-by: Stephanie Hingtgen <stephanie.hingtgen@grafana.com>
21 lines
447 B
Go
21 lines
447 B
Go
package utils
|
|
|
|
import (
|
|
"errors"
|
|
|
|
apierrors "k8s.io/apimachinery/pkg/api/errors"
|
|
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
)
|
|
|
|
// Extract the status from an APIStatus error
|
|
func ExtractApiErrorStatus(err error) (metav1.Status, bool) {
|
|
if err == nil {
|
|
return metav1.Status{}, false
|
|
}
|
|
if statusErr, ok := err.(apierrors.APIStatus); ok && errors.As(err, &statusErr) {
|
|
return statusErr.Status(), true
|
|
}
|
|
|
|
return metav1.Status{}, false
|
|
}
|