From 440cf71798098d3bc05a61d8026c960c971841e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Toma=C5=BE=20Jerman?= Date: Sun, 1 Mar 2020 20:52:29 +0100 Subject: [PATCH] Simplify migration source requirements Remove the need of stream seeking. --- pkg/migrate/main.go | 6 ++++-- pkg/migrate/types/migrateable.go | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/migrate/main.go b/pkg/migrate/main.go index d1fa1ba35..e464d9a6d 100644 --- a/pkg/migrate/main.go +++ b/pkg/migrate/main.go @@ -46,7 +46,6 @@ func Migrate(mg []types.Migrateable, ns *cct.Namespace, ctx context.Context) err } uMap, err := migrateUsers(mgUsr, ns, ctx) - mgUsr.Source.Seek(0, 0) if err != nil { return err } @@ -237,7 +236,9 @@ func migrateUsers(mg types.Migrateable, ns *cct.Namespace, ctx context.Context) mapping := make(map[string]uint64) // get fields - r := csv.NewReader(mg.Source) + var srcBuf bytes.Buffer + tee := io.TeeReader(mg.Source, &srcBuf) + r := csv.NewReader(tee) header, err := r.Read() if err != nil { return nil, err @@ -319,5 +320,6 @@ func migrateUsers(mg types.Migrateable, ns *cct.Namespace, ctx context.Context) mapping[record[0]] = u.ID } + mg.Source = &srcBuf return mapping, nil } diff --git a/pkg/migrate/types/migrateable.go b/pkg/migrate/types/migrateable.go index 5c295592d..1135ac652 100644 --- a/pkg/migrate/types/migrateable.go +++ b/pkg/migrate/types/migrateable.go @@ -13,6 +13,6 @@ type ( Name string Path string - Source io.ReadSeeker + Source io.Reader } )