2018-10-04 23:22:01 +00:00
|
|
|
package allocrunner
|
2018-08-31 00:13:00 +00:00
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
|
|
|
log "github.com/hashicorp/go-hclog"
|
|
|
|
"github.com/hashicorp/nomad/client/allocdir"
|
|
|
|
)
|
|
|
|
|
|
|
|
// allocDirHook creates and destroys the root directory and shared directories
|
|
|
|
// for an allocation.
|
|
|
|
type allocDirHook struct {
|
|
|
|
allocDir *allocdir.AllocDir
|
|
|
|
logger log.Logger
|
|
|
|
}
|
|
|
|
|
|
|
|
func newAllocDirHook(logger log.Logger, allocDir *allocdir.AllocDir) *allocDirHook {
|
|
|
|
ad := &allocDirHook{
|
|
|
|
allocDir: allocDir,
|
|
|
|
}
|
|
|
|
ad.logger = logger.Named(ad.Name())
|
|
|
|
return ad
|
|
|
|
}
|
|
|
|
|
|
|
|
func (h *allocDirHook) Name() string {
|
|
|
|
return "alloc_dir"
|
|
|
|
}
|
|
|
|
|
|
|
|
func (h *allocDirHook) Prerun(context.Context) error {
|
|
|
|
return h.allocDir.Build()
|
|
|
|
}
|
|
|
|
|
|
|
|
func (h *allocDirHook) Destroy() error {
|
|
|
|
return h.allocDir.Destroy()
|
|
|
|
}
|