utils

package
v0.6.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 23, 2019 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ARTIFACTORY_SYMLINK = "symlink.dest"
	SYMLINK_SHA1        = "symlink.destsha1"
	Latest              = "LATEST"
	LastRelease         = "LAST_RELEASE"
)

Variables

This section is empty.

Functions

func AddAuthHeaders

func AddAuthHeaders(headers map[string]string, artifactoryDetails auth.ArtifactoryDetails)

func AddChecksumHeaders

func AddChecksumHeaders(headers map[string]string, fileDetails *fileutils.FileDetails)

func AddHeader

func AddHeader(headerName, headerValue string, headers *map[string]string)

func BuildArtifactoryUrl

func BuildArtifactoryUrl(baseUrl, path string, params map[string]string) (string, error)

func CreateAqlQueryForNpm

func CreateAqlQueryForNpm(npmName, npmVersion string) string

noinspection GoUnusedExportedFunction

func CreateAqlQueryForPypi added in v0.6.4

func CreateAqlQueryForPypi(repo, file string) string

func DisableAccelBuffering added in v0.6.4

func DisableAccelBuffering(headers *map[string]string)

func ExecAql

func ExecAql(aqlQuery string, flags CommonConf) ([]byte, error)

func GetBuildNameAndNumberFromArtifactory

func GetBuildNameAndNumberFromArtifactory(buildName, buildNumber string, flags CommonConf) (string, string, error)

func IsSubPath

func IsSubPath(paths []string, index int, separator string) bool

@paths - sorted array @index - index of the current path which we want to check if it a prefix of any of the other previous paths @separator - file separator returns true paths[index] is a prefix of any of the paths[i] where i<index , otherwise returns false

func IsWildcardPattern

func IsWildcardPattern(pattern string) bool

func LogSearchResults

func LogSearchResults(numOfArtifacts int)

func SetContentType

func SetContentType(contentType string, headers *map[string]string)

func UploadFile

func UploadFile(localPath, url, logMsgPrefix string, artifactoryDetails *auth.ArtifactoryDetails, details *fileutils.FileDetails,
	httpClientsDetails httputils.HttpClientDetails, client *rthttpclient.ArtifactoryHttpClient, retries int, progress io.Progress) (*http.Response, []byte, error)

func WildcardToDirsPath

func WildcardToDirsPath(deletePattern, searchResult string) (string, error)

Types

type Aql

type Aql struct {
	ItemsFind string `json:"items.find"`
}

func (*Aql) UnmarshalJSON

func (aql *Aql) UnmarshalJSON(value []byte) error

type AqlSearchResult

type AqlSearchResult struct {
	Results []ResultItem
}

type AqlSearchResultItemFilter

type AqlSearchResultItemFilter func(map[string]ResultItem, []string) []ResultItem

type ArtifactoryCommonParams

type ArtifactoryCommonParams struct {
	Aql             Aql
	Pattern         string
	ExcludePatterns []string
	Target          string
	Props           string
	ExcludeProps    string
	SortOrder       string
	SortBy          []string
	Offset          int
	Limit           int
	Build           string
	Recursive       bool
	IncludeDirs     bool
	Regexp          bool
	ArchiveEntries  string
}

func (*ArtifactoryCommonParams) GetAql

func (params *ArtifactoryCommonParams) GetAql() Aql

func (ArtifactoryCommonParams) GetArchiveEntries

func (params ArtifactoryCommonParams) GetArchiveEntries() string

func (*ArtifactoryCommonParams) GetBuild

func (params *ArtifactoryCommonParams) GetBuild() string

func (*ArtifactoryCommonParams) GetExcludePatterns

func (params *ArtifactoryCommonParams) GetExcludePatterns() []string

func (*ArtifactoryCommonParams) GetExcludeProps

func (params *ArtifactoryCommonParams) GetExcludeProps() string

func (*ArtifactoryCommonParams) GetLimit

func (params *ArtifactoryCommonParams) GetLimit() int

func (*ArtifactoryCommonParams) GetOffset

func (params *ArtifactoryCommonParams) GetOffset() int

func (*ArtifactoryCommonParams) GetPattern

func (params *ArtifactoryCommonParams) GetPattern() string

func (*ArtifactoryCommonParams) GetProps

func (params *ArtifactoryCommonParams) GetProps() string

func (*ArtifactoryCommonParams) GetSortBy

func (params *ArtifactoryCommonParams) GetSortBy() []string

func (*ArtifactoryCommonParams) GetSortOrder

func (params *ArtifactoryCommonParams) GetSortOrder() string

func (ArtifactoryCommonParams) GetSpecType

func (params ArtifactoryCommonParams) GetSpecType() (specType SpecType)

func (*ArtifactoryCommonParams) GetTarget

func (params *ArtifactoryCommonParams) GetTarget() string

func (*ArtifactoryCommonParams) IsExplode

func (params *ArtifactoryCommonParams) IsExplode() bool

func (ArtifactoryCommonParams) IsIncludeDirs

func (params ArtifactoryCommonParams) IsIncludeDirs() bool

func (*ArtifactoryCommonParams) IsRecursive

func (params *ArtifactoryCommonParams) IsRecursive() bool

func (*ArtifactoryCommonParams) IsRegexp

func (params *ArtifactoryCommonParams) IsRegexp() bool

func (*ArtifactoryCommonParams) SetArchiveEntries

func (params *ArtifactoryCommonParams) SetArchiveEntries(archiveEntries string)

func (*ArtifactoryCommonParams) SetExcludeProps

func (params *ArtifactoryCommonParams) SetExcludeProps(excludeProps string)

func (*ArtifactoryCommonParams) SetPattern

func (params *ArtifactoryCommonParams) SetPattern(pattern string)

func (*ArtifactoryCommonParams) SetProps

func (params *ArtifactoryCommonParams) SetProps(props string)

func (*ArtifactoryCommonParams) SetTarget

func (params *ArtifactoryCommonParams) SetTarget(target string)

type CommonConf

type CommonConf interface {
	GetArtifactoryDetails() auth.ArtifactoryDetails
	SetArtifactoryDetails(rt auth.ArtifactoryDetails)
	GetJfrogHttpClient() (*rthttpclient.ArtifactoryHttpClient, error)
	IsDryRun() bool
}

type CommonConfImpl

type CommonConfImpl struct {
	DryRun bool
	// contains filtered or unexported fields
}

func (*CommonConfImpl) GetArtifactoryDetails

func (flags *CommonConfImpl) GetArtifactoryDetails() auth.ArtifactoryDetails

func (*CommonConfImpl) GetJfrogHttpClient

func (flags *CommonConfImpl) GetJfrogHttpClient() (*rthttpclient.ArtifactoryHttpClient, error)

func (*CommonConfImpl) IsDryRun

func (flags *CommonConfImpl) IsDryRun() bool

func (*CommonConfImpl) SetArtifactoryDetails

func (flags *CommonConfImpl) SetArtifactoryDetails(rt auth.ArtifactoryDetails)

type ErrorsQueue

type ErrorsQueue struct {
	// contains filtered or unexported fields
}

func NewErrorsQueue

func NewErrorsQueue(size int) *ErrorsQueue

func (*ErrorsQueue) AddError

func (errQueue *ErrorsQueue) AddError(err error)

func (*ErrorsQueue) GetError

func (errQueue *ErrorsQueue) GetError() error

type FileGetter

type FileGetter interface {
	GetAql() Aql
	GetPattern() string
	SetPattern(pattern string)
	GetExcludePatterns() []string
	GetTarget() string
	SetTarget(target string)
	IsExplode() bool
	GetProps() string
	GetSortOrder() string
	GetSortBy() []string
	GetOffset() int
	GetLimit() int
	GetBuild() string
	GetSpecType() (specType SpecType)
	IsRegexp() bool
	IsRecursive() bool
	IsIncludeDirs() bool
	GetArchiveEntries() string
	SetArchiveEntries(archiveEntries string)
}

type FileHashes

type FileHashes struct {
	Sha256 string `json:"sha256,omitempty"`
	Sha1   string `json:"sha1,omitempty"`
	Md5    string `json:"md5,omitempty"`
}

type FileInfo

type FileInfo struct {
	*FileHashes
	LocalPath       string `json:"localPath,omitempty"`
	ArtifactoryPath string `json:"artifactoryPath,omitempty"`
}

func FlattenFileInfoArray

func FlattenFileInfoArray(dependenciesBuildInfo [][]FileInfo) []FileInfo

func (*FileInfo) ToBuildArtifacts

func (fileInfo *FileInfo) ToBuildArtifacts() buildinfo.Artifact

type Properties

type Properties struct {
	Properties []Property
}

func ParseProperties

func ParseProperties(propStr string, option PropertyParseOptions) (*Properties, error)

Parsing properties string to Properties struct.

func (*Properties) ToBuildPromoteMap

func (props *Properties) ToBuildPromoteMap() map[string][]string

Convert properties from Slice to map that build promotion REST API requires

func (*Properties) ToEncodedString

func (props *Properties) ToEncodedString() string

func (*Properties) ToHeadersMap

func (props *Properties) ToHeadersMap() map[string]string

type Property

type Property struct {
	Key   string
	Value string
}

type PropertyParseOptions

type PropertyParseOptions int
const (
	// Parsing properties
	SplitCommas PropertyParseOptions = iota
	JoinCommas
)

type RepoPathFile

type RepoPathFile struct {
	// contains filtered or unexported fields
}

We need to translate the provided download pattern to an AQL query. In Artifactory, for each artifact the name and path of the artifact are saved separately. We therefore need to build an AQL query that covers all possible repositories, paths and names the provided pattern can include. For example, the pattern repo/a/* can include the two following file: repo/a/file1.tgz and also repo/a/b/file2.tgz To achieve that, this function parses the pattern by splitting it by its * characters. The end result is a list of RepoPathFile structs. Each struct represent a possible repository, path and file name triple to be included in AQL query with an "or" relationship.

type RequiredArtifactProps

type RequiredArtifactProps int
const (
	ALL RequiredArtifactProps = iota
	SYMLINK
	NONE
)

This enum defines which properties are required in the result of the aql. For example, when performing a copy/move command - the props are not needed, so we set RequiredArtifactProps to NONE.

type ResultItem

type ResultItem struct {
	Repo        string
	Path        string
	Name        string
	Actual_Md5  string
	Actual_Sha1 string
	Size        int64
	Created     string
	Modified    string
	Properties  []Property
	Type        string
}

func FilterBottomChainResults

func FilterBottomChainResults(paths map[string]ResultItem, pathsKeys []string) []ResultItem

func FilterTopChainResults

func FilterTopChainResults(paths map[string]ResultItem, pathsKeys []string) []ResultItem

func ReduceDirResult

func ReduceDirResult(searchResults []ResultItem, resultsFilter AqlSearchResultItemFilter) []ResultItem

Reduce Dir results by using the resultsFilter

func SearchBySpecWithAql

func SearchBySpecWithAql(specFile *ArtifactoryCommonParams, flags CommonConf, requiredArtifactProps RequiredArtifactProps) ([]ResultItem, error)

Use this function when running Aql with pattern

func SearchBySpecWithBuild added in v0.6.4

func SearchBySpecWithBuild(specFile *ArtifactoryCommonParams, flags CommonConf) ([]ResultItem, error)

Use this function when searching by build without pattern or aql. This will prevent unnecessary search upon all Artifactory.

func SearchBySpecWithPattern

func SearchBySpecWithPattern(specFile *ArtifactoryCommonParams, flags CommonConf, requiredArtifactProps RequiredArtifactProps) ([]ResultItem, error)

Perform search by pattern.

func (ResultItem) GetItemRelativePath

func (item ResultItem) GetItemRelativePath() string

func (*ResultItem) ToArtifact

func (item *ResultItem) ToArtifact() buildinfo.Artifact

func (*ResultItem) ToDependency

func (item *ResultItem) ToDependency() buildinfo.Dependency

type SpecType

type SpecType string
const (
	WILDCARD SpecType = "wildcard"
	AQL      SpecType = "aql"
	BUILD    SpecType = "build"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL