diff --git a/docker/resource_docker_image_funcs.go b/docker/resource_docker_image_funcs.go index 1a3f171e..8509a787 100644 --- a/docker/resource_docker_image_funcs.go +++ b/docker/resource_docker_image_funcs.go @@ -185,32 +185,6 @@ type internalPullImageOptions struct { func parseImageOptions(image string) internalPullImageOptions { pullOpts := internalPullImageOptions{} - // splitImageName := strings.Split(image, ":") - // switch len(splitImageName) { - - // // It's in registry:port/username/repo:tag or registry:port/repo:tag format - // case 3: - // splitPortRepo := strings.Split(splitImageName[1], "/") - // pullOpts.Registry = splitImageName[0] + ":" + splitPortRepo[0] - // pullOpts.Tag = splitImageName[2] - // pullOpts.Repository = pullOpts.Registry + "/" + strings.Join(splitPortRepo[1:], "/") - - // // It's either registry:port/username/repo, registry:port/repo - // // or repo:tag with default registry - // case 2: - // splitPortRepo := strings.Split(splitImageName[1], "/") - // switch len(splitPortRepo) { - // // repo:tag - // case 1: - // pullOpts.Repository = splitImageName[0] - // pullOpts.Tag = splitImageName[1] - - // // registry:port/username/repo or registry:port/repo - // default: - // pullOpts.Registry = splitImageName[0] + ":" + splitPortRepo[0] - // pullOpts.Repository = pullOpts.Registry + "/" + strings.Join(splitPortRepo[1:], "/") - // pullOpts.Tag = "latest" - // } // Pre-fill with image by default, update later if tag found pullOpts.Repository = image diff --git a/docker/resource_docker_image_funcs_test.go b/docker/resource_docker_image_funcs_test.go deleted file mode 100644 index f17dc47b..00000000 --- a/docker/resource_docker_image_funcs_test.go +++ /dev/null @@ -1,117 +0,0 @@ -package docker - -import ( - "github.com/fsouza/go-dockerclient" - "testing" -) - -func TestParseRegistryPortTagFormat(t *testing.T) { - validatePullOpts(t, - "registry.gitlab.com:443/foo/bar:v1", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com:443", - Repository: "registry.gitlab.com:443/foo/bar", - Tag: "v1", - }) - validatePullOpts(t, - "registry.gitlab.com:443/foo:v1", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com:443", - Repository: "registry.gitlab.com:443/foo", - Tag: "v1", - }) -} - -func TestParseRegistryPortFormat(t *testing.T) { - validatePullOpts(t, - "registry.gitlab.com:443/foo/bar", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com:443", - Repository: "registry.gitlab.com:443/foo/bar", - Tag: "", - }) - validatePullOpts(t, - "registry.gitlab.com:443/foo", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com:443", - Repository: "registry.gitlab.com:443/foo", - Tag: "", - }) -} - -func TestParseRepoTagFormat(t *testing.T) { - validatePullOpts(t, - "foo:bar", - &docker.PullImageOptions{ - Registry: "", - Repository: "foo", - Tag: "bar", - }) -} - -func TestParseRegistryRepoFormat(t *testing.T) { - validatePullOpts(t, - "registry.gitlab.com/foo/bar", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com", - Repository: "registry.gitlab.com/foo/bar", - Tag: "", - }) -} - -func TestParsePlainRepoFormat(t *testing.T) { - validatePullOpts(t, - "foo/bar", - &docker.PullImageOptions{ - Registry: "", - Repository: "foo/bar", - Tag: "", - }) -} - -func TestParseGitlabComThreePartImageOptions(t *testing.T) { - validatePullOpts(t, - "registry.gitlab.com:443/foo/bar/baz:v1", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com:443", - Repository: "registry.gitlab.com:443/foo/bar/baz", - Tag: "v1", - }) - validatePullOpts(t, - "registry.gitlab.com:443/foo/bar/baz", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com:443", - Repository: "registry.gitlab.com:443/foo/bar/baz", - Tag: "", - }) - validatePullOpts(t, - "registry.gitlab.com/foo/bar/baz:v1", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com", - Repository: "registry.gitlab.com/foo/bar/baz", - Tag: "v1", - }) - validatePullOpts(t, - "registry.gitlab.com/foo/bar/baz", - &docker.PullImageOptions{ - Registry: "registry.gitlab.com", - Repository: "registry.gitlab.com/foo/bar/baz", - Tag: "", - }) -} - -func validatePullOpts(t *testing.T, inputString string, expected *docker.PullImageOptions) { - pullOpts := parseImageOptions(inputString) - - if pullOpts.Registry != expected.Registry { - t.Fatalf("For '%s' expected registry '%s', got '%s'", inputString, expected.Registry, pullOpts.Registry) - } - - if pullOpts.Repository != expected.Repository { - t.Fatalf("For '%s' expected repository '%s', got '%s'", inputString, expected.Repository, pullOpts.Repository) - } - - if pullOpts.Tag != expected.Tag { - t.Fatalf("For '%s' expected tag '%s', got '%s'", inputString, expected.Tag, pullOpts.Tag) - } -} diff --git a/website/docs/index.html.markdown b/website/docs/index.html.markdown index 7a397811..229246a5 100644 --- a/website/docs/index.html.markdown +++ b/website/docs/index.html.markdown @@ -69,8 +69,8 @@ data "docker_registry_image" "quay" { ``` -> **Note** -When passing in a config file make sure every repo in the `auths` object has -an `auth` string. If not you'll get an `ErrCannotParseDockercfg` by the underlying `go-dockerclient`. On OSX the `auth` base64 string is stored in the `osxkeychain`, but reading from there is not yet supported. See [go-dockerclient#677](https://github.com/fsouza/go-dockerclient/issues/677) for details. +When passing in a config file make sure every repo in the `auths` object should have +a corresponding `auth` string. In this case, either use `username` and `password` directly or set the enviroment variables `DOCKER_REGISTRY_USER` and `DOCKER_REGISTRY_PASS` or add the string manually via