package lifecycle_test import ( "time" "github.com/cloudfoundry-incubator/garden/warden" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("A container with a grace time", func() { var container warden.Container BeforeEach(func() { err := runner.Stop() Expect(err).ToNot(HaveOccurred()) err = runner.Start("--containerGraceTime", "5s") Expect(err).ToNot(HaveOccurred()) container, err = client.Create(warden.ContainerSpec{}) Expect(err).ToNot(HaveOccurred()) }) AfterEach(func() { err := runner.Stop() Expect(err).ToNot(HaveOccurred()) err = runner.Start() Expect(err).ToNot(HaveOccurred()) })
package lifecycle_test import ( "github.com/cloudfoundry-incubator/garden/warden" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("A container with properties", func() { var container warden.Container BeforeEach(func() { var err error container, err = client.Create(warden.ContainerSpec{ Properties: warden.Properties{ "foo": "bar", "a": "b", }, }) Expect(err).ToNot(HaveOccurred()) }) AfterEach(func() { err := client.Destroy(container.Handle()) Expect(err).ToNot(HaveOccurred()) }) Describe("when reporting the container's info", func() { It("includes the properties", func() { info, err := container.Info()
import ( "fmt" "runtime" "sync/atomic" "time" "github.com/cloudfoundry-incubator/garden/warden" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("The Warden server", func() { runtime.GOMAXPROCS(runtime.NumCPU()) Describe("streaming output from a chatty job", func() { var container warden.Container BeforeEach(func() { var err error container, err = client.Create(warden.ContainerSpec{}) Expect(err).ToNot(HaveOccurred()) }) streamCounts := []int{0} for i := 1; i <= 128; i *= 2 { streamCounts = append(streamCounts, i) } for _, streams := range streamCounts {
func (s *WardenServer) reapContainer(container warden.Container) { log.Printf("reaping %s (idle for %s)\n", container.Handle(), s.backend.GraceTime(container)) s.backend.Destroy(container.Handle()) }
"compress/gzip" "fmt" "io" "io/ioutil" "os" "path/filepath" "time" "github.com/cloudfoundry-incubator/garden/warden" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" archiver "github.com/pivotal-golang/archiver/extractor/test_helper" ) var _ = Describe("Creating a container", func() { var container warden.Container BeforeEach(func() { var err error container, err = client.Create(warden.ContainerSpec{}) Expect(err).ToNot(HaveOccurred()) }) AfterEach(func() { err := client.Destroy(container.Handle()) Expect(err).ToNot(HaveOccurred()) }) It("sources /etc/seed", func() { _, stream, err := container.Run(warden.ProcessSpec{
_, err := linuxBackend.Create(warden.ContainerSpec{}) Expect(err).To(HaveOccurred()) containers, err := linuxBackend.Containers(nil) Expect(err).ToNot(HaveOccurred()) Expect(containers).To(BeEmpty()) }) }) }) var _ = Describe("Destroy", func() { var fakeContainerPool *fake_container_pool.FakeContainerPool var linuxBackend *linux_backend.LinuxBackend var container warden.Container BeforeEach(func() { fakeContainerPool = fake_container_pool.New() fakeSystemInfo := fake_system_info.NewFakeProvider() linuxBackend = linux_backend.New(fakeContainerPool, fakeSystemInfo, "") newContainer, err := linuxBackend.Create(warden.ContainerSpec{}) Expect(err).ToNot(HaveOccurred()) container = newContainer }) It("removes the given container from the pool", func() { Expect(fakeContainerPool.DestroyedContainers).To(BeEmpty())
"errors" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" "io" "io/ioutil" "strings" . "github.com/cloudfoundry-incubator/garden/client" "github.com/cloudfoundry-incubator/garden/client/connection" "github.com/cloudfoundry-incubator/garden/client/connection/fake_connection" "github.com/cloudfoundry-incubator/garden/warden" ) var _ = Describe("Container", func() { var connectionProvider ConnectionProvider var container warden.Container var fakeConnection *fake_connection.FakeConnection BeforeEach(func() { fakeConnection = fake_connection.New() connectionProvider = &FakeConnectionProvider{ Connection: fakeConnection, } }) JustBeforeEach(func() { var err error client := New(connectionProvider)
"strings" "github.com/cloudfoundry-incubator/garden/warden" . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" ) var _ = Describe("Placing limits on containers", func() { Describe("denying access to network ranges", func() { var ( blockedListener warden.Container blockedListenerIP string unblockedListener warden.Container unblockedListenerIP string allowedListener warden.Container allowedListenerIP string sender warden.Container ) BeforeEach(func() { var err error // create a listener to which we deny network access blockedListener, err = client.Create(warden.ContainerSpec{}) Expect(err).ToNot(HaveOccurred()) info, err := blockedListener.Info() Expect(err).ToNot(HaveOccurred()) blockedListenerIP = info.ContainerIP
stdout += string(payload.Data) case warden.ProcessStreamSourceStderr: stderr += string(payload.Data) } if payload.ExitStatus != nil { exitStatus = *payload.ExitStatus } } return stdout, stderr, exitStatus } var _ = Describe("Through a restart", func() { var container warden.Container BeforeEach(func() { var err error container, err = client.Create(warden.ContainerSpec{}) Expect(err).ToNot(HaveOccurred()) }) AfterEach(func() { err := runner.Stop() Expect(err).ToNot(HaveOccurred()) err = runner.DestroyContainers() Expect(err).ToNot(HaveOccurred())