CloudMigration: Show warning message for successfully migrated non-core data sources (#91545)

* minor performance improvement

* apply a warning to any non-core plugins that successfully migrate

* commit frontend wip while I refactor some stuff

* update api

* repurpose error dialog to be a generic details dialog

* whitespace

* add unit test

* fixes from testing

* fix migration summary

* add comment

* fix localization stuff

* fix backend test

* reduce number of queries to the db

* some PR feedback

* whitespace
This commit is contained in:
Michael Mandrus
2024-08-06 12:35:10 -04:00
committed by GitHub
parent ee78bb653f
commit 6cd0971dc6
20 changed files with 316 additions and 67 deletions
+4 -4
View File
@@ -435,10 +435,10 @@ func (cma *CloudMigrationAPI) GetSnapshot(c *contextmodel.ReqContext) response.R
dtoResults := make([]MigrateDataResponseItemDTO, len(results))
for i := 0; i < len(results); i++ {
dtoResults[i] = MigrateDataResponseItemDTO{
Type: MigrateDataType(results[i].Type),
RefID: results[i].RefID,
Status: ItemStatus(results[i].Status),
Error: results[i].Error,
Type: MigrateDataType(results[i].Type),
RefID: results[i].RefID,
Status: ItemStatus(results[i].Status),
Message: results[i].Error,
}
}
+2 -2
View File
@@ -261,7 +261,7 @@ func TestCloudMigrationAPI_RunMigration(t *testing.T) {
requestUrl: "/api/cloudmigration/migration/1234/run",
basicRole: org.RoleAdmin,
expectedHttpResult: http.StatusOK,
expectedBody: `{"uid":"fake_uid","items":[{"type":"type","refId":"make_refid","status":"ok","error":"none"}]}`,
expectedBody: `{"uid":"fake_uid","items":[{"type":"type","refId":"make_refid","status":"ok","message":"none"}]}`,
},
{
desc: "should return 403 if no used is not admin",
@@ -303,7 +303,7 @@ func TestCloudMigrationAPI_GetMigrationRun(t *testing.T) {
requestUrl: "/api/cloudmigration/migration/run/1234",
basicRole: org.RoleAdmin,
expectedHttpResult: http.StatusOK,
expectedBody: `{"uid":"fake_uid","items":[{"type":"type","refId":"make_refid","status":"ok","error":"none"}]}`,
expectedBody: `{"uid":"fake_uid","items":[{"type":"type","refId":"make_refid","status":"ok","message":"none"}]}`,
},
{
desc: "should return 403 if no used is not admin",
+7 -6
View File
@@ -111,8 +111,8 @@ type MigrateDataResponseItemDTO struct {
// required:true
RefID string `json:"refId"`
// required:true
Status ItemStatus `json:"status"`
Error string `json:"error,omitempty"`
Status ItemStatus `json:"status"`
Message string `json:"message,omitempty"`
}
// swagger:enum MigrateDataType
@@ -129,6 +129,7 @@ type ItemStatus string
const (
ItemStatusOK ItemStatus = "OK"
ItemStatusWarning ItemStatus = "WARNING"
ItemStatusError ItemStatus = "ERROR"
ItemStatusPending ItemStatus = "PENDING"
ItemStatusUnknown ItemStatus = "UNKNOWN"
@@ -192,10 +193,10 @@ func convertMigrateDataResponseToDTO(r cloudmigration.MigrateDataResponse) Migra
for i := 0; i < len(r.Items); i++ {
item := r.Items[i]
items[i] = MigrateDataResponseItemDTO{
Type: MigrateDataType(item.Type),
RefID: item.RefID,
Status: ItemStatus(item.Status),
Error: item.Error,
Type: MigrateDataType(item.Type),
RefID: item.RefID,
Status: ItemStatus(item.Status),
Message: item.Error,
}
}
return MigrateDataResponseDTO{