This is an automated email from the ASF dual-hosted git repository.
abeizn pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
The following commit(s) were added to refs/heads/main by this push:
new d66e5998a refactor: add error_name to _devlake_pipelines and
_devlake_tasks (#4008)
d66e5998a is described below
commit d66e5998a7d458861d61818a693a28d01402e9cf
Author: mindlesscloud <[email protected]>
AuthorDate: Wed Dec 21 19:39:29 2022 +0800
refactor: add error_name to _devlake_pipelines and _devlake_tasks (#4008)
---
models/migrationscripts/20221221_add_error_name.go | 54 ++++++++++++++++++++++
models/migrationscripts/register.go | 1 +
models/pipeline.go | 2 +
models/task.go | 1 +
runner/run_task.go | 1 +
services/pipeline_helper.go | 1 +
services/pipeline_runner.go | 1 +
7 files changed, 61 insertions(+)
diff --git a/models/migrationscripts/20221221_add_error_name.go
b/models/migrationscripts/20221221_add_error_name.go
new file mode 100644
index 000000000..e3a1c8268
--- /dev/null
+++ b/models/migrationscripts/20221221_add_error_name.go
@@ -0,0 +1,54 @@
+/*
+Licensed to the Apache Software Foundation (ASF) under one or more
+contributor license agreements. See the NOTICE file distributed with
+this work for additional information regarding copyright ownership.
+The ASF licenses this file to You under the Apache License, Version 2.0
+(the "License"); you may not use this file except in compliance with
+the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package migrationscripts
+
+import (
+ "github.com/apache/incubator-devlake/errors"
+ "github.com/apache/incubator-devlake/helpers/migrationhelper"
+ "github.com/apache/incubator-devlake/plugins/core"
+)
+
+type pipeline20221221 struct {
+ ErrorName string
+}
+
+func (pipeline20221221) TableName() string {
+ return "_devlake_pipelines"
+}
+
+type task20221221 struct {
+ ErrorName string
+}
+
+func (task20221221) TableName() string {
+ return "_devlake_tasks"
+}
+
+type addErrorName struct{}
+
+func (script *addErrorName) Up(basicRes core.BasicRes) errors.Error {
+ return migrationhelper.AutoMigrateTables(basicRes, &pipeline20221221{},
&task20221221{})
+}
+
+func (*addErrorName) Version() uint64 {
+ return 20221221150548
+}
+
+func (*addErrorName) Name() string {
+ return "add error_name to _devlake_tasks and _devlake_pipelines"
+}
diff --git a/models/migrationscripts/register.go
b/models/migrationscripts/register.go
index aa5da7604..0db6254ff 100644
--- a/models/migrationscripts/register.go
+++ b/models/migrationscripts/register.go
@@ -65,5 +65,6 @@ func All() []core.MigrationScript {
new(addEnableToProjectMetric),
new(addCollectorMeta20221125),
new(addOriginalProject),
+ new(addErrorName),
}
}
diff --git a/models/pipeline.go b/models/pipeline.go
index 97fba77e4..0bd428e82 100644
--- a/models/pipeline.go
+++ b/models/pipeline.go
@@ -37,6 +37,7 @@ type Pipeline struct {
FinishedAt *time.Time `json:"finishedAt" gorm:"index"`
Status string `json:"status"`
Message string `json:"message"`
+ ErrorName string `json:"errorName"`
SpentSeconds int `json:"spentSeconds"`
Stage int `json:"stage"`
Labels []string `json:"labels"`
@@ -64,6 +65,7 @@ type DbPipeline struct {
FinishedAt *time.Time `json:"finishedAt" gorm:"index"`
Status string `json:"status"`
Message string `json:"message"`
+ ErrorName string `json:"errorName"`
SpentSeconds int `json:"spentSeconds"`
Stage int `json:"stage"`
SkipOnFail bool `json:"skipOnFail"`
diff --git a/models/task.go b/models/task.go
index 7f09c3437..9ad823447 100644
--- a/models/task.go
+++ b/models/task.go
@@ -54,6 +54,7 @@ type Task struct {
Options datatypes.JSON `json:"options"`
Status string `json:"status"`
Message string `json:"message"`
+ ErrorName string `json:"errorName"`
Progress float32 `json:"progress"`
ProgressDetail *TaskProgressDetail `json:"progressDetail" gorm:"-"`
diff --git a/runner/run_task.go b/runner/run_task.go
index 768368958..ef9ccce36 100644
--- a/runner/run_task.go
+++ b/runner/run_task.go
@@ -86,6 +86,7 @@ func RunTask(
dbe := db.UpdateColumns(task, []dal.DalSet{
{ColumnName: "status", Value:
models.TASK_FAILED},
{ColumnName: "message", Value: lakeErr.Error()},
+ {ColumnName: "error_name", Value:
lakeErr.Messages().Format()},
{ColumnName: "finished_at", Value: finishedAt},
{ColumnName: "spent_seconds", Value:
spentSeconds},
{ColumnName: "failed_sub_task", Value:
subTaskName},
diff --git a/services/pipeline_helper.go b/services/pipeline_helper.go
index 4aea9279e..7a3f80eac 100644
--- a/services/pipeline_helper.go
+++ b/services/pipeline_helper.go
@@ -208,6 +208,7 @@ func parsePipeline(dbPipeline *models.DbPipeline)
*models.Pipeline {
FinishedAt: dbPipeline.FinishedAt,
Status: dbPipeline.Status,
Message: dbPipeline.Message,
+ ErrorName: dbPipeline.ErrorName,
SpentSeconds: dbPipeline.SpentSeconds,
Stage: dbPipeline.Stage,
SkipOnFail: dbPipeline.SkipOnFail,
diff --git a/services/pipeline_runner.go b/services/pipeline_runner.go
index 4347bdcb1..441dd47ab 100644
--- a/services/pipeline_runner.go
+++ b/services/pipeline_runner.go
@@ -128,6 +128,7 @@ func runPipeline(pipelineId uint64) errors.Error {
if err != nil {
dbPipeline.Status = models.TASK_FAILED
dbPipeline.Message = err.Error()
+ dbPipeline.ErrorName = err.Messages().Format()
} else {
dbPipeline.Status = models.TASK_COMPLETED
dbPipeline.Message = ""