c763c4cb96
This test exercises upgrades between 0.8 and Nomad versions greater than 0.9. We have not supported 0.8.x in a very long time and in any case the test has been marked to skip because the downloader doesn't work.
56 lines
1.4 KiB
Go
56 lines
1.4 KiB
Go
package executor
|
|
|
|
import (
|
|
"net"
|
|
|
|
hclog "github.com/hashicorp/go-hclog"
|
|
plugin "github.com/hashicorp/go-plugin"
|
|
)
|
|
|
|
// ExecutorConfig is the config that Nomad passes to the executor
|
|
type ExecutorConfig struct {
|
|
|
|
// LogFile is the file to which Executor logs
|
|
LogFile string
|
|
|
|
// LogLevel is the level of the logs to putout
|
|
LogLevel string
|
|
|
|
// FSIsolation if set will use an executor implementation that support
|
|
// filesystem isolation
|
|
FSIsolation bool
|
|
}
|
|
|
|
func GetPluginMap(logger hclog.Logger, fsIsolation bool) map[string]plugin.Plugin {
|
|
return map[string]plugin.Plugin{
|
|
"executor": &ExecutorPlugin{
|
|
logger: logger,
|
|
fsIsolation: fsIsolation,
|
|
},
|
|
}
|
|
}
|
|
|
|
// ExecutorReattachConfig is the config that we serialize and de-serialize and
|
|
// store in disk
|
|
type PluginReattachConfig struct {
|
|
Pid int
|
|
AddrNet string
|
|
AddrName string
|
|
}
|
|
|
|
// PluginConfig returns a config from an ExecutorReattachConfig
|
|
func (c *PluginReattachConfig) PluginConfig() *plugin.ReattachConfig {
|
|
var addr net.Addr
|
|
switch c.AddrNet {
|
|
case "unix", "unixgram", "unixpacket":
|
|
addr, _ = net.ResolveUnixAddr(c.AddrNet, c.AddrName)
|
|
case "tcp", "tcp4", "tcp6":
|
|
addr, _ = net.ResolveTCPAddr(c.AddrNet, c.AddrName)
|
|
}
|
|
return &plugin.ReattachConfig{Pid: c.Pid, Addr: addr}
|
|
}
|
|
|
|
func NewPluginReattachConfig(c *plugin.ReattachConfig) *PluginReattachConfig {
|
|
return &PluginReattachConfig{Pid: c.Pid, AddrNet: c.Addr.Network(), AddrName: c.Addr.String()}
|
|
}
|