Skip to content

Commit

Permalink
TestOpenGcs
Browse files Browse the repository at this point in the history
  • Loading branch information
Dave Brophy committed Dec 2, 2017
1 parent 77f1311 commit 7366897
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 5 deletions.
2 changes: 2 additions & 0 deletions blaster/blaster.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,7 @@ type Blaster struct {
errorsIgnored uint64
metrics *metricsDef
err error
gcsOpener opener
}

// SetTimeout sets the timeout. See Config.Timeout for more details.
Expand Down Expand Up @@ -166,6 +167,7 @@ func New(ctx context.Context, cancel context.CancelFunc) *Blaster {
hardTimeout: time.Second * 2,
WorkerVariants: []map[string]string{{}},
PayloadVariants: []map[string]string{{}},
gcsOpener: googleCloudOpener{},
}
b.metrics = newMetricsDef(b)

Expand Down
25 changes: 20 additions & 5 deletions blaster/data.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,7 @@ func (b *Blaster) openData(ctx context.Context, value string, headers bool) erro
name := strings.TrimPrefix(value, "gs://")
bucket := name[:strings.Index(name, "/")]
handle := name[strings.Index(name, "/")+1:]
client, err := storage.NewClient(ctx)
if err != nil {
return errors.WithStack(err)
}
gr, err := client.Bucket(bucket).Object(handle).NewReader(ctx)
gr, err := b.gcsOpener.open(ctx, bucket, handle)
if err != nil {
return errors.WithStack(err)
}
Expand All @@ -78,3 +74,22 @@ func (b *Blaster) openData(ctx context.Context, value string, headers bool) erro
return nil

}

type opener interface {
open(context.Context, string, string) (io.Reader, error)
}

type googleCloudOpener struct{}

func (googleCloudOpener) open(ctx context.Context, bucket, handle string) (io.Reader, error) {
// notest
client, err := storage.NewClient(ctx)
if err != nil {
return nil, errors.WithStack(err)
}
gr, err := client.Bucket(bucket).Object(handle).NewReader(ctx)
if err != nil {
return nil, errors.WithStack(err)
}
return gr, nil
}
33 changes: 33 additions & 0 deletions blaster/data_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package blaster

import (
"context"
"io"
"testing"
)

func TestOpenGcs(t *testing.T) {
ctx, cancel := context.WithCancel(context.Background())

b := New(ctx, cancel)

opener := &loggingOpener{}
b.gcsOpener = opener

must(t, b.openData(ctx, "gs://a/b", false))

if opener.bucket != "a" || opener.handle != "b" {
t.Fatalf("Got bucket=%s, handle=%s", opener.bucket, opener.handle)
}
}

type loggingOpener struct {
bucket string
handle string
}

func (l *loggingOpener) open(ctx context.Context, bucket, handle string) (io.Reader, error) {
l.bucket = bucket
l.handle = handle
return nil, nil
}

0 comments on commit 7366897

Please sign in to comment.