本文整理匯總了Golang中code/cloudfoundry/org/garden.Container.NetIn方法的典型用法代碼示例。如果您正苦於以下問題:Golang Container.NetIn方法的具體用法?Golang Container.NetIn怎麽用?Golang Container.NetIn使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類code/cloudfoundry/org/garden.Container
的用法示例。
在下文中一共展示了Container.NetIn方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1:
args = append(args, "--properties-path", path.Join(propertiesDir, "props.json"))
containerSpec = garden.ContainerSpec{
Network: "177.100.10.30/30",
}
restartArgs = []string{}
gracefulShutdown = true
})
JustBeforeEach(func() {
var err error
container, err = client.Create(containerSpec)
Expect(err).NotTo(HaveOccurred())
hostNetInPort, _, err = container.NetIn(hostNetInPort, 8080)
Expect(err).NotTo(HaveOccurred())
container.NetOut(garden.NetOutRule{
Networks: []garden.IPRange{
garden.IPRangeFromIP(net.ParseIP("8.8.8.8")),
},
})
info, err := container.Info()
Expect(err).NotTo(HaveOccurred())
externalIP = info.ExternalIP
interfacePrefix = info.Properties["kawasaki.iptable-prefix"]
out := gbytes.NewBuffer()
existingProc, err = container.Run(
示例2:
Expect(err).NotTo(HaveOccurred())
Expect(info.ContainerPath).To(Equal(path.Join(client.DepotDir, container.Handle())))
})
It("can return the list of properties", func() {
Expect(container.SetProperty("abc", "xyz")).To(Succeed())
info, err := container.Info()
Expect(err).NotTo(HaveOccurred())
Expect(info.Properties).To(HaveKeyWithValue("foo", "bar"))
Expect(info.Properties).To(HaveKeyWithValue("abc", "xyz"))
})
It("can return port mappings", func() {
hostPort, containerPort, err := container.NetIn(0, 0)
Expect(err).NotTo(HaveOccurred())
info, err := container.Info()
Expect(err).NotTo(HaveOccurred())
portMapping := info.MappedPorts[0]
Expect(portMapping.HostPort).To(Equal(hostPort))
Expect(portMapping.ContainerPort).To(Equal(containerPort))
})
})
var _ = Describe("BulkInfo", func() {
var (
client *runner.RunningGarden
)
示例3:
Ω(process.ID()).Should(Equal("process-handle"))
status, err := process.Wait()
Ω(err).ShouldNot(HaveOccurred())
Ω(status).Should(Equal(123))
Eventually(stdout).Should(gbytes.Say("stdout data"))
Eventually(stderr).Should(gbytes.Say("stderr data"))
})
})
Describe("NetIn", func() {
It("sends a net in request", func() {
fakeConnection.NetInReturns(111, 222, nil)
hostPort, containerPort, err := container.NetIn(123, 456)
Ω(err).ShouldNot(HaveOccurred())
Ω(hostPort).Should(Equal(uint32(111)))
Ω(containerPort).Should(Equal(uint32(222)))
h, hp, cp := fakeConnection.NetInArgsForCall(0)
Ω(h).Should(Equal("some-handle"))
Ω(hp).Should(Equal(uint32(123)))
Ω(cp).Should(Equal(uint32(456)))
})
Context("when the request fails", func() {
disaster := errors.New("oh no!")
BeforeEach(func() {
fakeConnection.NetInReturns(0, 0, disaster)
示例4:
Expect(client.Destroy(container.Handle())).To(Succeed())
container, err = client.Create(garden.ContainerSpec{
Network: containerNetwork,
})
Expect(err).ToNot(HaveOccurred())
})
It("reuses IP addresses", func() {
newIpAddress := containerIP(container)
Expect(newIpAddress).To(Equal(contIP))
})
It("is accessible from the outside", func() {
hostPort, containerPort, err := container.NetIn(0, 4321)
Expect(err).ToNot(HaveOccurred())
Expect(listenInContainer(container, containerPort)).To(Succeed())
externalIP := externalIP(container)
// retry because listener process inside other container
// may not start immediately
Eventually(func() int {
session := sendRequest(externalIP, hostPort)
return session.Wait().ExitCode()
}).Should(Equal(0))
})
})