Updating store and model
This commit is contained in:
@@ -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)
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user