Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upload chunks in parallel #1376

Merged
merged 70 commits into from
Feb 22, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
70 commits
Select commit Hold shift + click to select a range
c62ca58
Update sprint 1.12 (#1341)
Hitenjain14 Dec 22, 2023
3a57362
fix trailing whitespace (#1343)
Hitenjain14 Dec 23, 2023
ad762e4
Merge staging changes (#1346)
peterlimg Dec 27, 2023
9b9fdd7
fix upload select (#1351)
Hitenjain14 Jan 4, 2024
f3ec2cc
fix workdir in mobile sdk (#1345)
Hitenjain14 Jan 4, 2024
5569b3d
set option to download to disk in wasm (#1348)
Hitenjain14 Jan 4, 2024
199dfd0
fix panic in hash chan (#1352)
Hitenjain14 Jan 4, 2024
2e55c3f
Fix merge conflict in sprint-1.12 (#1354)
Hitenjain14 Jan 4, 2024
4ed3f42
repair in batches (#1347)
Hitenjain14 Jan 4, 2024
edf037a
Merge staging (#1365)
Hitenjain14 Jan 12, 2024
e1a614f
Fix stake pool stats (#1356)
Jayashsatolia403 Jan 21, 2024
0056303
list pagination (#1368)
Hitenjain14 Jan 21, 2024
97b6a5b
Fix sync in windows (#1370)
Roshan-Mehta Jan 21, 2024
09c3757
Add option for mimeType (#1372)
Hitenjain14 Jan 21, 2024
9bc91c6
fix shutdown blobber (#1374)
boddumanohar Jan 21, 2024
6f48750
Merge remote-tracking branch 'origin/staging' into sprint-1.12
dabasov Jan 21, 2024
e7db14c
Cancel upload (#1332)
Hitenjain14 Jan 22, 2024
716e99b
Fix auth response on wasm (#1359)
peterlimg Jan 22, 2024
15783a0
upload chunks in parallel
Hitenjain14 Jan 22, 2024
0b23592
fix upload wg
Hitenjain14 Jan 22, 2024
de8ef8c
Download buffer (#1363)
Hitenjain14 Jan 22, 2024
1bff6af
fix dataBuffers
Hitenjain14 Jan 23, 2024
53a16a5
add logs and dec workers
Hitenjain14 Jan 23, 2024
2128b09
discard body is status ok
Hitenjain14 Jan 23, 2024
cd5dadf
set idle connections
Hitenjain14 Jan 23, 2024
e5204e6
fix lint
Hitenjain14 Jan 23, 2024
d79ae98
fix content type header
Hitenjain14 Jan 23, 2024
703cbd0
fix req complete cb (#1381)
Hitenjain14 Jan 29, 2024
312f03f
set blocks to 60 and add fasthttp
Hitenjain14 Jan 29, 2024
c906147
set updated in progress
Hitenjain14 Jan 29, 2024
38425c1
rmv in load
Hitenjain14 Jan 29, 2024
024e1ef
fix lint
Hitenjain14 Jan 30, 2024
ec879f4
add mock for fasthttp
Hitenjain14 Jan 30, 2024
65e0c7c
cleanup
Hitenjain14 Jan 30, 2024
386ccf2
add worker support
Hitenjain14 Feb 1, 2024
29daf5e
fix import
Hitenjain14 Feb 1, 2024
e5382ba
rmv alreadyUploaded
Hitenjain14 Feb 1, 2024
312b5cf
get hardfork round by name (#1385)
Hitenjain14 Feb 2, 2024
5cae7a4
made GetFreeAllocationBlobbers public
dabasov Feb 2, 2024
b591524
set fs next
Hitenjain14 Feb 3, 2024
36e5b10
fixed resp format
dabasov Feb 3, 2024
ccda3cd
fixed resp format
dabasov Feb 3, 2024
004db9d
[wasm] Expose minersc - stakePool/unstakePool collect rewards (#1386)
peterlimg Feb 4, 2024
03dd536
fix lint false positive
Hitenjain14 Feb 6, 2024
cb90269
Merge branch 'feat/parallel-upload' of https://github.com/0chain/gosd…
Hitenjain14 Feb 6, 2024
293689e
Merge branch 'staging' into sprint-1.12
dabasov Feb 8, 2024
453f02f
upload chunks in parallel
Hitenjain14 Jan 22, 2024
1ab4b9d
fix upload wg
Hitenjain14 Jan 22, 2024
e78178d
fix dataBuffers
Hitenjain14 Jan 23, 2024
0408843
add logs and dec workers
Hitenjain14 Jan 23, 2024
91840d4
discard body is status ok
Hitenjain14 Jan 23, 2024
b651f22
set idle connections
Hitenjain14 Jan 23, 2024
0c89803
fix lint
Hitenjain14 Jan 23, 2024
d4da19a
fix content type header
Hitenjain14 Jan 23, 2024
27d0255
set blocks to 60 and add fasthttp
Hitenjain14 Jan 29, 2024
189970c
set updated in progress
Hitenjain14 Jan 29, 2024
6fb24a3
rmv in load
Hitenjain14 Jan 29, 2024
38f1c7e
fix lint
Hitenjain14 Jan 30, 2024
a4e4014
add mock for fasthttp
Hitenjain14 Jan 30, 2024
c3d8d95
cleanup
Hitenjain14 Jan 30, 2024
cf5e455
add worker support
Hitenjain14 Feb 1, 2024
a40df6f
fix import
Hitenjain14 Feb 1, 2024
7eb8fdf
rmv alreadyUploaded
Hitenjain14 Feb 1, 2024
549e968
fix lint false positive
Hitenjain14 Feb 6, 2024
781b907
set fs next
Hitenjain14 Feb 3, 2024
d7a92ce
Merge branch 'feat/parallel-upload' of https://github.com/0chain/gosd…
Hitenjain14 Feb 9, 2024
b0c111a
add timer
Hitenjain14 Feb 9, 2024
63b6eff
add timer
Hitenjain14 Feb 9, 2024
51c0030
Merge branch 'feat/parallel-upload' of https://github.com/0chain/gosd…
Hitenjain14 Feb 12, 2024
0f6ab83
Merge branch 'sprint-1.13' of https://github.com/0chain/gosdk into fe…
Hitenjain14 Feb 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ require (
github.com/uptrace/bunrouter v1.0.20
go.dedis.ch/kyber/v3 v3.1.0
go.uber.org/zap v1.24.0
golang.org/x/crypto v0.16.0
golang.org/x/crypto v0.17.0
golang.org/x/image v0.14.0
golang.org/x/sync v0.5.0
google.golang.org/grpc v1.53.0
Expand All @@ -45,10 +45,12 @@ require (
require (
github.com/hashicorp/golang-lru v0.5.5-0.20210104140557-80c98217689d
github.com/minio/sha256-simd v1.0.1
github.com/valyala/fasthttp v1.51.0
)

require (
github.com/VictoriaMetrics/fastcache v1.6.0 // indirect
github.com/andybalholm/brotli v1.0.5 // indirect
github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect
github.com/btcsuite/btcd/chaincfg/chainhash v1.0.2 // indirect
github.com/cespare/xxhash v1.1.0 // indirect
Expand Down Expand Up @@ -112,6 +114,7 @@ require (
github.com/tklauser/go-sysconf v0.3.11 // indirect
github.com/tklauser/numcpus v0.6.0 // indirect
github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa // indirect
github.com/valyala/bytebufferpool v1.0.0 // indirect
github.com/xrash/smetrics v0.0.0-20201216005158-039620a65673 // indirect
go.dedis.ch/fixbuf v1.0.3 // indirect
go.opencensus.io v0.24.0 // indirect
Expand All @@ -128,7 +131,8 @@ require (

require (
github.com/btcsuite/btcd/btcutil v1.1.3
github.com/klauspost/compress v1.16.0 // indirect
github.com/hitenjain14/fasthttp v0.0.0-20240201092245-8e4835c0e974
github.com/klauspost/compress v1.17.0 // indirect
github.com/klauspost/cpuid/v2 v2.2.4 // indirect
github.com/remeh/sizedwaitgroup v1.0.0
github.com/yusufpapurcu/wmi v1.2.2 // indirect
Expand Down
16 changes: 12 additions & 4 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRF
github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156 h1:eMwmnE/GDgah4HI848JfFxHt+iPb26b4zyfspmqY0/8=
github.com/allegro/bigcache v1.2.1-0.20190218064605-e24eb225f156/go.mod h1:Cb/ax3seSYIx7SuZdm2G2xzfwmv3TPSk2ucNfQESPXM=
github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
github.com/andybalholm/brotli v1.0.5 h1:8uQZIdzKmjc/iuPu7O2ioW48L81FgatrcpfFmiq/cCs=
github.com/andybalholm/brotli v1.0.5/go.mod h1:fO7iG3H7G2nSZ7m0zPUDn85XEX2GTukHGRSepvi9Eig=
github.com/apache/arrow/go/arrow v0.0.0-20191024131854-af6fa24be0db/go.mod h1:VTxUBvSJ3s3eHAg65PNgrsn5BtqCRPdmyXh6rAfdxN0=
github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8=
Expand Down Expand Up @@ -297,6 +299,8 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/herumi/bls-go-binary v1.31.0 h1:L1goQ2tMtGgpXCg5AwHAdJQpLs/pfnWWEc3Wog6OhmI=
github.com/herumi/bls-go-binary v1.31.0/go.mod h1:O4Vp1AfR4raRGwFeQpr9X/PQtncEicMoOe6BQt1oX0Y=
github.com/hitenjain14/fasthttp v0.0.0-20240201092245-8e4835c0e974 h1:oEjH9SSKBlzwDyYjzZaqRpxo7GlfUJCyRoOk7QHKSDs=
github.com/hitenjain14/fasthttp v0.0.0-20240201092245-8e4835c0e974/go.mod h1:RZMcXy7u4S+E97IXYTe7WHZ3+mCYOh4vys8PkIGZeXk=
github.com/holiman/bloomfilter/v2 v2.0.3 h1:73e0e/V0tCydx14a0SCYS/EWCxgwLZ18CZcZKVu0fao=
github.com/holiman/bloomfilter/v2 v2.0.3/go.mod h1:zpoh+gs7qcpqrHr3dB55AMiJwo0iURXE7ZOP9L9hSkA=
github.com/holiman/uint256 v1.2.2-0.20230321075855-87b91420868c h1:DZfsyhDK1hnSS5lH8l+JggqzEleHteTYfutAiVlSUM8=
Expand Down Expand Up @@ -336,8 +340,8 @@ github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+o
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
github.com/klauspost/compress v1.4.0/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg=
github.com/klauspost/compress v1.16.0 h1:iULayQNOReoYUe+1qtKOqw9CwJv3aNQu8ivo7lw1HU4=
github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/compress v1.17.0 h1:Rnbp4K9EjcDuVuHtd0dgA4qNuv9yKDYKK1ulpJwgrqM=
github.com/klauspost/compress v1.17.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
github.com/klauspost/cpuid v0.0.0-20170728055534-ae7887de9fa5/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek=
github.com/klauspost/cpuid/v2 v2.2.4 h1:acbojRNwl3o09bUq+yDCtZFc1aiwaAAxtcn8YkZXnvk=
github.com/klauspost/cpuid/v2 v2.2.4/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY=
Expand Down Expand Up @@ -527,6 +531,10 @@ github.com/uptrace/bunrouter v1.0.20 h1:jNvYNcJxF+lSYBQAaQjnE6I11Zs0m+3M5Ek7fq/T
github.com/uptrace/bunrouter v1.0.20/go.mod h1:TwT7Bc0ztF2Z2q/ZzMuSVkcb/Ig/d3MQeP2cxn3e1hI=
github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa h1:5SqCsI/2Qya2bCzK15ozrqo2sZxkh0FHynJZOTVoV6Q=
github.com/urfave/cli/v2 v2.17.2-0.20221006022127-8f469abc00aa/go.mod h1:1CNUng3PtjQMtRzJO4FMXBQvkGtuYRxxiR9xMa7jMwI=
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fasthttp v1.51.0 h1:8b30A5JlZ6C7AS81RsWjYMQmrZG6feChmgAolCl1SqA=
github.com/valyala/fasthttp v1.51.0/go.mod h1:oI2XroL+lI7vdXyYoQk03bXBThfFl2cVdIA3Xl7cH8g=
github.com/willf/bitset v1.1.3/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
github.com/xlab/treeprint v0.0.0-20180616005107-d6fb6747feb6/go.mod h1:ce1O1j6UtZfjr22oyGxGLbauSBp2YVXpARAosm7dHBg=
github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=
Expand Down Expand Up @@ -580,8 +588,8 @@ golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4=
golang.org/x/crypto v0.0.0-20211108221036-ceb1ce70b4fa/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.16.0 h1:mMMrFzRSCF0GvB7Ne27XVtVAaXLrPmgPC7/v0tkwHaY=
golang.org/x/crypto v0.16.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k=
golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4=
golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
Expand Down
26 changes: 25 additions & 1 deletion wasmsdk/chunked_upload_progress_storer.go
Original file line number Diff line number Diff line change
@@ -1,14 +1,21 @@
package main

import "github.com/0chain/gosdk/zboxcore/sdk"
import (
"sync"

"github.com/0chain/gosdk/zboxcore/sdk"
)

// chunkedUploadProgressStorer load and save upload progress
type chunkedUploadProgressStorer struct {
list map[string]*sdk.UploadProgress
lock sync.Mutex
}

// Load load upload progress by id
func (mem *chunkedUploadProgressStorer) Load(id string) *sdk.UploadProgress {
mem.lock.Lock()
defer mem.lock.Unlock()
if mem.list == nil {
mem.list = make(map[string]*sdk.UploadProgress)
return nil
Expand All @@ -24,14 +31,31 @@ func (mem *chunkedUploadProgressStorer) Load(id string) *sdk.UploadProgress {

// Save save upload progress
func (mem *chunkedUploadProgressStorer) Save(up sdk.UploadProgress) {
mem.lock.Lock()
defer mem.lock.Unlock()
if mem.list == nil {
mem.list = make(map[string]*sdk.UploadProgress)
}
mem.list[up.ID] = &up
}

//nolint:golint,unused
func (mem *chunkedUploadProgressStorer) Update(id string, chunkIndex int) {
mem.lock.Lock()
defer mem.lock.Unlock()
if mem.list == nil {
return
}
up, ok := mem.list[id]
if ok {
up.ChunkIndex = chunkIndex
}
}

// Remove remove upload progress by id
func (mem *chunkedUploadProgressStorer) Remove(id string) error {
mem.lock.Lock()
defer mem.lock.Unlock()
delete(mem.list, id)
return nil
}
47 changes: 47 additions & 0 deletions zboxcore/mocks/FastClient.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

51 changes: 42 additions & 9 deletions zboxcore/sdk/allocation_file_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ import (
"github.com/0chain/gosdk/core/pathutil"
"github.com/0chain/gosdk/core/resty"
"github.com/0chain/gosdk/core/zcncrypto"
"github.com/hitenjain14/fasthttp"

"github.com/0chain/gosdk/zboxcore/blockchain"
zclient "github.com/0chain/gosdk/zboxcore/client"
Expand All @@ -30,7 +31,7 @@ import (
)

func setupHttpResponses(
t *testing.T, mockClient *mocks.HttpClient, allocID string,
t *testing.T, mockClient *mocks.HttpClient, fastMock *mocks.FastClient, allocID string,
refsInput, fileMetaInput []byte, hashes []string,
numBlobbers, numCorrect int, isUpdate bool) {

Expand Down Expand Up @@ -95,6 +96,22 @@ func setupHttpResponses(
return io.NopCloser(bytes.NewReader(b))
}(),
}, nil)
j := i
fastMock.On("DoTimeout", mock.AnythingOfType("*fasthttp.Request"), mock.AnythingOfType("*fasthttp.Response"), mock.AnythingOfType("time.Duration")).Run(func(args mock.Arguments) {
resp := args.Get(1).(*fasthttp.Response)
if j < numCorrect {
resp.Header.SetStatusCode(http.StatusOK)
} else {
resp.Header.SetStatusCode(http.StatusBadRequest)
}
hash := hashes[j]
r := UploadResult{
Filename: "1.txt",
Hash: hash,
}
b, _ := json.Marshal(r)
resp.SetBodyRaw(b)
}).Return(nil)

mockClient.On("Do", mock.MatchedBy(func(req *http.Request) bool {
return req.Method == "POST" &&
Expand Down Expand Up @@ -184,6 +201,8 @@ func setupHttpResponses(
func TestAllocation_UpdateFile(t *testing.T) {
mockClient := mocks.HttpClient{}
zboxutil.Client = &mockClient
mockFastClient := mocks.FastClient{}
zboxutil.FastHttpClient = &mockFastClient

const mockLocalPath = "1.txt"

Expand Down Expand Up @@ -240,7 +259,7 @@ func TestAllocation_UpdateFile(t *testing.T) {
"f435a42af309218e88196d4ed2e0c1977a701641b06434be0bb0263099f3faa9",
"6b3e932bfd2b2c09e39d35e7c4928c42b73bee194045e545560229234d695669",
}
setupHttpResponses(t, &mockClient, a.ID, resfsIn, fileMetaIn, hashes, len(a.Blobbers), len(a.Blobbers), true)
setupHttpResponses(t, &mockClient, &mockFastClient, a.ID, resfsIn, fileMetaIn, hashes, len(a.Blobbers), len(a.Blobbers), true)

err = a.UpdateFile(os.TempDir(), mockLocalPath, "/", nil)
require.NoErrorf(t, err, "Unexpected error %v", err)
Expand All @@ -249,6 +268,8 @@ func TestAllocation_UpdateFile(t *testing.T) {
func TestAllocation_UploadFile(t *testing.T) {
mockClient := mocks.HttpClient{}
zboxutil.Client = &mockClient
mockFastClient := mocks.FastClient{}
zboxutil.FastHttpClient = &mockFastClient

const mockLocalPath = "1.txt"
require := require.New(t)
Expand All @@ -275,7 +296,7 @@ func TestAllocation_UploadFile(t *testing.T) {
"f435a42af309218e88196d4ed2e0c1977a701641b06434be0bb0263099f3faa9",
"6b3e932bfd2b2c09e39d35e7c4928c42b73bee194045e545560229234d695669",
}
setupHttpResponses(t, &mockClient, a.ID, nil, nil, hashes, len(a.Blobbers), len(a.Blobbers), false)
setupHttpResponses(t, &mockClient, &mockFastClient, a.ID, nil, nil, hashes, len(a.Blobbers), len(a.Blobbers), false)

err := a.UploadFile(os.TempDir(), mockLocalPath, "/", nil)
require.NoErrorf(err, "Unexpected error %v", err)
Expand All @@ -289,6 +310,8 @@ func TestAllocation_UpdateFileWithThumbnail(t *testing.T) {

mockClient := mocks.HttpClient{}
zboxutil.Client = &mockClient
mockFastClient := mocks.FastClient{}
zboxutil.FastHttpClient = &mockFastClient

a := &Allocation{
ID: "TestAllocation_UpdateFile_WithThumbNail",
Expand Down Expand Up @@ -345,7 +368,7 @@ func TestAllocation_UpdateFileWithThumbnail(t *testing.T) {
"f435a42af309218e88196d4ed2e0c1977a701641b06434be0bb0263099f3faa9",
"6b3e932bfd2b2c09e39d35e7c4928c42b73bee194045e545560229234d695669",
}
setupHttpResponses(t, &mockClient, a.ID, resfsIn, fileMetaIn, hashes, len(a.Blobbers), len(a.Blobbers), true)
setupHttpResponses(t, &mockClient, &mockFastClient, a.ID, resfsIn, fileMetaIn, hashes, len(a.Blobbers), len(a.Blobbers), true)

err = a.UpdateFileWithThumbnail(os.TempDir(), mockLocalPath, "/", mockThumbnailPath, nil)
require.NoErrorf(t, err, "Unexpected error %v", err)
Expand All @@ -360,6 +383,8 @@ func TestAllocation_UploadFileWithThumbnail(t *testing.T) {

mockClient := mocks.HttpClient{}
zboxutil.Client = &mockClient
mockFastClient := mocks.FastClient{}
zboxutil.FastHttpClient = &mockFastClient

if teardown := setupMockFile(t, mockLocalPath); teardown != nil {
defer teardown(t)
Expand Down Expand Up @@ -388,7 +413,7 @@ func TestAllocation_UploadFileWithThumbnail(t *testing.T) {
"f435a42af309218e88196d4ed2e0c1977a701641b06434be0bb0263099f3faa9",
"6b3e932bfd2b2c09e39d35e7c4928c42b73bee194045e545560229234d695669",
}
setupHttpResponses(t, &mockClient, a.ID, nil, nil, hashes, len(a.Blobbers), len(a.Blobbers), false)
setupHttpResponses(t, &mockClient, &mockFastClient, a.ID, nil, nil, hashes, len(a.Blobbers), len(a.Blobbers), false)

err := a.UploadFileWithThumbnail(mockTmpPath, mockLocalPath, "/", mockThumbnailPath, nil)
require.NoErrorf(t, err, "Unexpected error %v", err)
Expand All @@ -397,6 +422,8 @@ func TestAllocation_UploadFileWithThumbnail(t *testing.T) {
func TestAllocation_EncryptAndUpdateFile(t *testing.T) {
mockClient := mocks.HttpClient{}
zboxutil.Client = &mockClient
mockFastClient := mocks.FastClient{}
zboxutil.FastHttpClient = &mockFastClient

const mockLocalPath = "1.txt"

Expand Down Expand Up @@ -452,7 +479,7 @@ func TestAllocation_EncryptAndUpdateFile(t *testing.T) {
"3c4f6a43748f6b7cefee11216540414cb9b2563c294a5f7d633c2e9cda26f7bc",
"249684daaeef1a8d38d0be0ea38777886e0b3ddf3deaef2eabe4117cc6e67256",
}
setupHttpResponses(t, &mockClient, a.ID, resfsIn, fileMetaIn, hashes, len(a.Blobbers), len(a.Blobbers), true)
setupHttpResponses(t, &mockClient, &mockFastClient, a.ID, resfsIn, fileMetaIn, hashes, len(a.Blobbers), len(a.Blobbers), true)

err = a.EncryptAndUpdateFile(os.TempDir(), mockLocalPath, "/", nil)
require.NoError(t, err)
Expand All @@ -461,6 +488,8 @@ func TestAllocation_EncryptAndUpdateFile(t *testing.T) {
func TestAllocation_EncryptAndUploadFile(t *testing.T) {
mockClient := mocks.HttpClient{}
zboxutil.Client = &mockClient
mockFastClient := mocks.FastClient{}
zboxutil.FastHttpClient = &mockFastClient

const (
mockLocalPath = "1.txt"
Expand Down Expand Up @@ -491,7 +520,7 @@ func TestAllocation_EncryptAndUploadFile(t *testing.T) {
"f435a42af309218e88196d4ed2e0c1977a701641b06434be0bb0263099f3faa9",
"6b3e932bfd2b2c09e39d35e7c4928c42b73bee194045e545560229234d695669",
}
setupHttpResponses(t, &mockClient, a.ID, nil, nil, hashes, len(a.Blobbers), len(a.Blobbers), false)
setupHttpResponses(t, &mockClient, &mockFastClient, a.ID, nil, nil, hashes, len(a.Blobbers), len(a.Blobbers), false)

err := a.EncryptAndUploadFile(mockTmpPath, mockLocalPath, "/", nil)
require.NoError(t, err)
Expand All @@ -500,6 +529,8 @@ func TestAllocation_EncryptAndUploadFile(t *testing.T) {
func TestAllocation_EncryptAndUpdateFileWithThumbnail(t *testing.T) {
mockClient := mocks.HttpClient{}
zboxutil.Client = &mockClient
mockFastClient := mocks.FastClient{}
zboxutil.FastHttpClient = &mockFastClient

const (
mockLocalPath = "1.txt"
Expand Down Expand Up @@ -565,7 +596,7 @@ func TestAllocation_EncryptAndUpdateFileWithThumbnail(t *testing.T) {
"3c4f6a43748f6b7cefee11216540414cb9b2563c294a5f7d633c2e9cda26f7bc",
"249684daaeef1a8d38d0be0ea38777886e0b3ddf3deaef2eabe4117cc6e67256",
}
setupHttpResponses(t, &mockClient, a.ID, resfsIn, fileMetaIn, hashes, len(a.Blobbers), len(a.Blobbers), true)
setupHttpResponses(t, &mockClient, &mockFastClient, a.ID, resfsIn, fileMetaIn, hashes, len(a.Blobbers), len(a.Blobbers), true)
err = a.EncryptAndUpdateFileWithThumbnail(mockTmpPath, mockLocalPath, "/", mockThumbnailPath, nil)

require.NoError(t, err)
Expand All @@ -574,6 +605,8 @@ func TestAllocation_EncryptAndUpdateFileWithThumbnail(t *testing.T) {
func TestAllocation_EncryptAndUploadFileWithThumbnail(t *testing.T) {
mockClient := mocks.HttpClient{}
zboxutil.Client = &mockClient
mockFastClient := mocks.FastClient{}
zboxutil.FastHttpClient = &mockFastClient

const (
mockLocalPath = "1.txt"
Expand Down Expand Up @@ -612,7 +645,7 @@ func TestAllocation_EncryptAndUploadFileWithThumbnail(t *testing.T) {
"6b3e932bfd2b2c09e39d35e7c4928c42b73bee194045e545560229234d695669",
}

setupHttpResponses(t, &mockClient, a.ID, nil, nil, hashes, len(a.Blobbers), len(a.Blobbers), false)
setupHttpResponses(t, &mockClient, &mockFastClient, a.ID, nil, nil, hashes, len(a.Blobbers), len(a.Blobbers), false)

err := a.EncryptAndUploadFileWithThumbnail(mockTmpPath, mockLocalPath, "/", mockThumbnailPath, nil)
require.NoError(t, err)
Expand Down
Loading
Loading