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  }