integration-cli/docker_cli_v2_only_test.go
39f2f15a
 package main
 
 import (
 	"fmt"
 	"io/ioutil"
 	"net/http"
 	"os"
c559d8eb
 
4300e5e8
 	"github.com/docker/docker/integration-cli/registry"
c559d8eb
 	"github.com/go-check/check"
39f2f15a
 )
 
ebe66b1d
 func makefile(path string, contents string) (string, error) {
 	f, err := ioutil.TempFile(path, "tmp")
39f2f15a
 	if err != nil {
ebe66b1d
 		return "", err
39f2f15a
 	}
 	err = ioutil.WriteFile(f.Name(), []byte(contents), os.ModePerm)
 	if err != nil {
ebe66b1d
 		return "", err
39f2f15a
 	}
ebe66b1d
 	return f.Name(), nil
39f2f15a
 }
 
8d6df8a0
 // TestV2Only ensures that a daemon does not
39f2f15a
 // attempt to contact any v1 registry endpoints.
 func (s *DockerRegistrySuite) TestV2Only(c *check.C) {
4300e5e8
 	reg, err := registry.NewMock(c)
1e98fb5a
 	defer reg.Close()
899ca94c
 	c.Assert(err, check.IsNil)
39f2f15a
 
4300e5e8
 	reg.RegisterHandler("/v2/", func(w http.ResponseWriter, r *http.Request) {
39f2f15a
 		w.WriteHeader(404)
 	})
 
4300e5e8
 	reg.RegisterHandler("/v1/.*", func(w http.ResponseWriter, r *http.Request) {
39f2f15a
 		c.Fatal("V1 registry contacted")
 	})
 
4300e5e8
 	repoName := fmt.Sprintf("%s/busybox", reg.URL())
39f2f15a
 
12828001
 	s.d.Start(c, "--insecure-registry", reg.URL())
39f2f15a
 
ebe66b1d
 	tmp, err := ioutil.TempDir("", "integration-cli-")
 	c.Assert(err, check.IsNil)
 	defer os.RemoveAll(tmp)
 
 	dockerfileName, err := makefile(tmp, fmt.Sprintf("FROM %s/busybox", reg.URL()))
899ca94c
 	c.Assert(err, check.IsNil, check.Commentf("Unable to create test dockerfile"))
39f2f15a
 
ebe66b1d
 	s.d.Cmd("build", "--file", dockerfileName, tmp)
39f2f15a
 
 	s.d.Cmd("run", repoName)
a7672b83
 	s.d.Cmd("login", "-u", "richard", "-p", "testtest", reg.URL())
39f2f15a
 	s.d.Cmd("tag", "busybox", repoName)
 	s.d.Cmd("push", repoName)
 	s.d.Cmd("pull", repoName)
 }