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  }