mirror of
https://github.com/grafana/grafana.git
synced 2025-08-02 15:42:21 +08:00
145 lines
5.1 KiB
Go
145 lines
5.1 KiB
Go
package dashboards
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/grafana/grafana/pkg/apimachinery/errutil"
|
|
"github.com/grafana/grafana/pkg/services/dashboards/dashboardaccess"
|
|
)
|
|
|
|
// Typed errors
|
|
var (
|
|
ErrDashboardNotFound = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard not found",
|
|
StatusCode: 404,
|
|
Status: "not-found",
|
|
}
|
|
ErrDashboardCorrupt = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard data is missing or corrupt",
|
|
StatusCode: 500,
|
|
Status: "not-found",
|
|
}
|
|
ErrDashboardPanelNotFound = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard panel not found",
|
|
StatusCode: 404,
|
|
Status: "not-found",
|
|
}
|
|
ErrDashboardFolderNotFound = dashboardaccess.DashboardErr{
|
|
Reason: "Folder not found",
|
|
StatusCode: 404,
|
|
}
|
|
ErrDashboardWithSameUIDExists = dashboardaccess.DashboardErr{
|
|
Reason: "A dashboard with the same uid already exists",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardVersionMismatch = dashboardaccess.DashboardErr{
|
|
Reason: "The dashboard has been changed by someone else",
|
|
StatusCode: 412,
|
|
Status: "version-mismatch",
|
|
}
|
|
ErrDashboardTitleEmpty = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard title cannot be empty",
|
|
StatusCode: 400,
|
|
Status: "empty-name",
|
|
}
|
|
ErrDashboardTitleTooLong = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard title cannot contain more than 5 000 characters",
|
|
StatusCode: 400,
|
|
Status: "title-too-long",
|
|
}
|
|
ErrDashboardFolderCannotHaveParent = dashboardaccess.DashboardErr{
|
|
Reason: "A Dashboard Folder cannot be added to another folder",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardsWithSameSlugExists = dashboardaccess.DashboardErr{
|
|
Reason: "Multiple dashboards with the same slug exists",
|
|
StatusCode: 412,
|
|
}
|
|
ErrDashboardTypeMismatch = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard cannot be changed to a folder",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardFolderNameExists = dashboardaccess.DashboardErr{
|
|
Reason: "A folder with that name already exists",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardUpdateAccessDenied = dashboardaccess.DashboardErr{
|
|
Reason: "Access denied to save dashboard",
|
|
StatusCode: 403,
|
|
}
|
|
ErrDashboardInvalidUid = dashboardaccess.DashboardErr{
|
|
Reason: "uid contains illegal characters",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardUidTooLong = dashboardaccess.DashboardErr{
|
|
Reason: "uid too long, max 40 characters",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardMessageTooLong = dashboardaccess.DashboardErr{
|
|
Reason: "message too long, max 500 characters",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardCannotSaveProvisionedDashboard = dashboardaccess.DashboardErr{
|
|
Reason: "Cannot save provisioned dashboard",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardRefreshIntervalTooShort = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard refresh interval is too low",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardCannotDeleteProvisionedDashboard = dashboardaccess.DashboardErr{
|
|
Reason: "provisioned dashboard cannot be deleted",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardIdentifierNotSet = dashboardaccess.DashboardErr{
|
|
Reason: "Unique identifier needed to be able to get a dashboard",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardIdentifierInvalid = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard ID not a number",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardPanelIdentifierInvalid = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard panel ID not a number",
|
|
StatusCode: 400,
|
|
}
|
|
ErrDashboardOrPanelIdentifierNotSet = dashboardaccess.DashboardErr{
|
|
Reason: "Unique identifier needed to be able to get a dashboard panel",
|
|
StatusCode: 400,
|
|
}
|
|
ErrProvisionedDashboardNotFound = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard is not provisioned",
|
|
StatusCode: 404,
|
|
Status: "not-found",
|
|
}
|
|
ErrFolderRestoreNotFound = dashboardaccess.DashboardErr{
|
|
Reason: "Restoring folder not found",
|
|
StatusCode: 400,
|
|
Status: "bad-request",
|
|
}
|
|
ErrQuotaReached = dashboardaccess.DashboardErr{
|
|
Reason: "Dashboard quota reached",
|
|
StatusCode: 403,
|
|
Status: "quota-reached",
|
|
}
|
|
|
|
ErrFolderNotFound = errors.New("folder not found")
|
|
ErrFolderVersionMismatch = errors.New("the folder has been changed by someone else")
|
|
ErrFolderTitleEmpty = errors.New("folder title cannot be empty")
|
|
ErrFolderWithSameUIDExists = errors.New("a folder/dashboard with the same uid already exists")
|
|
ErrFolderInvalidUID = errors.New("invalid uid for folder provided")
|
|
ErrFolderAccessDenied = errors.New("access denied to folder")
|
|
ErrUserIsNotSignedInToOrg = errors.New("user is not signed in to organization")
|
|
ErrMoveAccessDenied = errutil.Forbidden("folders.forbiddenMove", errutil.WithPublicMessage("Access denied to the destination folder"))
|
|
ErrFolderAccessEscalation = errutil.Forbidden("folders.accessEscalation", errutil.WithPublicMessage("Cannot move a folder to a folder where you have higher permissions"))
|
|
ErrFolderCreationAccessDenied = errutil.Forbidden("folders.forbiddenCreation", errutil.WithPublicMessage("not enough permissions to create a folder in the selected location"))
|
|
)
|
|
|
|
type UpdatePluginDashboardError struct {
|
|
PluginId string
|
|
}
|
|
|
|
func (d UpdatePluginDashboardError) Error() string {
|
|
return "Dashboard belongs to plugin"
|
|
}
|