summaryrefslogtreecommitdiffhomepage
path: root/runsc/cmd/boot.go
diff options
context:
space:
mode:
authorFabricio Voznika <fvoznika@google.com>2018-08-31 11:29:36 -0700
committerShentubot <shentubot@google.com>2018-08-31 11:30:47 -0700
commit7e18f158b2ea87b7f06f8e0b91e10558b4f52722 (patch)
treef73958dd5cc7525d5717e878975791fde08e8899 /runsc/cmd/boot.go
parentbe9f454eb6e456fb1acf084612f363aa959ef9d9 (diff)
Automated rollback of changelist 210995199
PiperOrigin-RevId: 211116429 Change-Id: I446d149c822177dc9fc3c64ce5e455f7f029aa82
Diffstat (limited to 'runsc/cmd/boot.go')
-rw-r--r--runsc/cmd/boot.go15
1 files changed, 5 insertions, 10 deletions
diff --git a/runsc/cmd/boot.go b/runsc/cmd/boot.go
index 4bd6fa12a..4e08dafc8 100644
--- a/runsc/cmd/boot.go
+++ b/runsc/cmd/boot.go
@@ -32,12 +32,9 @@ import (
// Boot implements subcommands.Command for the "boot" command which starts a
// new sandbox. It should not be called directly.
type Boot struct {
- // bundleDir is the directory containing the OCI spec.
+ // bundleDir is the path to the bundle directory.
bundleDir string
- // specFD is the file descriptor that the spec will be read from.
- specFD int
-
// controllerFD is the file descriptor of a stream socket for the
// control server that is donated to this process.
controllerFD int
@@ -71,7 +68,7 @@ func (*Boot) Usage() string {
// SetFlags implements subcommands.Command.SetFlags.
func (b *Boot) SetFlags(f *flag.FlagSet) {
- f.IntVar(&b.specFD, "spec-fd", -1, "required fd with the container spec")
+ f.StringVar(&b.bundleDir, "bundle", "", "required path to the root of the bundle directory")
f.IntVar(&b.controllerFD, "controller-fd", -1, "required FD of a stream socket for the control server that must be donated to this process")
f.Var(&b.ioFDs, "io-fds", "list of FDs to connect 9P clients. They must follow this order: root first, then mounts as defined in the spec")
f.BoolVar(&b.console, "console", false, "set to true if the sandbox should allow terminal ioctl(2) syscalls")
@@ -81,7 +78,7 @@ func (b *Boot) SetFlags(f *flag.FlagSet) {
// Execute implements subcommands.Command.Execute. It starts a sandbox in a
// waiting state.
func (b *Boot) Execute(_ context.Context, f *flag.FlagSet, args ...interface{}) subcommands.ExitStatus {
- if b.specFD == -1 || b.controllerFD == -1 || f.NArg() != 0 {
+ if b.bundleDir == "" || b.controllerFD == -1 || f.NArg() != 0 {
f.Usage()
return subcommands.ExitUsageError
}
@@ -89,10 +86,8 @@ func (b *Boot) Execute(_ context.Context, f *flag.FlagSet, args ...interface{})
// Ensure that if there is a panic, all goroutine stacks are printed.
debug.SetTraceback("all")
- // Get the spec from the specFD.
- specFile := os.NewFile(uintptr(b.specFD), "spec file")
- defer specFile.Close()
- spec, err := specutils.ReadSpecFromFile(specFile)
+ // Get the spec from the bundleDir.
+ spec, err := specutils.ReadSpec(b.bundleDir)
if err != nil {
Fatalf("error reading spec: %v", err)
}