func startV2DockerRegistry(client garden.Client, dockerRegistryIP string, dockerRegistryPort string) garden.Container { dockerRegistry, err := client.Create( garden.ContainerSpec{ RootFSPath: dockerRegistryV2RootFSPath, Network: dockerRegistryIP, }, ) Expect(err).ToNot(HaveOccurred()) _, err = dockerRegistry.Run(garden.ProcessSpec{ User: "******", Env: []string{ "REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/opt/docker-registry", }, Path: "/go/bin/registry", Args: []string{"/go/src/github.com/docker/distribution/cmd/registry/config.yml"}, }, garden.ProcessIO{Stdout: GinkgoWriter, Stderr: GinkgoWriter}) Expect(err).ToNot(HaveOccurred()) Eventually( fmt.Sprintf("http://%s:%s/v2/", dockerRegistryIP, dockerRegistryPort), "60s", ).Should(RespondToGETWith(200)) return dockerRegistry }
func warmUp(gardenClient garden.Client) { ctr, err := gardenClient.Create(garden.ContainerSpec{}) Expect(err).ToNot(HaveOccurred()) Expect(gardenClient.Destroy(ctr.Handle())).To(Succeed()) }
finishCreating = make(chan struct{}) fakeBackend.CreateStub = func(garden.ContainerSpec) (garden.Container, error) { close(creating) <-finishCreating return new(fakes.FakeContainer), nil } }) It("waits for it to complete and stops accepting requests", func() { created := make(chan garden.Container, 1) go func() { defer GinkgoRecover() container, err := apiClient.Create(garden.ContainerSpec{}) Ω(err).ShouldNot(HaveOccurred()) created <- container }() Eventually(creating).Should(BeClosed()) stopExited := make(chan struct{}) go func() { apiServer.Stop() close(stopExited) }() Consistently(stopExited).ShouldNot(BeClosed())