zombierecovery: make matches stable

pull/70/head
Oliver Gugger 1 year ago
parent 46985696aa
commit e7c12e4335
No known key found for this signature in database
GPG Key ID: 8E4256593F177720

@ -6,7 +6,9 @@ import (
"fmt" "fmt"
"os" "os"
"regexp" "regexp"
"sort"
"strconv" "strconv"
"strings"
"text/template" "text/template"
"time" "time"
@ -270,8 +272,18 @@ func (c *zombieRecoveryFindMatchesCommand) Execute(_ *cobra.Command,
} }
} }
// To achieve a stable order, we sort the matches lexicographically by
// their node key.
node1IDs := make([]string, 0, len(matches))
for node1 := range matches {
node1IDs = append(node1IDs, node1)
}
sort.Strings(node1IDs)
// Write the matches to files. // Write the matches to files.
for node1, node1map := range matches { for _, node1 := range node1IDs {
node1map := matches[node1]
tpl, err := template.New("initial").Parse(initialTemplate) tpl, err := template.New("initial").Parse(initialTemplate)
if err != nil { if err != nil {
return fmt.Errorf("error parsing template: %w", err) return fmt.Errorf("error parsing template: %w", err)
@ -288,12 +300,12 @@ func (c *zombieRecoveryFindMatchesCommand) Execute(_ *cobra.Command,
} }
folder := fmt.Sprintf("results/match-%s", node1) folder := fmt.Sprintf("results/match-%s", node1)
err = os.MkdirAll(folder, 0755)
if err != nil {
return err
}
for node2, match := range node1map { for node2, match := range node1map {
err = os.MkdirAll(folder, 0755)
if err != nil {
return err
}
matchBytes, err := json.MarshalIndent(match, "", " ") matchBytes, err := json.MarshalIndent(match, "", " ")
if err != nil { if err != nil {
return err return err
@ -349,6 +361,11 @@ func fetchChannels(client *graphql.Client, pubkey string) ([]*gqChannel,
var query gqGetNodeQuery var query gqGetNodeQuery
err := client.Query(context.Background(), &query, variables) err := client.Query(context.Background(), &query, variables)
if err != nil { if err != nil {
if strings.Contains(err.Error(), "Too many requests") {
time.Sleep(1 * time.Second)
continue
}
return nil, err return nil, err
} }

Loading…
Cancel
Save