You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by ab...@apache.org on 2024/09/18 03:53:14 UTC

(incubator-devlake) 01/02: Revert "fix: empty dora data when run the tasks (#7070) (#7072)"

This is an automated email from the ASF dual-hosted git repository.

abeizn pushed a commit to tag revert-ec3eaf0f1c4f7147d9e88b8f501206f45d5c851d
in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git

commit 5976aebdd0b8ec4351bdeacbbee535b5b0ff25a2
Author: abeizn <zi...@merico.dev>
AuthorDate: Thu Mar 7 11:32:42 2024 +0800

    Revert "fix: empty dora data when run the tasks (#7070) (#7072)"
    
    This reverts commit f82045dfc2119110719954987368cbd7372feb60.
---
 backend/plugins/dora/tasks/change_lead_time_calculator.go  | 14 ++++++++++++++
 backend/plugins/dora/tasks/deployment_commits_generator.go | 13 +++++++++++++
 backend/plugins/dora/tasks/deployment_generator.go         | 14 ++++++++++++++
 backend/plugins/dora/tasks/incident_deploy_connector.go    | 14 ++++++++++++++
 4 files changed, 55 insertions(+)

diff --git a/backend/plugins/dora/tasks/change_lead_time_calculator.go b/backend/plugins/dora/tasks/change_lead_time_calculator.go
index f36303b8c..397450147 100644
--- a/backend/plugins/dora/tasks/change_lead_time_calculator.go
+++ b/backend/plugins/dora/tasks/change_lead_time_calculator.go
@@ -18,6 +18,7 @@ limitations under the License.
 package tasks
 
 import (
+	"fmt"
 	"math"
 	"reflect"
 	"time"
@@ -58,6 +59,19 @@ func CalculateChangeLeadTime(taskCtx plugin.SubTaskContext) errors.Error {
 		return err
 	}
 	defer cursor.Close()
+	count, err := db.Count(clauses...)
+	if err != nil {
+		return errors.Default.Wrap(err, "error getting count of clauses")
+	}
+	if count == 0 {
+		// Clear previous results from the project
+		deleteSql := fmt.Sprintf("DELETE FROM project_pr_metrics WHERE project_name = '%s'", data.Options.ProjectName)
+		err := db.Exec(deleteSql)
+		if err != nil {
+			return errors.Default.Wrap(err, "error deleting previous project_pr_metrics")
+		}
+		return nil
+	}
 
 	converter, err := api.NewDataConverter(api.DataConverterArgs{
 		RawDataSubTaskArgs: api.RawDataSubTaskArgs{
diff --git a/backend/plugins/dora/tasks/deployment_commits_generator.go b/backend/plugins/dora/tasks/deployment_commits_generator.go
index 85da0e5fe..d960f5785 100644
--- a/backend/plugins/dora/tasks/deployment_commits_generator.go
+++ b/backend/plugins/dora/tasks/deployment_commits_generator.go
@@ -112,6 +112,19 @@ func GenerateDeploymentCommits(taskCtx plugin.SubTaskContext) errors.Error {
 		return err
 	}
 	defer cursor.Close()
+	count, err := db.Count(clauses...)
+	if err != nil {
+		return errors.Default.Wrap(err, "error getting count of clauses")
+	}
+	if count == 0 {
+		// Clear previous results from the project
+		deleteSql := fmt.Sprintf("DELETE cdc FROM cicd_deployment_commits cdc LEFT JOIN project_mapping pm ON (pm.table = 'cicd_scopes' AND pm.row_id = cdc.cicd_scope_id) WHERE pm.project_name = '%s'", data.Options.ProjectName)
+		err := db.Exec(deleteSql)
+		if err != nil {
+			return errors.Default.Wrap(err, "error deleting previous cicd_deployment_commits")
+		}
+		return nil
+	}
 
 	enricher, err := api.NewDataConverter(api.DataConverterArgs{
 		RawDataSubTaskArgs: api.RawDataSubTaskArgs{
diff --git a/backend/plugins/dora/tasks/deployment_generator.go b/backend/plugins/dora/tasks/deployment_generator.go
index 3ae9da7e6..f7caada5e 100644
--- a/backend/plugins/dora/tasks/deployment_generator.go
+++ b/backend/plugins/dora/tasks/deployment_generator.go
@@ -18,6 +18,7 @@ limitations under the License.
 package tasks
 
 import (
+	"fmt"
 	"reflect"
 	"time"
 
@@ -90,6 +91,19 @@ func GenerateDeployment(taskCtx plugin.SubTaskContext) errors.Error {
 		return err
 	}
 	defer cursor.Close()
+	count, err := db.Count(clauses...)
+	if err != nil {
+		return errors.Default.Wrap(err, "error getting count of clauses")
+	}
+	if count == 0 {
+		// Clear previous results from the project
+		deleteSql := fmt.Sprintf("DELETE cd FROM cicd_deployments cd LEFT JOIN project_mapping pm ON (pm.table = 'cicd_scopes' AND pm.row_id = cd.cicd_scope_id) WHERE pm.project_name = '%s'", data.Options.ProjectName)
+		err := db.Exec(deleteSql)
+		if err != nil {
+			return errors.Default.Wrap(err, "error deleting previous deployments")
+		}
+		return nil
+	}
 
 	enricher, err := api.NewDataConverter(api.DataConverterArgs{
 		RawDataSubTaskArgs: api.RawDataSubTaskArgs{
diff --git a/backend/plugins/dora/tasks/incident_deploy_connector.go b/backend/plugins/dora/tasks/incident_deploy_connector.go
index cb013503a..f2903d03c 100644
--- a/backend/plugins/dora/tasks/incident_deploy_connector.go
+++ b/backend/plugins/dora/tasks/incident_deploy_connector.go
@@ -18,6 +18,7 @@ limitations under the License.
 package tasks
 
 import (
+	"fmt"
 	"reflect"
 	"time"
 
@@ -62,6 +63,19 @@ func ConnectIncidentToDeployment(taskCtx plugin.SubTaskContext) errors.Error {
 		return err
 	}
 	defer cursor.Close()
+	count, err := db.Count(clauses...)
+	if err != nil {
+		return errors.Default.Wrap(err, "error getting count of clauses")
+	}
+	if count == 0 {
+		// Clear previous results from the project
+		deleteSql := fmt.Sprintf("DELETE FROM project_issue_metrics WHERE project_name = '%s'", data.Options.ProjectName)
+		err := db.Exec(deleteSql)
+		if err != nil {
+			return errors.Default.Wrap(err, "error deleting previous project_issue_metrics")
+		}
+		return nil
+	}
 
 	enricher, err := api.NewDataConverter(api.DataConverterArgs{
 		RawDataSubTaskArgs: api.RawDataSubTaskArgs{