github.com/osievert/jfrog-cli-core@v1.2.7/artifactory/commands/container/containermanager.go (about) 1 package container 2 3 import ( 4 "strings" 5 6 "github.com/jfrog/jfrog-cli-core/artifactory/utils" 7 "github.com/jfrog/jfrog-cli-core/artifactory/utils/container" 8 "github.com/jfrog/jfrog-cli-core/utils/config" 9 ) 10 11 type ContainerManagerCommand struct { 12 imageTag string 13 repo string 14 buildConfiguration *utils.BuildConfiguration 15 rtDetails *config.ArtifactoryDetails 16 skipLogin bool 17 } 18 19 func (cmc *ContainerManagerCommand) ImageTag() string { 20 return cmc.imageTag 21 } 22 23 func (cmc *ContainerManagerCommand) SetImageTag(imageTag string) *ContainerManagerCommand { 24 cmc.imageTag = imageTag 25 // Remove base URL from the image tag. 26 imageRelativePath := imageTag[strings.Index(imageTag, "/"):] 27 // Use the default image tag if none exists. 28 if strings.LastIndex(imageRelativePath, ":") == -1 { 29 cmc.imageTag += ":latest" 30 } 31 return cmc 32 } 33 34 func (cmc *ContainerManagerCommand) Repo() string { 35 return cmc.repo 36 } 37 38 func (cmc *ContainerManagerCommand) SetRepo(repo string) *ContainerManagerCommand { 39 cmc.repo = repo 40 return cmc 41 } 42 43 func (cmc *ContainerManagerCommand) BuildConfiguration() *utils.BuildConfiguration { 44 return cmc.buildConfiguration 45 } 46 47 func (cmc *ContainerManagerCommand) SetBuildConfiguration(buildConfiguration *utils.BuildConfiguration) *ContainerManagerCommand { 48 cmc.buildConfiguration = buildConfiguration 49 return cmc 50 } 51 52 func (cmc *ContainerManagerCommand) SetSkipLogin(skipLogin bool) *ContainerManagerCommand { 53 cmc.skipLogin = skipLogin 54 return cmc 55 } 56 57 func (cmc *ContainerManagerCommand) RtDetails() *config.ArtifactoryDetails { 58 return cmc.rtDetails 59 } 60 61 func (cmc *ContainerManagerCommand) SetRtDetails(rtDetails *config.ArtifactoryDetails) *ContainerManagerCommand { 62 cmc.rtDetails = rtDetails 63 return cmc 64 } 65 66 func (cmc *ContainerManagerCommand) PerformLogin(rtDetails *config.ArtifactoryDetails, containerManagerType container.ContainerManagerType) error { 67 if !cmc.skipLogin { 68 loginConfig := &container.ContainerManagerLoginConfig{ArtifactoryDetails: rtDetails} 69 return container.ContainerManagerLogin(cmc.imageTag, loginConfig, containerManagerType) 70 } 71 return nil 72 }