36 lines
713 B
Go
36 lines
713 B
Go
|
package allocrunnerv2
|
||
|
|
||
|
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()
|
||
|
}
|