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

Add uploadServiceOptions to UploadFiles service #1023

Merged
merged 93 commits into from
Sep 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
93 commits
Select commit Hold shift + click to select a range
b742b6e
Update tests.yml
sverdlov93 Jun 15, 2022
707d8b3
Update tests.yml
sverdlov93 Jun 15, 2022
a664ea4
Promote version to 1.28.1 (#733)
omerzi Apr 5, 2023
0b22cb3
Added the Frogbot badge to the README (#740)
eyalbe4 Apr 13, 2023
93d1ee0
Merge remote-tracking branch 'upstream/dev' into masterupstream
sverdlov93 Apr 19, 2023
60012f0
Merge remote-tracking branch 'origin/dev'
omerzi May 2, 2023
72340a7
Merge branch 'dev'
eyalbe4 May 16, 2023
3c0e410
Merge remote-tracking branch 'origin/dev'
talarian1 May 17, 2023
7dd161b
Merge remote-tracking branch 'origin/dev'
omerzi May 21, 2023
88f4c5c
Merge remote-tracking branch 'origin/dev'
talarian1 May 23, 2023
21b99ad
Merge branch 'master' into dev
yahavi May 23, 2023
b71c280
Promoted version to 1.29.1
yahavi May 23, 2023
8f7755c
Merge branch 'dev'
eyalbe4 Jun 10, 2023
e6ba583
Merge branch 'dev'
eyalbe4 Jun 25, 2023
b624428
Merge branch 'dev'
RobiNino Jun 29, 2023
da0c018
Merge branch 'master' into dev
omerzi Jul 12, 2023
f750025
Promoted version to 1.31.1
omerzi Jul 12, 2023
e1d57bd
Merge remote-tracking branch 'origin/dev'
omerzi Jul 18, 2023
886ff5f
Merge branch 'dev'
eyalbe4 Jul 31, 2023
b1ae836
Promoted version to 1.31.3
eyalbe4 Jul 31, 2023
df38e23
Merge branch 'dev'
eyalbe4 Jul 31, 2023
46b7fb9
Merge branch 'dev'
eyalbe4 Aug 3, 2023
5f58723
Resolve conflicts
eyalbe4 Aug 3, 2023
080ef1a
Merge branch 'dev'
eyalbe4 Aug 23, 2023
7c244c5
Merge branch 'dev'
attiasas Aug 28, 2023
6d1c9e7
Merge branch 'master' into dev
EyalDelarea Sep 11, 2023
b3d917f
Merge remote-tracking branch 'origin/dev'
EyalDelarea Sep 11, 2023
3be412b
Merge remote-tracking branch 'upstream/dev'
sverdlov93 Sep 13, 2023
fa697b5
Merge branch 'dev'
RobiNino Sep 14, 2023
7b2943f
Merge remote-tracking branch 'origin/dev'
eranturgeman Oct 3, 2023
15552e7
Merge remote-tracking branch 'jfrog-prod/dev'
eranturgeman Oct 3, 2023
9684938
Merge remote-tracking branch 'origin/dev'
yahavi Oct 4, 2023
9dd7283
Merge branch 'dev'
EyalDelarea Oct 5, 2023
21998b7
Merge remote-tracking branch 'origin/dev'
omerzi Oct 17, 2023
dc27aae
Merge remote-tracking branch 'origin/dev'
attiasas Nov 8, 2023
0abdd92
Merge remote-tracking branch 'origin/dev'
yahavi Nov 9, 2023
696df1a
Merge remote-tracking branch 'upstream/dev'
yahavi Nov 30, 2023
c09e8dd
Merge branch 'dev'
eyalbe4 Dec 15, 2023
3edc13f
Promote to v1.35.2
eyalbe4 Dec 18, 2023
ddfd377
Merge branch 'master' into dev
eyalbe4 Dec 18, 2023
36e989c
Resolved conflict
eyalbe4 Dec 21, 2023
cc27960
Merge branch 'dev'
eyalbe4 Dec 25, 2023
7f02060
Promote version to 1.35.5
omerzi Dec 27, 2023
5dd6e86
Promote version to 1.35.6
omerzi Jan 7, 2024
4f0f4b7
Merge branch 'dev'
eyalbe4 Jan 22, 2024
e249dfe
Promote version to '1.36.1' (#892)
attiasas Jan 29, 2024
8b005ae
Merge changes to master (#907)
yahavi Feb 20, 2024
18d4ebf
Merge remote-tracking branch 'origin/dev'
yahavi Feb 20, 2024
14a4407
Merge remote-tracking branch 'origin/dev'
yahavi Feb 21, 2024
1aca291
Merge remote-tracking branch 'origin/dev'
RobiNino Mar 18, 2024
109a52e
Merge remote-tracking branch 'upstream/dev'
sverdlov93 Mar 28, 2024
80b1846
Merge remote-tracking branch 'origin/dev'
EyalDelarea Apr 15, 2024
964c3d4
Merge remote-tracking branch 'upstream/dev'
EyalDelarea Apr 15, 2024
d0fbc99
Merge remote-tracking branch 'origin/dev'
yahavi May 9, 2024
609f90a
Merge branch 'dev'
eyalbe4 Jun 10, 2024
e3c71ab
Merge remote-tracking branch 'origin/dev'
RobiNino Jun 27, 2024
41b7a22
Merge remote-tracking branch 'upstream/dev' into master-upstream
sverdlov93 Jul 9, 2024
ed1bcb8
Merge remote-tracking branch 'upstream/dev'
yahavi Jul 21, 2024
b96b0ad
Merge branch 'dev'
eyalbe4 Jul 23, 2024
11e9718
Merge remote-tracking branch 'origin/dev'
RobiNino Jul 31, 2024
c983a75
Merge remote-tracking branch 'origin/dev'
RobiNino Aug 5, 2024
c0c6853
Merge branch 'dev'
eyalbe4 Aug 14, 2024
df5347e
Merge remote-tracking branch 'upstream/dev'
sverdlov93 Aug 14, 2024
c94bcc7
metadata
sverdlov93 Aug 15, 2024
27444ca
metadata
sverdlov93 Aug 15, 2024
173171e
metadata
sverdlov93 Aug 15, 2024
aa77f53
metadata
sverdlov93 Aug 15, 2024
3336c40
Merge branch 'dev' of https://github.com/jfrog/jfrog-client-go into i…
sverdlov93 Aug 25, 2024
99ac5d7
Merge branch 'dev' of https://github.com/jfrog/jfrog-client-go into i…
sverdlov93 Aug 29, 2024
0104193
Merge branch 'dev' of https://github.com/jfrog/jfrog-client-go into i…
sverdlov93 Sep 8, 2024
476dfe3
Remove redundant log
sverdlov93 Sep 8, 2024
2e9ade1
Merge branch 'dev' into improve-errors
sverdlov93 Sep 8, 2024
fea104a
Merge branch 'dev' into improve-errors
sverdlov93 Sep 9, 2024
f8a34d4
Remove redundant log
sverdlov93 Sep 9, 2024
d5b4394
Merge remote-tracking branch 'sverdlov93/improve-errors' into improve…
sverdlov93 Sep 9, 2024
b386110
Remove redundant log
sverdlov93 Sep 9, 2024
c51f4a5
Remove redundant log
sverdlov93 Sep 9, 2024
d584a33
Remove redundant log
sverdlov93 Sep 9, 2024
afee98d
Remove redundant log
sverdlov93 Sep 11, 2024
e9f86d2
Merge branch 'dev' of https://github.com/jfrog/jfrog-client-go into i…
sverdlov93 Sep 11, 2024
0da70e8
Remove redundant log
sverdlov93 Sep 11, 2024
cd95a4f
Remove redundant log
sverdlov93 Sep 12, 2024
1165c0e
Remove redundant log
sverdlov93 Sep 12, 2024
db2e1b1
Remove redundant log
sverdlov93 Sep 12, 2024
2742bdf
Remove redundant log
sverdlov93 Sep 12, 2024
a4df8c6
Remove redundant log
sverdlov93 Sep 12, 2024
c7ae807
Remove redundant log
sverdlov93 Sep 15, 2024
76ead73
Merge branch 'dev' of https://github.com/jfrog/jfrog-client-go into i…
sverdlov93 Sep 17, 2024
1f131ec
Merge branch 'dev' of https://github.com/sverdlov93/jfrog-client-go i…
sverdlov93 Sep 17, 2024
22fea6a
Remove redundant log
sverdlov93 Sep 17, 2024
4f6e441
Remove redundant log
sverdlov93 Sep 17, 2024
f3741c6
Remove redundant log
sverdlov93 Sep 17, 2024
3d92c63
Remove redundant log
sverdlov93 Sep 17, 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
2 changes: 1 addition & 1 deletion .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
- name: Checkout code
uses: actions/checkout@v4
with:
ref: ${{ github.event.pull_request.head.sha }}
ref: ${{ github.event.pull_request.head.sha }}

- name: Setup Go with cache
uses: jfrog/.github/actions/install-go-with-cache@main
Expand Down
16 changes: 11 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -470,9 +470,13 @@ params.TargetProps = targetProps
TargetPathInArchive := "archive/path/"
// Size limit for files to be uploaded.
SizeLimit= &fspatterns.SizeThreshold{SizeInBytes: 10000, Condition: fspatterns.LessThan}

uploadServiceOptions := &UploadServiceOptions{
// Set to true to fail the upload operation if any of the files fail to upload
failFast := false
totalUploaded, totalFailed, err := rtManager.UploadFiles(failFast, params)
FailFast: false,
}

totalUploaded, totalFailed, err := rtManager.UploadFiles(uploadServiceOptions, params)
```

#### Downloading Files from Artifactory
Expand Down Expand Up @@ -549,10 +553,12 @@ calling `Close()` on the OperationSummary struct.
params := services.NewUploadParams()
params.Pattern = "repo/*/*.zip"
params.Target = "repo/path/"
// Set to true to fail the upload operation if any of the files fail to upload
failFast := false
uploadServiceOptions := &UploadServiceOptions{
// Set to true to fail the upload operation if any of the files fail to upload
FailFast: false,
Comment on lines +557 to +558
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Set to true to fail the upload operation if any of the files fail to upload
FailFast: false,
// Set to true to fail the upload operation if any of the files fail to upload
FailFast: false,

}

summary, err := rtManager.UploadFilesWithSummary(failFast, params)
summary, err := rtManager.UploadFilesWithSummary(uploadServiceOptions, params)
defer summary.Close()
reader, totalDownloaded, totalExpected, err := rtManager.DownloadFilesWithResultReader(params)

Expand Down
8 changes: 4 additions & 4 deletions artifactory/emptymanager.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,8 @@ type ArtifactoryServicesManager interface {
SetProps(params services.PropsParams) (int, error)
DeleteProps(params services.PropsParams) (int, error)
GetItemProps(relativePath string) (*utils.ItemProperties, error)
UploadFiles(failFast bool, params ...services.UploadParams) (totalUploaded, totalFailed int, err error)
UploadFilesWithSummary(failFast bool, params ...services.UploadParams) (operationSummary *utils.OperationSummary, err error)
UploadFiles(uploadServiceOptions UploadServiceOptions, params ...services.UploadParams) (totalUploaded, totalFailed int, err error)
UploadFilesWithSummary(uploadServiceOptions UploadServiceOptions, params ...services.UploadParams) (operationSummary *utils.OperationSummary, err error)
Copy(params ...services.MoveCopyParams) (successCount, failedCount int, err error)
Move(params ...services.MoveCopyParams) (successCount, failedCount int, err error)
PublishGoProject(params _go.GoParams) (*utils.OperationSummary, error)
Expand Down Expand Up @@ -262,11 +262,11 @@ func (esm *EmptyArtifactoryServicesManager) GetItemProps(string) (*utils.ItemPro
panic("Failed: Method is not implemented")
}

func (esm *EmptyArtifactoryServicesManager) UploadFiles(_ bool, _ ...services.UploadParams) (int, int, error) {
func (esm *EmptyArtifactoryServicesManager) UploadFiles(_ UploadServiceOptions, _ ...services.UploadParams) (int, int, error) {
panic("Failed: Method is not implemented")
}

func (esm *EmptyArtifactoryServicesManager) UploadFilesWithSummary(_ bool, _ ...services.UploadParams) (*utils.OperationSummary, error) {
func (esm *EmptyArtifactoryServicesManager) UploadFilesWithSummary(_ UploadServiceOptions, _ ...services.UploadParams) (*utils.OperationSummary, error) {
panic("Failed: Method is not implemented")
}

Expand Down
18 changes: 11 additions & 7 deletions artifactory/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -302,31 +302,35 @@ func (sm *ArtifactoryServicesManagerImp) GetItemProps(relativePath string) (*uti
return setPropsService.GetItemProperties(relativePath)
}

func (sm *ArtifactoryServicesManagerImp) initUploadService() *services.UploadService {
type UploadServiceOptions struct {
// Fail the operation immediately if an error occurs.
failFast bool
}

func (sm *ArtifactoryServicesManagerImp) initUploadService(uploadServiceOptions UploadServiceOptions) *services.UploadService {
uploadService := services.NewUploadService(sm.client)
uploadService.Threads = sm.config.GetThreads()
uploadService.ArtDetails = sm.config.GetServiceDetails()
uploadService.DryRun = sm.config.IsDryRun()
uploadService.SetFailFast(uploadServiceOptions.failFast)
uploadService.Progress = sm.progress
httpClientDetails := uploadService.ArtDetails.CreateHttpClientDetails()
uploadService.MultipartUpload = utils.NewMultipartUpload(sm.client, &httpClientDetails, uploadService.ArtDetails.GetUrl())
return uploadService
}

func (sm *ArtifactoryServicesManagerImp) UploadFiles(failFast bool, params ...services.UploadParams) (totalUploaded, totalFailed int, err error) {
uploadService := sm.initUploadService()
uploadService.SetFailFast(failFast)
func (sm *ArtifactoryServicesManagerImp) UploadFiles(uploadServiceOptions UploadServiceOptions, params ...services.UploadParams) (totalUploaded, totalFailed int, err error) {
uploadService := sm.initUploadService(uploadServiceOptions)
summary, err := uploadService.UploadFiles(params...)
if summary == nil {
return 0, 0, err
}
return summary.TotalSucceeded, summary.TotalFailed, err
}

func (sm *ArtifactoryServicesManagerImp) UploadFilesWithSummary(failFast bool, params ...services.UploadParams) (operationSummary *utils.OperationSummary, err error) {
uploadService := sm.initUploadService()
func (sm *ArtifactoryServicesManagerImp) UploadFilesWithSummary(uploadServiceOptions UploadServiceOptions, params ...services.UploadParams) (operationSummary *utils.OperationSummary, err error) {
uploadService := sm.initUploadService(uploadServiceOptions)
uploadService.SetSaveSummary(true)
uploadService.SetFailFast(failFast)
return uploadService.UploadFiles(params...)
}

Expand Down
Loading