| package registry |
| |
| // import ( |
| // "crypto/rand" |
| // "encoding/hex" |
| // "github.com/dotcloud/docker" |
| // "github.com/dotcloud/docker/auth" |
| // "io/ioutil" |
| // "os" |
| // "path" |
| // "testing" |
| // ) |
| |
| // func newTestRuntime() (*Runtime, error) { |
| // root, err := ioutil.TempDir("", "docker-test") |
| // if err != nil { |
| // return nil, err |
| // } |
| // if err := os.Remove(root); err != nil { |
| // return nil, err |
| // } |
| |
| // if err := os.MkdirAll(root, 0700); err != nil && !os.IsExist(err) { |
| // return nil, err |
| // } |
| |
| // return runtime, nil |
| // } |
| |
| // func TestPull(t *testing.T) { |
| // os.Setenv("DOCKER_INDEX_URL", "") |
| // runtime, err := newTestRuntime() |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // defer nuke(runtime) |
| |
| // err = runtime.graph.PullRepository(ioutil.Discard, "busybox", "", runtime.repositories, nil) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // img, err := runtime.repositories.LookupImage("busybox") |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // // Try to run something on this image to make sure the layer's been downloaded properly. |
| // config, _, err := docker.ParseRun([]string{img.Id, "echo", "Hello World"}, runtime.capabilities) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // b := NewBuilder(runtime) |
| // container, err := b.Create(config) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // if err := container.Start(); err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // if status := container.Wait(); status != 0 { |
| // t.Fatalf("Expected status code 0, found %d instead", status) |
| // } |
| // } |
| |
| // func TestPullTag(t *testing.T) { |
| // os.Setenv("DOCKER_INDEX_URL", "") |
| // runtime, err := newTestRuntime() |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // defer nuke(runtime) |
| |
| // err = runtime.graph.PullRepository(ioutil.Discard, "ubuntu", "12.04", runtime.repositories, nil) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // _, err = runtime.repositories.LookupImage("ubuntu:12.04") |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // img2, err := runtime.repositories.LookupImage("ubuntu:12.10") |
| // if img2 != nil { |
| // t.Fatalf("Expected nil image but found %v instead", img2.Id) |
| // } |
| // } |
| |
| // func login(runtime *Runtime) error { |
| // authConfig := auth.NewAuthConfig("unittester", "surlautrerivejetattendrai", "noise+unittester@dotcloud.com", runtime.root) |
| // runtime.authConfig = authConfig |
| // _, err := auth.Login(authConfig) |
| // return err |
| // } |
| |
| // func TestPush(t *testing.T) { |
| // os.Setenv("DOCKER_INDEX_URL", "https://indexstaging-docker.dotcloud.com") |
| // defer os.Setenv("DOCKER_INDEX_URL", "") |
| // runtime, err := newTestRuntime() |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // defer nuke(runtime) |
| |
| // err = login(runtime) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // err = runtime.graph.PullRepository(ioutil.Discard, "joffrey/busybox", "", runtime.repositories, nil) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // tokenBuffer := make([]byte, 16) |
| // _, err = rand.Read(tokenBuffer) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // token := hex.EncodeToString(tokenBuffer)[:29] |
| // config, _, err := ParseRun([]string{"joffrey/busybox", "touch", "/" + token}, runtime.capabilities) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // b := NewBuilder(runtime) |
| // container, err := b.Create(config) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| // if err := container.Start(); err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // if status := container.Wait(); status != 0 { |
| // t.Fatalf("Expected status code 0, found %d instead", status) |
| // } |
| |
| // img, err := b.Commit(container, "unittester/"+token, "", "", "", nil) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // repo := runtime.repositories.Repositories["unittester/"+token] |
| // err = runtime.graph.PushRepository(ioutil.Discard, "unittester/"+token, repo, runtime.authConfig) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // // Remove image so we can pull it again |
| // if err := runtime.graph.Delete(img.Id); err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // err = runtime.graph.PullRepository(ioutil.Discard, "unittester/"+token, "", runtime.repositories, runtime.authConfig) |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // layerPath, err := img.layer() |
| // if err != nil { |
| // t.Fatal(err) |
| // } |
| |
| // if _, err := os.Stat(path.Join(layerPath, token)); err != nil { |
| // t.Fatalf("Error while trying to retrieve token file: %v", err) |
| // } |
| // } |