mirror of
https://github.com/grafana/grafana.git
synced 2024-12-01 21:19:28 -06:00
b885da09da
* Implement run migration endpoint * Refactor RunMigration method into separate methods * Save migration runs fix lint * Minor changes * Refactor how to use cms endpoint * fix interface * complete merge * add individual items * adds tracing to getMigration * linter * updated swagger definition with the latest changes * CloudMigrations: Implement core API handlers for cloud migrations and migration runs (#85407) * implement delete * add auth token encryption * implement token validation * call token validation during migration creation * implement get migration status * implement list migration runs * fix bug * finish parse domain func * fix urls * fix typo * fix encoding and decoding * remove double decryption * add missing slash * fix id returned by create function * inject missing services * finish implementing (as far as I can tell right now) data migration and response handling * comment out broken test, needs a rewrite * add a few final touches * get dashboard migration to work properly * changed runMigration to a POST * swagger * swagger * swagger --------- Co-authored-by: Michael Mandrus <michael.mandrus@grafana.com> Co-authored-by: Leonard Gram <leo@xlson.com> Co-authored-by: Michael Mandrus <41969079+mmandrus@users.noreply.github.com>
83 lines
5.3 KiB
Go
83 lines
5.3 KiB
Go
package dashboards
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/grafana/grafana/pkg/services/auth/identity"
|
|
"github.com/grafana/grafana/pkg/services/folder"
|
|
"github.com/grafana/grafana/pkg/services/quota"
|
|
"github.com/grafana/grafana/pkg/services/search/model"
|
|
)
|
|
|
|
// DashboardService is a service for operating on dashboards.
|
|
//
|
|
//go:generate mockery --name DashboardService --structname FakeDashboardService --inpackage --filename dashboard_service_mock.go
|
|
type DashboardService interface {
|
|
BuildSaveDashboardCommand(ctx context.Context, dto *SaveDashboardDTO, validateProvisionedDashboard bool) (*SaveDashboardCommand, error)
|
|
DeleteDashboard(ctx context.Context, dashboardId int64, orgId int64) error
|
|
FindDashboards(ctx context.Context, query *FindPersistedDashboardsQuery) ([]DashboardSearchProjection, error)
|
|
// GetDashboard fetches a dashboard.
|
|
// To fetch a dashboard under root by title should set the folder UID to point to an empty string
|
|
// eg. util.Pointer("")
|
|
GetDashboard(ctx context.Context, query *GetDashboardQuery) (*Dashboard, error)
|
|
GetDashboards(ctx context.Context, query *GetDashboardsQuery) ([]*Dashboard, error)
|
|
GetDashboardTags(ctx context.Context, query *GetDashboardTagsQuery) ([]*DashboardTagCloudItem, error)
|
|
GetDashboardUIDByID(ctx context.Context, query *GetDashboardRefByIDQuery) (*DashboardRef, error)
|
|
ImportDashboard(ctx context.Context, dto *SaveDashboardDTO) (*Dashboard, error)
|
|
SaveDashboard(ctx context.Context, dto *SaveDashboardDTO, allowUiUpdate bool) (*Dashboard, error)
|
|
SearchDashboards(ctx context.Context, query *FindPersistedDashboardsQuery) (model.HitList, error)
|
|
CountInFolders(ctx context.Context, orgID int64, folderUIDs []string, user identity.Requester) (int64, error)
|
|
GetDashboardsSharedWithUser(ctx context.Context, user identity.Requester) ([]*Dashboard, error)
|
|
GetAllDashboards(ctx context.Context) ([]*Dashboard, error)
|
|
}
|
|
|
|
// PluginService is a service for operating on plugin dashboards.
|
|
type PluginService interface {
|
|
GetDashboardsByPluginID(ctx context.Context, query *GetDashboardsByPluginIDQuery) ([]*Dashboard, error)
|
|
}
|
|
|
|
// DashboardProvisioningService is a service for operating on provisioned dashboards.
|
|
//
|
|
//go:generate mockery --name DashboardProvisioningService --structname FakeDashboardProvisioning --inpackage --filename dashboard_provisioning_mock.go
|
|
type DashboardProvisioningService interface {
|
|
DeleteOrphanedProvisionedDashboards(ctx context.Context, cmd *DeleteOrphanedProvisionedDashboardsCommand) error
|
|
DeleteProvisionedDashboard(ctx context.Context, dashboardID int64, orgID int64) error
|
|
GetProvisionedDashboardData(ctx context.Context, name string) ([]*DashboardProvisioning, error)
|
|
GetProvisionedDashboardDataByDashboardID(ctx context.Context, dashboardID int64) (*DashboardProvisioning, error)
|
|
GetProvisionedDashboardDataByDashboardUID(ctx context.Context, orgID int64, dashboardUID string) (*DashboardProvisioning, error)
|
|
SaveFolderForProvisionedDashboards(context.Context, *folder.CreateFolderCommand) (*folder.Folder, error)
|
|
SaveProvisionedDashboard(ctx context.Context, dto *SaveDashboardDTO, provisioning *DashboardProvisioning) (*Dashboard, error)
|
|
UnprovisionDashboard(ctx context.Context, dashboardID int64) error
|
|
}
|
|
|
|
// Store is a dashboard store.
|
|
//
|
|
//go:generate mockery --name Store --structname FakeDashboardStore --inpackage --filename store_mock.go
|
|
type Store interface {
|
|
DeleteDashboard(ctx context.Context, cmd *DeleteDashboardCommand) error
|
|
DeleteOrphanedProvisionedDashboards(ctx context.Context, cmd *DeleteOrphanedProvisionedDashboardsCommand) error
|
|
FindDashboards(ctx context.Context, query *FindPersistedDashboardsQuery) ([]DashboardSearchProjection, error)
|
|
GetDashboard(ctx context.Context, query *GetDashboardQuery) (*Dashboard, error)
|
|
GetDashboardUIDByID(ctx context.Context, query *GetDashboardRefByIDQuery) (*DashboardRef, error)
|
|
GetDashboards(ctx context.Context, query *GetDashboardsQuery) ([]*Dashboard, error)
|
|
// GetDashboardsByPluginID retrieves dashboards identified by plugin.
|
|
GetDashboardsByPluginID(ctx context.Context, query *GetDashboardsByPluginIDQuery) ([]*Dashboard, error)
|
|
GetDashboardTags(ctx context.Context, query *GetDashboardTagsQuery) ([]*DashboardTagCloudItem, error)
|
|
GetProvisionedDashboardData(ctx context.Context, name string) ([]*DashboardProvisioning, error)
|
|
GetProvisionedDataByDashboardID(ctx context.Context, dashboardID int64) (*DashboardProvisioning, error)
|
|
GetProvisionedDataByDashboardUID(ctx context.Context, orgID int64, dashboardUID string) (*DashboardProvisioning, error)
|
|
SaveDashboard(ctx context.Context, cmd SaveDashboardCommand) (*Dashboard, error)
|
|
SaveProvisionedDashboard(ctx context.Context, cmd SaveDashboardCommand, provisioning *DashboardProvisioning) (*Dashboard, error)
|
|
UnprovisionDashboard(ctx context.Context, id int64) error
|
|
// ValidateDashboardBeforeSave validates a dashboard before save.
|
|
ValidateDashboardBeforeSave(ctx context.Context, dashboard *Dashboard, overwrite bool) (bool, error)
|
|
|
|
Count(context.Context, *quota.ScopeParameters) (*quota.Map, error)
|
|
// CountDashboardsInFolder returns the number of dashboards associated with
|
|
// the given parent folder ID.
|
|
CountDashboardsInFolders(ctx context.Context, request *CountDashboardsInFolderRequest) (int64, error)
|
|
DeleteDashboardsInFolders(ctx context.Context, request *DeleteDashboardsInFolderRequest) error
|
|
|
|
GetAllDashboards(ctx context.Context) ([]*Dashboard, error)
|
|
}
|