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  }