activatelayer.go 891 B

123456789101112131415161718192021222324252627282930313233
  1. package wclayer
  2. import (
  3. "github.com/Microsoft/hcsshim/internal/hcserror"
  4. "github.com/sirupsen/logrus"
  5. )
  6. // ActivateLayer will find the layer with the given id and mount it's filesystem.
  7. // For a read/write layer, the mounted filesystem will appear as a volume on the
  8. // host, while a read-only layer is generally expected to be a no-op.
  9. // An activated layer must later be deactivated via DeactivateLayer.
  10. func ActivateLayer(path string) (err error) {
  11. title := "hcsshim::ActivateLayer"
  12. fields := logrus.Fields{
  13. "path": path,
  14. }
  15. logrus.WithFields(fields).Debug(title)
  16. defer func() {
  17. if err != nil {
  18. fields[logrus.ErrorKey] = err
  19. logrus.WithFields(fields).Error(err)
  20. } else {
  21. logrus.WithFields(fields).Debug(title + " - succeeded")
  22. }
  23. }()
  24. err = activateLayer(&stdDriverInfo, path)
  25. if err != nil {
  26. return hcserror.New(err, title+" - failed", "")
  27. }
  28. return nil
  29. }