Revert "Use docker's ParseRepositoryTag when pulling"

This commit is contained in:
Zach Loafman
2015-03-17 15:16:33 -07:00
parent 89f18f6fe1
commit 5496686f33
23 changed files with 123 additions and 278 deletions

View File

@@ -35,7 +35,6 @@ import (
"github.com/GoogleCloudPlatform/kubernetes/pkg/kubelet/leaky"
"github.com/GoogleCloudPlatform/kubernetes/pkg/types"
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
"github.com/docker/docker/pkg/parsers"
docker "github.com/fsouza/go-dockerclient"
"github.com/golang/glog"
)
@@ -326,7 +325,7 @@ func NewDockerContainerCommandRunner(client DockerInterface) ContainerCommandRun
}
func (p dockerPuller) Pull(image string) error {
_, tag := parsers.ParseRepositoryTag(image)
image, tag := parseImageName(image)
// If no tag was specified, use the default "latest".
if len(tag) == 0 {
@@ -380,6 +379,16 @@ func (p dockerPuller) IsImagePresent(image string) (bool, error) {
return false, err
}
// RequireLatestImage returns if the user wants the latest image
func RequireLatestImage(name string) bool {
_, tag := parseImageName(name)
if tag == "latest" {
return true
}
return false
}
func (p throttledDockerPuller) IsImagePresent(name string) (bool, error) {
return p.puller.IsImagePresent(name)
}
@@ -762,6 +771,29 @@ func GetRunningContainers(client DockerInterface, ids []string) ([]*docker.Conta
return result, nil
}
// Parses image name including a tag and returns image name and tag.
// TODO: Future Docker versions can parse the tag on daemon side, see
// https://github.com/dotcloud/docker/issues/6876
// So this can be deprecated at some point.
func parseImageName(image string) (string, string) {
tag := ""
parts := strings.SplitN(image, "/", 2)
repo := ""
if len(parts) == 2 {
repo = parts[0]
image = parts[1]
}
parts = strings.SplitN(image, ":", 2)
if len(parts) == 2 {
image = parts[0]
tag = parts[1]
}
if repo != "" {
image = fmt.Sprintf("%s/%s", repo, image)
}
return image, tag
}
// Get a docker endpoint, either from the string passed in, or $DOCKER_HOST environment variables
func getDockerEndpoint(dockerEndpoint string) string {
var endpoint string