* add new apis * add payloads * create snapshot status type * add some impl * finish implementing update * start implementing build snapshot func * add more fake build logic * add cancel endpoint. do some cleanup * implement GetSnapshot * implement upload snapshot * merge onprem status with gms result * get it working * update comment * rename list endpoint * add query limit and offset * add helper method to snapshot * little bit of cleanup * work on swagger annotations * manual merge * generate swagger specs * clean up curl commands * fix bugs found during final testing * fix linter issue * fix unit test
184 lines
5.5 KiB
Go
184 lines
5.5 KiB
Go
package fake
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"fmt"
|
|
"time"
|
|
|
|
"github.com/grafana/grafana/pkg/services/cloudmigration"
|
|
"github.com/grafana/grafana/pkg/services/gcom"
|
|
"github.com/grafana/grafana/pkg/util"
|
|
)
|
|
|
|
var fixedDate = time.Date(2024, 6, 5, 17, 30, 40, 0, time.UTC)
|
|
|
|
// FakeServiceImpl fake implementation of cloudmigration.Service for testing purposes
|
|
type FakeServiceImpl struct {
|
|
ReturnError bool
|
|
}
|
|
|
|
var _ cloudmigration.Service = (*FakeServiceImpl)(nil)
|
|
|
|
func (m FakeServiceImpl) GetToken(_ context.Context) (gcom.TokenView, error) {
|
|
if m.ReturnError {
|
|
return gcom.TokenView{}, fmt.Errorf("mock error")
|
|
}
|
|
return gcom.TokenView{ID: "mock_id", DisplayName: "mock_name"}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) CreateToken(_ context.Context) (cloudmigration.CreateAccessTokenResponse, error) {
|
|
if m.ReturnError {
|
|
return cloudmigration.CreateAccessTokenResponse{}, fmt.Errorf("mock error")
|
|
}
|
|
return cloudmigration.CreateAccessTokenResponse{Token: "mock_token"}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) ValidateToken(ctx context.Context, migration cloudmigration.CloudMigrationSession) error {
|
|
panic("implement me")
|
|
}
|
|
|
|
func (m FakeServiceImpl) DeleteToken(_ context.Context, _ string) error {
|
|
if m.ReturnError {
|
|
return fmt.Errorf("mock error")
|
|
}
|
|
return nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) CreateSession(_ context.Context, _ cloudmigration.CloudMigrationSessionRequest) (*cloudmigration.CloudMigrationSessionResponse, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
return &cloudmigration.CloudMigrationSessionResponse{
|
|
UID: "fake_uid",
|
|
Slug: "fake_stack",
|
|
Created: fixedDate,
|
|
Updated: fixedDate,
|
|
}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) GetSession(_ context.Context, _ string) (*cloudmigration.CloudMigrationSession, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
return &cloudmigration.CloudMigrationSession{UID: "fake"}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) DeleteSession(_ context.Context, _ string) (*cloudmigration.CloudMigrationSession, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
return &cloudmigration.CloudMigrationSession{UID: "fake"}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) GetSessionList(_ context.Context) (*cloudmigration.CloudMigrationSessionListResponse, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
return &cloudmigration.CloudMigrationSessionListResponse{
|
|
Sessions: []cloudmigration.CloudMigrationSessionResponse{
|
|
{UID: "mock_uid_1", Slug: "mock_stack_1", Created: fixedDate, Updated: fixedDate},
|
|
{UID: "mock_uid_2", Slug: "mock_stack_2", Created: fixedDate, Updated: fixedDate},
|
|
},
|
|
}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) RunMigration(_ context.Context, _ string) (*cloudmigration.MigrateDataResponse, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
r := fakeMigrateDataResponseDTO()
|
|
return &r, nil
|
|
}
|
|
|
|
func fakeMigrateDataResponseDTO() cloudmigration.MigrateDataResponse {
|
|
return cloudmigration.MigrateDataResponse{
|
|
RunUID: "fake_uid",
|
|
Items: []cloudmigration.MigrateDataResponseItem{
|
|
{Type: "type", RefID: "make_refid", Status: "ok", Error: "none"},
|
|
},
|
|
}
|
|
}
|
|
|
|
func (m FakeServiceImpl) CreateMigrationRun(ctx context.Context, run cloudmigration.CloudMigrationSnapshot) (string, error) {
|
|
panic("implement me")
|
|
}
|
|
|
|
func (m FakeServiceImpl) GetMigrationStatus(_ context.Context, _ string) (*cloudmigration.CloudMigrationSnapshot, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
result, err := json.Marshal(fakeMigrateDataResponseDTO())
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return &cloudmigration.CloudMigrationSnapshot{
|
|
ID: 0,
|
|
UID: "fake_uid",
|
|
SessionUID: "fake_mig_uid",
|
|
Result: result,
|
|
Created: fixedDate,
|
|
Updated: fixedDate,
|
|
Finished: fixedDate,
|
|
}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) GetMigrationRunList(_ context.Context, _ string) (*cloudmigration.CloudMigrationRunList, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
return &cloudmigration.CloudMigrationRunList{
|
|
Runs: []cloudmigration.MigrateDataResponseList{
|
|
{RunUID: "fake_run_uid_1"},
|
|
{RunUID: "fake_run_uid_2"},
|
|
},
|
|
}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) CreateSnapshot(ctx context.Context, sessionUid string) (*cloudmigration.CloudMigrationSnapshot, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
return &cloudmigration.CloudMigrationSnapshot{
|
|
UID: util.GenerateShortUID(),
|
|
SessionUID: sessionUid,
|
|
Status: cloudmigration.SnapshotStatusUnknown,
|
|
}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) GetSnapshot(ctx context.Context, sessionUid string, snapshotUid string) (*cloudmigration.CloudMigrationSnapshot, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
return &cloudmigration.CloudMigrationSnapshot{
|
|
UID: util.GenerateShortUID(),
|
|
SessionUID: sessionUid,
|
|
Status: cloudmigration.SnapshotStatusUnknown,
|
|
}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) GetSnapshotList(ctx context.Context, query cloudmigration.ListSnapshotsQuery) ([]cloudmigration.CloudMigrationSnapshot, error) {
|
|
if m.ReturnError {
|
|
return nil, fmt.Errorf("mock error")
|
|
}
|
|
return []cloudmigration.CloudMigrationSnapshot{
|
|
{
|
|
UID: util.GenerateShortUID(),
|
|
SessionUID: query.SessionUID,
|
|
Status: cloudmigration.SnapshotStatusUnknown,
|
|
},
|
|
{
|
|
UID: util.GenerateShortUID(),
|
|
SessionUID: query.SessionUID,
|
|
Status: cloudmigration.SnapshotStatusUnknown,
|
|
},
|
|
}, nil
|
|
}
|
|
|
|
func (m FakeServiceImpl) UploadSnapshot(ctx context.Context, sessionUid string, snapshotUid string) error {
|
|
if m.ReturnError {
|
|
return fmt.Errorf("mock error")
|
|
}
|
|
return nil
|
|
}
|