nsinit.go 824 B

1234567891011121314151617181920212223242526272829
  1. package nsinit
  2. import (
  3. "github.com/dotcloud/docker/pkg/libcontainer"
  4. "log"
  5. )
  6. // NsInit is an interface with the public facing methods to provide high level
  7. // exec operations on a container
  8. type NsInit interface {
  9. Exec(container *libcontainer.Container, term Terminal, args []string) (int, error)
  10. ExecIn(container *libcontainer.Container, nspid int, args []string) (int, error)
  11. Init(container *libcontainer.Container, uncleanRootfs, console string, syncPipe *SyncPipe, args []string) error
  12. }
  13. type linuxNs struct {
  14. root string
  15. commandFactory CommandFactory
  16. stateWriter StateWriter
  17. logger *log.Logger
  18. }
  19. func NewNsInit(command CommandFactory, state StateWriter, logger *log.Logger) NsInit {
  20. return &linuxNs{
  21. commandFactory: command,
  22. stateWriter: state,
  23. logger: logger,
  24. }
  25. }