github.com/jfrog/jfrog-cli-core@v1.12.1/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 serverDetails *config.ServerDetails 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 index := strings.Index(imageTag, "/") 27 imageRelativePath := imageTag 28 if index != -1 { 29 imageRelativePath = imageTag[index:] 30 } 31 // Use the default image tag if none exists. 32 if strings.LastIndex(imageRelativePath, ":") == -1 { 33 cmc.imageTag += ":latest" 34 } 35 return cmc 36 } 37 38 func (cmc *ContainerManagerCommand) Repo() string { 39 return cmc.repo 40 } 41 42 func (cmc *ContainerManagerCommand) SetRepo(repo string) *ContainerManagerCommand { 43 cmc.repo = repo 44 return cmc 45 } 46 47 func (cmc *ContainerManagerCommand) BuildConfiguration() *utils.BuildConfiguration { 48 return cmc.buildConfiguration 49 } 50 51 func (cmc *ContainerManagerCommand) SetBuildConfiguration(buildConfiguration *utils.BuildConfiguration) *ContainerManagerCommand { 52 cmc.buildConfiguration = buildConfiguration 53 return cmc 54 } 55 56 func (cmc *ContainerManagerCommand) SetSkipLogin(skipLogin bool) *ContainerManagerCommand { 57 cmc.skipLogin = skipLogin 58 return cmc 59 } 60 61 func (cmc *ContainerManagerCommand) ServerDetails() *config.ServerDetails { 62 return cmc.serverDetails 63 } 64 65 func (cmc *ContainerManagerCommand) SetServerDetails(serverDetails *config.ServerDetails) *ContainerManagerCommand { 66 cmc.serverDetails = serverDetails 67 return cmc 68 } 69 70 func (cmc *ContainerManagerCommand) PerformLogin(serverDetails *config.ServerDetails, containerManagerType container.ContainerManagerType) error { 71 if !cmc.skipLogin { 72 loginConfig := &container.ContainerManagerLoginConfig{ServerDetails: serverDetails} 73 return container.ContainerManagerLogin(cmc.imageTag, loginConfig, containerManagerType) 74 } 75 return nil 76 }