Skip to content

Commit dfeb70c

Browse files
authored
Internal - Set a min Artifactory version for Visibility System usage (#1320)
1 parent 8cd365a commit dfeb70c

File tree

7 files changed

+46
-29
lines changed

7 files changed

+46
-29
lines changed

artifactory/commands/transferfiles/transfer.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -289,7 +289,7 @@ func (tdc *TransferFilesCommand) reportTransferFilesUsage() {
289289
AttributeValue: sourceStorageInfo.BinariesSize,
290290
},
291291
}
292-
if err = usage.NewArtifactoryCallHome().SendUsage(coreutils.GetCliUserAgent(), tdc.CommandName(), tdc.targetStorageInfoManager.GetServiceManager(), reportUsageAttributes...); err != nil {
292+
if err = usage.NewArtifactoryCallHome().Send(coreutils.GetCliUserAgent(), tdc.CommandName(), tdc.targetStorageInfoManager.GetServiceManager(), reportUsageAttributes...); err != nil {
293293
log.Debug(err.Error())
294294
}
295295
}

artifactory/utils/utils.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ func CreateMetadataServiceManager(serviceDetails *config.ServerDetails, isDryRun
262262
return metadata.NewManager(serviceConfig)
263263
}
264264

265-
func CreateJfConnectServiceManager(serverDetails *config.ServerDetails) (jfconnect.Manager, error) {
265+
func CreateJfConnectServiceManager(serverDetails *config.ServerDetails, httpRetries, httpRetryWaitMilliSecs int) (jfconnect.Manager, error) {
266266
certsPath, err := coreutils.GetJfrogCertsDir()
267267
if err != nil {
268268
return nil, err
@@ -275,6 +275,8 @@ func CreateJfConnectServiceManager(serverDetails *config.ServerDetails) (jfconne
275275
SetServiceDetails(jfConnectAuth).
276276
SetCertificatesPath(certsPath).
277277
SetInsecureTls(serverDetails.InsecureTls).
278+
SetHttpRetries(httpRetries).
279+
SetHttpRetryWaitMilliSecs(httpRetryWaitMilliSecs).
278280
Build()
279281
if err != nil {
280282
return nil, err

common/commands/command.go

Lines changed: 37 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,22 @@ package commands
33
import (
44
"sync"
55

6+
"github.com/jfrog/gofrog/version"
67
"github.com/jfrog/jfrog-cli-core/v2/artifactory/utils"
78
"github.com/jfrog/jfrog-cli-core/v2/utils/config"
89
"github.com/jfrog/jfrog-cli-core/v2/utils/coreutils"
910
coreusage "github.com/jfrog/jfrog-cli-core/v2/utils/usage"
1011
usageReporter "github.com/jfrog/jfrog-cli-core/v2/utils/usage"
12+
rtClient "github.com/jfrog/jfrog-client-go/artifactory"
1113
"github.com/jfrog/jfrog-client-go/artifactory/usage"
1214
"github.com/jfrog/jfrog-client-go/utils/log"
1315
)
1416

17+
const (
18+
minCallHomeArtifactoryVersion = "6.9.0"
19+
minVisibilitySystemArtifactoryVersion = "7.102"
20+
)
21+
1522
type Command interface {
1623
// Runs the command
1724
Run() error
@@ -43,32 +50,45 @@ func reportUsage(command Command, channel chan<- bool) {
4350

4451
serverDetails, err := command.ServerDetails()
4552
if err != nil {
46-
log.Debug("Usage reporting:", err.Error())
53+
log.Debug("Usage reporting. Failed accessing ServerDetails.", err.Error())
54+
return
55+
}
56+
if serverDetails == nil || serverDetails.ArtifactoryUrl == "" {
57+
return
58+
}
59+
serviceManager, err := utils.CreateServiceManager(serverDetails, -1, 0, false)
60+
if err != nil {
61+
log.Debug("Usage reporting. Failed creating the Artifactory Service Manager.", err.Error())
62+
return
63+
}
64+
artifactoryVersion, err := serviceManager.GetVersion()
65+
if err != nil {
66+
log.Debug("Usage reporting. Failed getting the version of Artifactory", err.Error())
4767
return
4868
}
4969

50-
if serverDetails != nil {
51-
var wg sync.WaitGroup
70+
var wg sync.WaitGroup
5271

53-
// Report the usage to Artifactory's Call Home API.
54-
if serverDetails.ArtifactoryUrl != "" {
55-
wg.Add(1)
56-
go func() {
57-
defer wg.Done()
58-
reportUsageToArtifactoryCallHome(command, serverDetails)
59-
}()
60-
}
72+
// Report the usage to Artifactory's Call Home API.
73+
if version.NewVersion(artifactoryVersion).AtLeast(minCallHomeArtifactoryVersion) {
74+
wg.Add(1)
75+
go func() {
76+
defer wg.Done()
77+
reportUsageToArtifactoryCallHome(command, serviceManager)
78+
}()
79+
}
6180

62-
// Report the usage to the Visibility System.
81+
// Report the usage to the Visibility System.
82+
if version.NewVersion(artifactoryVersion).AtLeast(minVisibilitySystemArtifactoryVersion) {
6383
wg.Add(1)
6484
go func() {
6585
defer wg.Done()
6686
reportUsageToVisibilitySystem(command, serverDetails)
6787
}()
68-
69-
// Wait for the two report actions to finish.
70-
wg.Wait()
7188
}
89+
90+
// Wait for the two report actions to finish.
91+
wg.Wait()
7292
}
7393

7494
func reportUsageToVisibilitySystem(command Command, serverDetails *config.ServerDetails) {
@@ -77,14 +97,9 @@ func reportUsageToVisibilitySystem(command Command, serverDetails *config.Server
7797
}
7898
}
7999

80-
func reportUsageToArtifactoryCallHome(command Command, serverDetails *config.ServerDetails) {
100+
func reportUsageToArtifactoryCallHome(command Command, serviceManager rtClient.ArtifactoryServicesManager) {
81101
log.Debug(usageReporter.ArtifactoryCallHomePrefix, "Sending info...")
82-
serviceManager, err := utils.CreateServiceManager(serverDetails, -1, 0, false)
83-
if err != nil {
84-
log.Debug(usageReporter.ArtifactoryCallHomePrefix, err.Error())
85-
return
86-
}
87-
if err = usage.NewArtifactoryCallHome().SendUsage(coreutils.GetCliUserAgent(), command.CommandName(), serviceManager); err != nil {
102+
if err := usage.NewArtifactoryCallHome().Send(coreutils.GetCliUserAgent(), command.CommandName(), serviceManager); err != nil {
88103
log.Debug(err.Error())
89104
}
90105
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ require (
9696
gopkg.in/warnings.v0 v0.1.2 // indirect
9797
)
9898

99-
replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20241223175448-88f1089d0694
99+
replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20241225183733-80a5e1ba7a2c
100100

101101
// replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20241121100855-e7a75ceee2bd
102102

go.sum

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,8 @@ github.com/jfrog/build-info-go v1.10.7 h1:10NVHYg0193gJpQft+S4WQfvYMtj5jlwwhJRvk
9393
github.com/jfrog/build-info-go v1.10.7/go.mod h1:JcISnovFXKx3wWf3p1fcMmlPdt6adxScXvoJN4WXqIE=
9494
github.com/jfrog/gofrog v1.7.6 h1:QmfAiRzVyaI7JYGsB7cxfAJePAZTzFz0gRWZSE27c6s=
9595
github.com/jfrog/gofrog v1.7.6/go.mod h1:ntr1txqNOZtHplmaNd7rS4f8jpA5Apx8em70oYEe7+4=
96-
github.com/jfrog/jfrog-client-go v1.28.1-0.20241223175448-88f1089d0694 h1:1EP8yAhB+SGTXhfGa/w4S748S12qJKXU4u/yiAJxnX0=
97-
github.com/jfrog/jfrog-client-go v1.28.1-0.20241223175448-88f1089d0694/go.mod h1:2ySOMva54L3EYYIlCBYBTcTgqfrrQ19gtpA/MWfA/ec=
96+
github.com/jfrog/jfrog-client-go v1.28.1-0.20241225183733-80a5e1ba7a2c h1:MoNDrchpG4Bf0Buy6OwTk9G+bCjPf1UjMK99mop0zxQ=
97+
github.com/jfrog/jfrog-client-go v1.28.1-0.20241225183733-80a5e1ba7a2c/go.mod h1:2ySOMva54L3EYYIlCBYBTcTgqfrrQ19gtpA/MWfA/ec=
9898
github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4=
9999
github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM=
100100
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=

utils/usage/usage.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ func (ur *UsageReporter) reportToArtifactory(features ...ReportFeature) (err err
169169
if err != nil {
170170
return
171171
}
172-
return usage.NewArtifactoryCallHome().SendUsageToArtifactory(ur.ProductId, serviceManager, converted...)
172+
return usage.NewArtifactoryCallHome().SendToArtifactory(ur.ProductId, serviceManager, converted...)
173173
}
174174

175175
func convertAttributesToMap(reportFeature ReportFeature) (converted map[string]string) {

utils/usage/visibility_system_manager.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ func (vsm *VisibilitySystemManager) createMetric(commandName string) services.Vi
3939
}
4040

4141
func (vsm *VisibilitySystemManager) SendUsage(commandName string) error {
42-
manager, err := utils.CreateJfConnectServiceManager(vsm.serverDetails)
42+
manager, err := utils.CreateJfConnectServiceManager(vsm.serverDetails, -1, 0)
4343
if err != nil {
4444
return err
4545
}

0 commit comments

Comments
 (0)