# HG changeset patch # User Tom Gottfried # Date 1559305008 -7200 # Node ID a5448426e4e2f654bd6e2d28ead5b8b2d19025ff # Parent c0f8f9ba21a7f6741d3cc4761168684618aad84a Only erase gauges that have been requested from ERDMS diff -r c0f8f9ba21a7 -r a5448426e4e2 pkg/imports/dmv.go --- a/pkg/imports/dmv.go Fri May 31 13:59:54 2019 +0200 +++ b/pkg/imports/dmv.go Fri May 31 14:16:48 2019 +0200 @@ -87,7 +87,7 @@ start := time.Now() - responseData, err := getRisData( + responseData, _, err := getRisData( ctx, conn, feedback, diff -r c0f8f9ba21a7 -r a5448426e4e2 pkg/imports/erdms.go --- a/pkg/imports/erdms.go Fri May 31 13:59:54 2019 +0200 +++ b/pkg/imports/erdms.go Fri May 31 14:16:48 2019 +0200 @@ -65,11 +65,11 @@ URL string, insecure bool, funcode string, -) ([]*erdms.GetRisDataXMLResponse, error) { +) ([]*erdms.GetRisDataXMLResponse, []string, error) { countries, err := userCountries(ctx, conn) if err != nil { - return nil, err + return nil, nil, err } var auth *soap.BasicAuth @@ -106,7 +106,8 @@ tries++ goto again } - return nil, fmt.Errorf("Error requesting ERDMS service: %v", err) + return nil, nil, fmt.Errorf( + "Error requesting ERDMS service: %v", err) } responseData = append(responseData, data) } @@ -114,5 +115,5 @@ feedback.Info("Import data for countries: %s.", strings.Join(countries, ", ")) - return responseData, nil + return responseData, countries, nil } diff -r c0f8f9ba21a7 -r a5448426e4e2 pkg/imports/wg.go --- a/pkg/imports/wg.go Fri May 31 13:59:54 2019 +0200 +++ b/pkg/imports/wg.go Fri May 31 14:16:48 2019 +0200 @@ -67,7 +67,9 @@ const ( eraseObsoleteGaugesSQL = ` UPDATE waterway.gauges SET erased = true -WHERE NOT erased AND isrs_astext(location) <> ALL($1) +WHERE NOT erased + AND (location).country_code = ANY($1) + AND isrs_astext(location) <> ALL($2) RETURNING isrs_astext(location) ` @@ -184,7 +186,7 @@ start := time.Now() - responseData, err := getRisData( + responseData, countries, err := getRisData( ctx, conn, feedback, @@ -515,9 +517,13 @@ return nil, UnchangedError("No gauges returned from ERDMS") } - var pgGauges pgtype.VarcharArray + var pgCountries, pgGauges pgtype.VarcharArray + pgCountries.Set(countries) pgGauges.Set(gauges) - obsGauges, err := conn.QueryContext(ctx, eraseObsoleteGaugesSQL, &pgGauges) + obsGauges, err := conn.QueryContext(ctx, + eraseObsoleteGaugesSQL, + &pgCountries, + &pgGauges) if err != nil { return nil, err }