github.com/jfrog/jfrog-cli-core/v2@v2.51.0/artifactory/commands/generic/props.go (about) 1 package generic 2 3 import ( 4 "github.com/jfrog/jfrog-cli-core/v2/artifactory/utils" 5 "github.com/jfrog/jfrog-cli-core/v2/common/spec" 6 "github.com/jfrog/jfrog-cli-core/v2/utils/config" 7 "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" 8 "github.com/jfrog/jfrog-client-go/artifactory" 9 "github.com/jfrog/jfrog-client-go/artifactory/services" 10 clientConfig "github.com/jfrog/jfrog-client-go/config" 11 "github.com/jfrog/jfrog-client-go/utils/errorutils" 12 "github.com/jfrog/jfrog-client-go/utils/io/content" 13 "github.com/jfrog/jfrog-client-go/utils/log" 14 ) 15 16 type PropsCommand struct { 17 props string 18 threads int 19 GenericCommand 20 } 21 22 func NewPropsCommand() *PropsCommand { 23 return &PropsCommand{GenericCommand: *NewGenericCommand()} 24 } 25 26 func (pc *PropsCommand) Threads() int { 27 return pc.threads 28 } 29 30 func (pc *PropsCommand) SetThreads(threads int) *PropsCommand { 31 pc.threads = threads 32 return pc 33 } 34 35 func (pc *PropsCommand) Props() string { 36 return pc.props 37 } 38 39 func (pc *PropsCommand) SetProps(props string) *PropsCommand { 40 pc.props = props 41 return pc 42 } 43 44 func createPropsServiceManager(threads, httpRetries, retryWaitMilliSecs int, serverDetails *config.ServerDetails) (artifactory.ArtifactoryServicesManager, error) { 45 certsPath, err := coreutils.GetJfrogCertsDir() 46 if err != nil { 47 return nil, err 48 } 49 artAuth, err := serverDetails.CreateArtAuthConfig() 50 if err != nil { 51 return nil, err 52 } 53 serviceConfig, err := clientConfig.NewConfigBuilder(). 54 SetServiceDetails(artAuth). 55 SetCertificatesPath(certsPath). 56 SetInsecureTls(serverDetails.InsecureTls). 57 SetThreads(threads). 58 SetHttpRetries(httpRetries). 59 SetHttpRetryWaitMilliSecs(retryWaitMilliSecs). 60 Build() 61 if err != nil { 62 return nil, err 63 } 64 return artifactory.New(serviceConfig) 65 } 66 67 func searchItems(spec *spec.SpecFiles, servicesManager artifactory.ArtifactoryServicesManager) (resultReader *content.ContentReader, err error) { 68 var errorOccurred = false 69 temp := []*content.ContentReader{} 70 defer func() { 71 for _, reader := range temp { 72 e := reader.Close() 73 if err == nil { 74 err = e 75 } 76 77 } 78 }() 79 for i := 0; i < len(spec.Files); i++ { 80 searchParams, err := utils.GetSearchParams(spec.Get(i)) 81 if err != nil { 82 errorOccurred = true 83 log.Error(err) 84 continue 85 } 86 reader, err := servicesManager.SearchFiles(searchParams) 87 if err != nil { 88 errorOccurred = true 89 log.Error(err) 90 continue 91 } 92 temp = append(temp, reader) 93 } 94 resultReader, err = content.MergeReaders(temp, content.DefaultKey) 95 if err != nil { 96 return 97 } 98 if errorOccurred { 99 err = errorutils.CheckErrorf("Operation finished with errors, please review the logs.") 100 } 101 return 102 } 103 104 func GetPropsParams(reader *content.ContentReader, properties string) (propsParams services.PropsParams) { 105 propsParams = services.NewPropsParams() 106 propsParams.Reader = reader 107 propsParams.Props = properties 108 return 109 }