summaryrefslogtreecommitdiff
path: root/pkg/libcontainer/nsinit/nsinit.go
blob: f09a130aa25f9dff0b3cca4010bc11d32984597d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package nsinit

import (
	"github.com/dotcloud/docker/pkg/libcontainer"
)

// NsInit is an interface with the public facing methods to provide high level
// exec operations on a container
type NsInit interface {
	Exec(container *libcontainer.Container, term Terminal, args []string) (int, error)
	ExecIn(container *libcontainer.Container, nspid int, args []string) (int, error)
	Init(container *libcontainer.Container, uncleanRootfs, console string, syncPipe *SyncPipe, args []string) error
}

type linuxNs struct {
	root           string
	commandFactory CommandFactory
	stateWriter    StateWriter
}

func NewNsInit(command CommandFactory, state StateWriter) NsInit {
	return &linuxNs{
		commandFactory: command,
		stateWriter:    state,
	}
}