changeset 5562:5152b4db40cc

Simplified code of log export a bit.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Sat, 12 Feb 2022 09:54:33 +0100
parents b91716d2acc6
children 3be1d79ad3a3
files pkg/controllers/importqueue.go pkg/imports/sr.go
diffstat 2 files changed, 29 insertions(+), 35 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/controllers/importqueue.go	Fri Feb 11 18:57:11 2022 +0100
+++ b/pkg/controllers/importqueue.go	Sat Feb 12 09:54:33 2022 +0100
@@ -289,6 +289,8 @@
 		return
 	}
 
+	start := time.Now()
+
 	conn := mw.GetDBConn(req)
 	ctx := req.Context()
 	var rows *sql.Rows
@@ -298,13 +300,6 @@
 	}
 	defer rows.Close()
 
-	stringString := func(s sql.NullString) string {
-		if s.Valid {
-			return s.String
-		}
-		return ""
-	}
-
 	// Extract some meta infos from the import.
 	type Description interface {
 		Description([]string) (string, error)
@@ -321,16 +316,13 @@
 		signer   sql.NullString
 		warnings bool
 		data     string
-		msgs     []string
+		msgs     pgtype.TextArray
 	}
 
 	// Log unsupported description interfaces per kind only once.
 	unsupported := make(map[string]bool)
 
 	store := func(ds *dataset) error {
-		if ds == nil {
-			return nil
-		}
 
 		var description string
 
@@ -340,9 +332,14 @@
 			if err := common.FromJSONString(ds.data, job); err != nil {
 				log.Errorf("%v\n", err)
 			} else if desc, ok := job.(Description); ok {
-				description, err = desc.Description(ds.msgs)
-				if err != nil {
-					log.Errorf("%v\n", err)
+				var ms []string
+				if ds.msgs.Status == pgtype.Present {
+					if err := ds.msgs.AssignTo(&ms); err != nil {
+						return err
+					}
+				}
+				if description, err = desc.Description(ms); err != nil {
+					return err
 				}
 				description = strings.Replace(description, ",", "|", -1)
 			} else {
@@ -353,13 +350,18 @@
 			}
 		}
 
+		var signer string
+		if ds.signer.Valid {
+			signer = ds.signer.String
+		}
+
 		record[0] = strconv.FormatInt(ds.id, 10)
 		record[1] = ds.kind
 		record[2] = ds.enqueued.UTC().Format(common.TimeFormat)
 		record[3] = ds.changed.UTC().Format(common.TimeFormat)
 		record[4] = ds.user
 		record[5] = ds.country
-		record[6] = stringString(ds.signer)
+		record[6] = signer
 		record[7] = ds.state
 		record[8] = strconv.FormatBool(ds.warnings)
 		record[9] = description
@@ -368,10 +370,8 @@
 	}
 
 	for rows.Next() {
-		var (
-			curr dataset
-			msgs pgtype.TextArray
-		)
+		var curr dataset
+
 		if err := rows.Scan(
 			&curr.id,
 			&curr.state,
@@ -383,34 +383,29 @@
 			&curr.signer,
 			&curr.warnings,
 			&curr.data,
-			&msgs,
+			&curr.msgs,
 		); err != nil {
 			log.Errorf("%v\n", err)
 			return
 		}
 
-		if msgs.Status == pgtype.Present {
-			if err := msgs.AssignTo(&curr.msgs); err != nil {
-				log.Errorf("%v\n", err)
-				return
-			}
-		}
-
 		if err := store(&curr); err != nil {
 			log.Errorf("%v\n", err)
 			return
 		}
 	}
 
+	if err := rows.Err(); err != nil {
+		log.Errorf("%v\n", err)
+		return
+	}
+
 	out.Flush()
 	if err := out.Error(); err != nil {
 		log.Errorf("%v\n", err)
 	}
 
-	if err = rows.Err(); err != nil {
-		log.Errorf("%v\n", err)
-		return
-	}
+	log.Debugf("Export took: %v\n", time.Since(start))
 }
 
 func listImports(req *http.Request) (jr mw.JSONResult, err error) {
--- a/pkg/imports/sr.go	Fri Feb 11 18:57:11 2022 +0100
+++ b/pkg/imports/sr.go	Sat Feb 12 09:54:33 2022 +0100
@@ -266,7 +266,7 @@
 
 	var (
 		bottleneck, st, date string
-		negZ                 *bool
+		negZ                 bool
 	)
 
 	for _, msg := range msgs {
@@ -283,8 +283,7 @@
 			continue
 		}
 		if negateZRe.MatchString(msg) {
-			t := true
-			negZ = &t
+			negZ = true
 		}
 	}
 
@@ -306,7 +305,7 @@
 
 	if sr.NegateZ != nil && *sr.NegateZ {
 		descs = append(descs, "negateZ")
-	} else if negZ != nil && *negZ {
+	} else if negZ {
 		log.Debugln("negateZ recovered")
 		descs = append(descs, "negateZ")
 	}