Skip to content

Commit ecb5dc9

Browse files
committed
Test GCS HEAD requests with retry
1 parent 3364567 commit ecb5dc9

File tree

3 files changed

+23
-2
lines changed

3 files changed

+23
-2
lines changed

gcs_storage_client.go

+9-2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
package gosnowflake
44

55
import (
6+
"context"
67
"encoding/json"
78
"fmt"
89
"io"
@@ -11,6 +12,7 @@ import (
1112
"os"
1213
"strconv"
1314
"strings"
15+
"time"
1416
)
1517

1618
const (
@@ -74,7 +76,12 @@ func (util *snowflakeGcsClient) getFileHeader(meta *fileMetadata, filename strin
7476
if meta.mockGcsClient != nil {
7577
client = meta.mockGcsClient
7678
}
77-
resp, err := client.Do(req)
79+
req.Close = true
80+
r := newRetryHTTP(context.Background(), client, http.NewRequest, URL, gcsHeaders, time.Second, 3, defaultTimeProvider, nil) // TODO replace with timeout context
81+
r.doHead()
82+
fmt.Printf("Before calling HEAD to GCS\n")
83+
resp, err := r.execute()
84+
fmt.Printf("After calling HEAD to GCS, err: %v\n", err)
7885
if err != nil {
7986
return nil, err
8087
}
@@ -394,6 +401,6 @@ func (util *snowflakeGcsClient) isTokenExpired(resp *http.Response) bool {
394401

395402
func newGcsClient() gcsAPI {
396403
return &http.Client{
397-
Transport: SnowflakeTransport,
404+
//Transport: SnowflakeTransport,
398405
}
399406
}

put_get_test.go

+9
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,11 @@ func TestPutLocalFile(t *testing.T) {
253253
}
254254

255255
func TestPutGetWithAutoCompressFalse(t *testing.T) {
256+
level := logger.GetLogLevel()
257+
_ = logger.SetLogLevel("debug")
258+
defer func() {
259+
_ = logger.SetLogLevel(level)
260+
}()
256261
tmpDir := t.TempDir()
257262
testData := filepath.Join(tmpDir, "data.txt")
258263
f, err := os.Create(testData)
@@ -267,14 +272,17 @@ func TestPutGetWithAutoCompressFalse(t *testing.T) {
267272
assertNilF(t, f.Close())
268273
}()
269274

275+
fmt.Printf("Starting TestPutGetWithAutoCompressFalse at %v\n", time.Now())
270276
runDBTest(t, func(dbt *DBTest) {
271277
stageDir := "test_put_uncompress_file_" + randomString(10)
272278
dbt.mustExec("rm @~/" + stageDir)
273279

274280
// PUT test
281+
fmt.Printf("Running PUT at %v\n", time.Now())
275282
sqlText := fmt.Sprintf("put 'file://%v' @~/%v auto_compress=FALSE", testData, stageDir)
276283
sqlText = strings.ReplaceAll(sqlText, "\\", "\\\\")
277284
dbt.mustExec(sqlText)
285+
fmt.Printf("Finished PUT at %v\n", time.Now())
278286
defer dbt.mustExec("rm @~/" + stageDir)
279287
rows := dbt.mustQuery("ls @~/" + stageDir)
280288
defer func() {
@@ -327,6 +335,7 @@ func TestPutGetWithAutoCompressFalse(t *testing.T) {
327335
}
328336

329337
func TestPutOverwrite(t *testing.T) {
338+
fmt.Printf("Starting TestPutOverwrite at %v\n", time.Now())
330339
tmpDir := t.TempDir()
331340
testData := filepath.Join(tmpDir, "data.txt")
332341
f, err := os.Create(testData)

retry.go

+5
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,11 @@ func (r *retryHTTP) doPost() *retryHTTP {
282282
return r
283283
}
284284

285+
func (r *retryHTTP) doHead() *retryHTTP {
286+
r.method = "HEAD"
287+
return r
288+
}
289+
285290
func (r *retryHTTP) setBody(body []byte) *retryHTTP {
286291
r.bodyCreator = func() ([]byte, error) {
287292
return body, nil

0 commit comments

Comments
 (0)