From 7cd9740d8f97f91d1b1ae77d80f8c81b609a1553 Mon Sep 17 00:00:00 2001 From: Thomas Legris Date: Mon, 19 Dec 2022 14:50:10 +0900 Subject: [PATCH] Update scan status on start #728 --- deepfence_server/handler/scan_reports.go | 6 ++++ deepfence_server/ingesters/scan_status.go | 36 +++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 deepfence_server/ingesters/scan_status.go diff --git a/deepfence_server/handler/scan_reports.go b/deepfence_server/handler/scan_reports.go index 10debf33a1..3b9be36fb0 100644 --- a/deepfence_server/handler/scan_reports.go +++ b/deepfence_server/handler/scan_reports.go @@ -74,6 +74,12 @@ func (h *Handler) StartSecretScanHandler(w http.ResponseWriter, r *http.Request) return } + err = ingesters.UpdateScanStatus(r.Context(), "SecretScan", scanId, "STARTING") + if err != nil { + httpext.JSON(w, http.StatusInternalServerError, model.Response{Success: false, Data: err}) + return + } + startScan(w, r, scanId, req.NodeId, ctl.StartSecretScan, string(b)) } diff --git a/deepfence_server/ingesters/scan_status.go b/deepfence_server/ingesters/scan_status.go new file mode 100644 index 0000000000..681d5c5280 --- /dev/null +++ b/deepfence_server/ingesters/scan_status.go @@ -0,0 +1,36 @@ +package ingesters + +import ( + "context" + + "github.com/deepfence/ThreatMapper/deepfence_utils/directory" + "github.com/neo4j/neo4j-go-driver/v4/neo4j" +) + +func UpdateScanStatus(ctx context.Context, scan_type string, scan_id string, status string) error { + + driver, err := directory.Neo4jClient(ctx) + + if err != nil { + return err + } + + session := driver.NewSession(neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite}) + if err != nil { + return err + } + defer session.Close() + + tx, err := session.BeginTransaction() + if err != nil { + return err + } + defer tx.Close() + + if _, err = tx.Run("MERGE (n:$scan_type{node_id: $scan_id}) SET n.status = $status", + map[string]interface{}{"scan_id": scan_id, "status": status, "scan_type": scan_type}); err != nil { + return err + } + + return tx.Commit() +}