func inputFile(kv *consulapi.KV, path string) { f, err := os.Open(path) if err != nil { log.Fatal(err.Error()) } r := csv.NewReader(f) for { record, err := r.Read() if err == io.EOF { break } if err != nil { log.Fatal(err) } if len(record) != 2 { fmt.Printf("Incorrectly formatted line: %v\n", record) } d := &consulapi.KVPair{Key: record[0], Value: []byte(record[1])} _, err = kv.Put(d, nil) if err != nil { if consulapi.IsServerError(err) && inRetries < 10 { log.Println("consul server err: retry after 1s") <-time.After(time.Second) inRetries++ inputFile(kv, path) return } log.Fatal(err.Error()) } } }