예제 #1
0
				err = container.Stop(false)
				Ω(err).ShouldNot(HaveOccurred())

				Ω(fakeConnection.Stopped("some-handle")).Should(BeEmpty())
				Ω(otherFakeConnection.Stopped("some-handle")).ShouldNot(BeEmpty())
			})
		})
	})

	Describe("NetIn", func() {
		It("sends a net in request", func() {
			fakeConnection.WhenNetInning = func(handle string, hostPort, containerPort uint32) (uint32, uint32, error) {
				return 111, 222, nil
			}

			hostPort, containerPort, err := container.NetIn(123, 456)
			Ω(err).ShouldNot(HaveOccurred())
			Ω(hostPort).Should(Equal(uint32(111)))
			Ω(containerPort).Should(Equal(uint32(222)))

			Ω(fakeConnection.NetInned("some-handle")).Should(ContainElement(
				fake_connection.NetInSpec{
					HostPort:      123,
					ContainerPort: 456,
				},
			))
		})

		Context("when the request fails", func() {
			disaster := errors.New("oh no!")
예제 #2
0
			restartServer()

			newContainer, err := client.Create(warden.ContainerSpec{})
			Expect(err).ToNot(HaveOccurred())

			infoB, err := newContainer.Info()
			Expect(err).ToNot(HaveOccurred())

			Expect(infoA.HostIP).ToNot(Equal(infoB.HostIP))
			Expect(infoA.ContainerIP).ToNot(Equal(infoB.ContainerIP))
		})
	})

	Describe("a container's mapped port", func() {
		It("does not get reused", func() {
			netInAHost, netInAContainer, err := container.NetIn(0, 0)
			Expect(err).ToNot(HaveOccurred())

			restartServer()

			containerB, err := client.Create(warden.ContainerSpec{})
			Expect(err).ToNot(HaveOccurred())

			netInBHost, netInBContainer, err := containerB.NetIn(0, 0)
			Expect(err).ToNot(HaveOccurred())

			Expect(netInAHost).ToNot(Equal(netInBHost))
			Expect(netInAContainer).ToNot(Equal(netInBContainer))
		})
	})