本文整理匯總了Golang中code/cloudfoundry/org/garden.Container類的典型用法代碼示例。如果您正苦於以下問題:Golang Container類的具體用法?Golang Container怎麽用?Golang Container使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了Container類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: readFile
func readFile(container garden.Container, dstPath, fileName, user string) garden.Process {
filePath := filepath.Join(dstPath, fileName)
process, err := container.Run(garden.ProcessSpec{
Path: "cat",
Args: []string{filePath},
User: user,
}, garden.ProcessIO{})
Expect(err).ToNot(HaveOccurred())
return process
}
示例2: listenInContainer
func listenInContainer(container garden.Container, containerPort uint32) error {
_, err := container.Run(garden.ProcessSpec{
User: "alice",
Path: "sh",
Args: []string{"-c", fmt.Sprintf("echo %d | nc -l -p %d", containerPort, containerPort)},
}, garden.ProcessIO{
Stdout: GinkgoWriter,
Stderr: GinkgoWriter,
})
Expect(err).ToNot(HaveOccurred())
return err
}
示例3: runCommand
func runCommand(container garden.Container, path string, args []string) {
proc, err := container.Run(
garden.ProcessSpec{
Path: path,
Args: args,
},
ginkgoIO)
Expect(err).NotTo(HaveOccurred())
exitCode, err := proc.Wait()
Expect(err).NotTo(HaveOccurred())
Expect(exitCode).To(Equal(0))
}
示例4: streamin
func streamin(ctr garden.Container, archive string) {
for i := 0; i < 20; i++ {
By(fmt.Sprintf("preparing stream %d for handle %s", i, ctr.Handle()))
// Stream in a tar file to ctr
var tarStream io.Reader
pwd, err := os.Getwd()
Expect(err).ToNot(HaveOccurred())
tgzPath := path.Join(pwd, archive)
tgz, err := os.Open(tgzPath)
Expect(err).ToNot(HaveOccurred())
tarStream, err = gzip.NewReader(tgz)
Expect(err).ToNot(HaveOccurred())
By(fmt.Sprintf("starting stream %d for handle: %s", i, ctr.Handle()))
Expect(ctr.StreamIn(garden.StreamInSpec{
User: "root",
Path: fmt.Sprintf("/root/stream-file-%d", i),
TarStream: tarStream,
})).To(Succeed())
By(fmt.Sprintf("stream %d done for handle: %s", i, ctr.Handle()))
tgz.Close()
}
}
示例5: GraceTime
func (g *Gardener) GraceTime(container garden.Container) time.Duration {
property, ok := g.PropertyManager.Get(container.Handle(), GraceTimeKey)
if !ok {
return 0
}
var graceTime time.Duration
_, err := fmt.Sscanf(property, "%d", &graceTime)
if err != nil {
return 0
}
return graceTime
}
示例6: writeFile
func writeFile(container garden.Container, dstPath, user string) garden.Process {
// try to write a new file
filePath := filepath.Join(dstPath, "checkFileAccess-file")
process, err := container.Run(garden.ProcessSpec{
Path: "touch",
Args: []string{filePath},
User: user,
}, garden.ProcessIO{
Stderr: GinkgoWriter,
Stdout: GinkgoWriter,
})
Expect(err).ToNot(HaveOccurred())
return process
}
示例7: createUser
func createUser(container garden.Container, username string) {
if container == nil {
return
}
process, err := container.Run(garden.ProcessSpec{
User: "root",
Path: "sh",
Args: []string{"-c", fmt.Sprintf("id -u %s || adduser -D %s", username, username)},
}, garden.ProcessIO{
Stdout: GinkgoWriter,
Stderr: GinkgoWriter,
})
Expect(err).ToNot(HaveOccurred())
Expect(process.Wait()).To(Equal(0))
}
開發者ID:cloudfoundry,項目名稱:garden-integration-tests,代碼行數:16,代碼來源:garden_integration_tests_suite_test.go
示例8: createAndStream
func createAndStream(index int, b Benchmarker, archive string) {
var handle string
var ctr garden.Container
var err error
b.Time(fmt.Sprintf("stream-%d", index), func() {
creationTime := b.Time(fmt.Sprintf("create-%d", index), func() {
By("creating container " + strconv.Itoa(index))
ctr, err = gardenClient.Create(garden.ContainerSpec{
Limits: garden.Limits{
Disk: garden.DiskLimits{ByteHard: 2 * 1024 * 1024 * 1024},
},
Privileged: true,
})
Expect(err).ToNot(HaveOccurred())
handle = ctr.Handle()
By("done creating container " + strconv.Itoa(index))
})
now := time.Now()
emitMetric(map[string]interface{}{
"series": []map[string]interface{}{
{
"metric": "garden.container-creation-time",
"points": [][]int64{
{now.Unix(), int64(creationTime)},
},
"tags": []string{"deployment:" + os.Getenv("ENVIRONMENT") + "-garden"},
},
},
})
By("starting stream in to container " + handle)
streamin(ctr, archive)
By("succefully streamed in to container " + handle)
b.Time(fmt.Sprintf("delete-%d", index), func() {
By("destroying container " + handle)
Expect(gardenClient.Destroy(handle)).To(Succeed())
By("successfully destroyed container " + handle)
})
})
}
示例9: ethInterfaceName
func ethInterfaceName(container garden.Container) string {
buffer := gbytes.NewBuffer()
proc, err := container.Run(
garden.ProcessSpec{
Path: "sh",
Args: []string{"-c", "ifconfig | grep 'Ethernet' | cut -f 1 -d ' '"},
User: "root",
},
garden.ProcessIO{
Stdout: buffer,
Stderr: GinkgoWriter,
},
)
Expect(err).NotTo(HaveOccurred())
Expect(proc.Wait()).To(Equal(0))
contIfaceName := string(buffer.Contents()) // g3-abc-1
return contIfaceName[:len(contIfaceName)-2] + "0" // g3-abc-0
}
示例10: checkConnection
func checkConnection(container garden.Container, ip string, port int) error {
process, err := container.Run(garden.ProcessSpec{
User: "root",
Path: "sh",
Args: []string{"-c", fmt.Sprintf("echo hello | nc -w1 %s %d", ip, port)},
}, garden.ProcessIO{Stdout: GinkgoWriter, Stderr: GinkgoWriter})
if err != nil {
return err
}
exitCode, err := process.Wait()
if err != nil {
return err
}
if exitCode == 0 {
return nil
} else {
return fmt.Errorf("Request failed. Process exited with code %d", exitCode)
}
}
示例11:
client = startGarden(netPluginArgs...)
bundleDir := filepath.Join(client.DepotDir, container.Handle())
Expect(bundleDir).To(BeADirectory())
Expect(client.Destroy(container.Handle())).To(Succeed())
bundleDir = filepath.Join(client.DepotDir, container.Handle())
Expect(bundleDir).NotTo(BeADirectory())
})
})
Describe("networking resources", func() {
var (
container garden.Container
networkSpec string
contIfaceName string
networkBridgeName string
)
JustBeforeEach(func() {
var err error
networkSpec = fmt.Sprintf("177.100.%d.0/24", GinkgoParallelNode())
container, err = client.Create(garden.ContainerSpec{
Network: networkSpec,
})
Expect(err).NotTo(HaveOccurred())
contIfaceName = ethInterfaceName(container)
networkBridgeName, err = container.Property("kawasaki.bridge-interface")
Expect(err).NotTo(HaveOccurred())
示例12:
"io/ioutil"
"os"
"path/filepath"
"code.cloudfoundry.org/garden"
"code.cloudfoundry.org/guardian/gqt/runner"
. "code.cloudfoundry.org/guardian/matchers"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
archiver "github.com/pivotal-golang/archiver/extractor/test_helper"
)
var _ = Describe("Streaming", func() {
var (
client *runner.RunningGarden
container garden.Container
)
BeforeEach(func() {
var err error
client = startGarden()
container, err = client.Create(garden.ContainerSpec{})
Expect(err).NotTo(HaveOccurred())
})
AfterEach(func() {
Expect(client.DestroyAndStop()).To(Succeed())
})
示例13: containerIP
func containerIP(container garden.Container) string {
properties, err := container.Properties()
Expect(err).NotTo(HaveOccurred())
return properties[gardener.ContainerIPKey]
}
示例14:
"code.cloudfoundry.org/garden"
"code.cloudfoundry.org/guardian/gqt/runner"
. "code.cloudfoundry.org/guardian/matchers"
. "github.com/onsi/ginkgo"
. "github.com/onsi/ginkgo/extensions/table"
. "github.com/onsi/gomega"
"github.com/onsi/gomega/gbytes"
"github.com/onsi/gomega/gexec"
)
var _ = Describe("Creating a Container", func() {
var (
args []string
client *runner.RunningGarden
container garden.Container
initialSockets int
initialPipes int
)
BeforeEach(func() {
args = nil
})
JustBeforeEach(func() {
client = startGarden(args...)
initialSockets = numOpenSockets(client.Pid)
initialPipes = numPipes(client.Pid)
})
AfterEach(func() {
示例15:
containers, err := gardenClient.Containers(garden.Properties{"foo": bar})
Expect(err).ToNot(HaveOccurred())
Expect(containers).To(HaveLen(1))
Expect(containers[0].Handle()).To(Equal(container.Handle()))
containers, err = gardenClient.Containers(garden.Properties{"matthew": "mcconaughey"})
Expect(err).ToNot(HaveOccurred())
Expect(containers).To(BeEmpty())
})
})
})
Describe("multiple containers", func() {
var extraContainer garden.Container
BeforeEach(func() {
var err error
extraContainer, err = gardenClient.Create(garden.ContainerSpec{})
Expect(err).ToNot(HaveOccurred())
})
AfterEach(func() {
if extraContainer != nil {
Expect(gardenClient.Destroy(extraContainer.Handle())).To(Succeed())
}
})
It("should list all containers", func() {
containers, err := gardenClient.Containers(garden.Properties{})