From 19909199e48d8ccc038fa5427ae63988d5d0c18e Mon Sep 17 00:00:00 2001 From: Leandro Deveikis Date: Thu, 18 Apr 2024 17:22:28 -0300 Subject: [PATCH] Updating store and model --- .../cloudmigrationimpl/store.go | 8 ++-- .../cloudmigrationimpl/xorm_store.go | 48 +++++++++---------- pkg/services/cloudmigration/model.go | 8 ++-- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/pkg/services/cloudmigration/cloudmigrationimpl/store.go b/pkg/services/cloudmigration/cloudmigrationimpl/store.go index 01cd94022e6..eddd0f5d46b 100644 --- a/pkg/services/cloudmigration/cloudmigrationimpl/store.go +++ b/pkg/services/cloudmigration/cloudmigrationimpl/store.go @@ -8,11 +8,11 @@ import ( type store interface { CreateMigration(ctx context.Context, token cloudmigration.CloudMigration) (*cloudmigration.CloudMigration, error) - GetMigration(context.Context, int64) (*cloudmigration.CloudMigration, error) + GetMigrationByUID(ctx context.Context, uid string) (*cloudmigration.CloudMigration, error) GetAllCloudMigrations(ctx context.Context) ([]*cloudmigration.CloudMigration, error) - DeleteMigration(ctx context.Context, id int64) (*cloudmigration.CloudMigration, error) + DeleteMigration(ctx context.Context, uid string) (*cloudmigration.CloudMigration, error) SaveMigrationRun(ctx context.Context, cmr *cloudmigration.CloudMigrationRun) error - GetMigrationStatus(ctx context.Context, id string, runID string) (*cloudmigration.CloudMigrationRun, error) - GetMigrationStatusList(ctx context.Context, migrationID string) ([]*cloudmigration.CloudMigrationRun, error) + GetMigrationStatus(ctx context.Context, cmrUID string) (*cloudmigration.CloudMigrationRun, error) + GetMigrationStatusList(ctx context.Context, migrationUID string) ([]*cloudmigration.CloudMigrationRun, error) } diff --git a/pkg/services/cloudmigration/cloudmigrationimpl/xorm_store.go b/pkg/services/cloudmigration/cloudmigrationimpl/xorm_store.go index 0223ce6d9a9..cb5ba402ce2 100644 --- a/pkg/services/cloudmigration/cloudmigrationimpl/xorm_store.go +++ b/pkg/services/cloudmigration/cloudmigrationimpl/xorm_store.go @@ -4,25 +4,26 @@ import ( "context" "encoding/base64" "fmt" - "strconv" "time" - "github.com/grafana/grafana/pkg/services/secrets" - "github.com/grafana/grafana/pkg/services/sqlstore" - "github.com/grafana/grafana/pkg/infra/db" "github.com/grafana/grafana/pkg/services/cloudmigration" + "github.com/grafana/grafana/pkg/services/secrets" + "github.com/grafana/grafana/pkg/services/sqlstore" + "github.com/grafana/grafana/pkg/util" ) +var _ store = (*sqlStore)(nil) + type sqlStore struct { db db.DB secretsService secrets.Service } -func (ss *sqlStore) GetMigration(ctx context.Context, id int64) (*cloudmigration.CloudMigration, error) { +func (ss *sqlStore) GetMigrationByUID(ctx context.Context, uid string) (*cloudmigration.CloudMigration, error) { var cm cloudmigration.CloudMigration err := ss.db.WithDbSession(ctx, func(sess *db.Session) error { - exist, err := sess.ID(id).Get(&cm) + exist, err := sess.Where("uid=?", uid).Get(&cm) if err != nil { return err } @@ -41,6 +42,9 @@ func (ss *sqlStore) GetMigration(ctx context.Context, id int64) (*cloudmigration func (ss *sqlStore) SaveMigrationRun(ctx context.Context, cmr *cloudmigration.CloudMigrationRun) error { return ss.db.WithDbSession(ctx, func(sess *db.Session) error { + if cmr.UID == "" { + cmr.UID = util.GenerateShortUID() + } _, err := sess.Insert(cmr) return err }) @@ -54,6 +58,10 @@ func (ss *sqlStore) CreateMigration(ctx context.Context, migration cloudmigratio err := ss.db.WithDbSession(ctx, func(sess *sqlstore.DBSession) error { migration.Created = time.Now() migration.Updated = time.Now() + if migration.UID == "" { + migration.UID = util.GenerateShortUID() + } + _, err := sess.Insert(&migration) if err != nil { return err @@ -83,16 +91,17 @@ func (ss *sqlStore) GetAllCloudMigrations(ctx context.Context) ([]*cloudmigratio return migrations, nil } -func (ss *sqlStore) DeleteMigration(ctx context.Context, id int64) (*cloudmigration.CloudMigration, error) { +func (ss *sqlStore) DeleteMigration(ctx context.Context, uid string) (*cloudmigration.CloudMigration, error) { var c cloudmigration.CloudMigration err := ss.db.WithDbSession(ctx, func(sess *db.Session) error { - exist, err := sess.ID(id).Get(&c) + exist, err := sess.Where("uid=?", uid).Get(&c) if err != nil { return err } if !exist { return cloudmigration.ErrMigrationNotFound } + id := c.ID affected, err := sess.Delete(&cloudmigration.CloudMigration{ ID: id, }) @@ -105,17 +114,10 @@ func (ss *sqlStore) DeleteMigration(ctx context.Context, id int64) (*cloudmigrat return &c, err } -func (ss *sqlStore) GetMigrationStatus(ctx context.Context, migrationID string, runID string) (*cloudmigration.CloudMigrationRun, error) { - id, err := strconv.ParseInt(runID, 10, 64) - if err != nil { - return nil, fmt.Errorf("invalid runID: %s", runID) - } - cm := cloudmigration.CloudMigrationRun{ - ID: id, - CloudMigrationUID: migrationID, - } - err = ss.db.WithDbSession(ctx, func(sess *db.Session) error { - exist, err := sess.Get(&cm) +func (ss *sqlStore) GetMigrationStatus(ctx context.Context, cmrUID string) (*cloudmigration.CloudMigrationRun, error) { + var c cloudmigration.CloudMigrationRun + err := ss.db.WithDbSession(ctx, func(sess *db.Session) error { + exist, err := sess.Where("uid=?", cmrUID).Get(&c) if err != nil { return err } @@ -124,21 +126,19 @@ func (ss *sqlStore) GetMigrationStatus(ctx context.Context, migrationID string, } return nil }) - - return &cm, err + return &c, err } -func (ss *sqlStore) GetMigrationStatusList(ctx context.Context, migrationID string) ([]*cloudmigration.CloudMigrationRun, error) { +func (ss *sqlStore) GetMigrationStatusList(ctx context.Context, migrationUID string) ([]*cloudmigration.CloudMigrationRun, error) { var runs = make([]*cloudmigration.CloudMigrationRun, 0) err := ss.db.WithDbSession(ctx, func(sess *db.Session) error { return sess.Find(&runs, &cloudmigration.CloudMigrationRun{ - CloudMigrationUID: migrationID, + CloudMigrationUID: migrationUID, }) }) if err != nil { return nil, err } - return runs, nil } diff --git a/pkg/services/cloudmigration/model.go b/pkg/services/cloudmigration/model.go index dd7f18e4cc8..4da42e96b2c 100644 --- a/pkg/services/cloudmigration/model.go +++ b/pkg/services/cloudmigration/model.go @@ -63,7 +63,7 @@ func (r CloudMigrationRun) ToResponse() (*MigrateDataResponseDTO, error) { if err != nil { return nil, errors.New("could not parse result of run") } - result.RunID = r.ID + result.RunUID = r.UID return &result, nil } @@ -83,7 +83,7 @@ type CloudMigrationRequest struct { } type CloudMigrationResponse struct { - ID int64 `json:"id"` + UID string `json:"uid"` Stack string `json:"stack"` Created time.Time `json:"created"` Updated time.Time `json:"updated"` @@ -174,8 +174,8 @@ const ( ) type MigrateDataResponseDTO struct { - RunID int64 `json:"id"` - Items []MigrateDataResponseItemDTO `json:"items"` + RunUID string `json:"uid"` + Items []MigrateDataResponseItemDTO `json:"items"` } type MigrateDataResponseItemDTO struct {