mirror of
https://github.com/kemko/nomad.git
synced 2026-01-08 03:15:42 +03:00
Added version to executor
This commit is contained in:
@@ -700,7 +700,8 @@ func (d *DockerDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, er
|
||||
return nil, err
|
||||
}
|
||||
|
||||
d.logger.Printf("[DEBUG] driver.docker: version of executor: %v", exec.Version())
|
||||
ver, _ := exec.Version()
|
||||
d.logger.Printf("[DEBUG] driver.docker: version of executor: %v", ver.Version)
|
||||
|
||||
// Return a driver handle
|
||||
h := &DockerHandle{
|
||||
|
||||
@@ -187,7 +187,8 @@ func (d *ExecDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, erro
|
||||
return nil, fmt.Errorf("error connecting to plugin: %v", merrs.ErrorOrNil())
|
||||
}
|
||||
|
||||
d.logger.Printf("[DEBUG] driver.exec : version of executor: %v", exec.Version())
|
||||
ver, _ := exec.Version()
|
||||
d.logger.Printf("[DEBUG] driver.exec : version of executor: %v", ver.Version)
|
||||
// Return a driver handle
|
||||
h := &execHandle{
|
||||
pluginClient: client,
|
||||
|
||||
@@ -37,7 +37,7 @@ type Executor interface {
|
||||
UpdateTask(task *structs.Task) error
|
||||
SyncServices(ctx *ConsulContext) error
|
||||
DeregisterServices() error
|
||||
Version() string
|
||||
Version() (*ExecutorVersion, error)
|
||||
}
|
||||
|
||||
// ConsulContext holds context to configure the consul client and run checks
|
||||
@@ -128,6 +128,15 @@ type SyslogServerState struct {
|
||||
Addr string
|
||||
}
|
||||
|
||||
// ExecutorVersion is the version of the executor
|
||||
type ExecutorVersion struct {
|
||||
Version string
|
||||
}
|
||||
|
||||
func (v *ExecutorVersion) GoString() string {
|
||||
return v.Version
|
||||
}
|
||||
|
||||
// UniversalExecutor is an implementation of the Executor which launches and
|
||||
// supervises processes. In addition to process supervision it provides resource
|
||||
// and file system isolation
|
||||
@@ -164,8 +173,8 @@ func NewExecutor(logger *log.Logger) Executor {
|
||||
}
|
||||
|
||||
// Version returns the api version of the executor
|
||||
func (e *UniversalExecutor) Version() string {
|
||||
return "1"
|
||||
func (e *UniversalExecutor) Version() (*ExecutorVersion, error) {
|
||||
return &ExecutorVersion{Version: "1.0.0"}, nil
|
||||
}
|
||||
|
||||
// LaunchCmd launches a process and returns it's state. It also configures an
|
||||
|
||||
@@ -82,17 +82,15 @@ func (e *ExecutorRPC) DeregisterServices() error {
|
||||
return e.client.Call("Plugin.DeregisterServices", new(interface{}), new(interface{}))
|
||||
}
|
||||
|
||||
func (e *ExecutorRPC) Version() string {
|
||||
var version string
|
||||
func (e *ExecutorRPC) Version() (*executor.ExecutorVersion, error) {
|
||||
var version executor.ExecutorVersion
|
||||
err := e.client.Call("Plugin.Version", new(interface{}), &version)
|
||||
if err != nil {
|
||||
e.logger.Printf("[ERR] executor: error calling Executor.Driver: %v", err)
|
||||
}
|
||||
return version
|
||||
return &version, err
|
||||
}
|
||||
|
||||
type ExecutorRPCServer struct {
|
||||
Impl executor.Executor
|
||||
Impl executor.Executor
|
||||
logger *log.Logger
|
||||
}
|
||||
|
||||
func (e *ExecutorRPCServer) LaunchCmd(args LaunchCmdArgs, ps *executor.ProcessState) error {
|
||||
@@ -143,9 +141,12 @@ func (e *ExecutorRPCServer) DeregisterServices(args interface{}, resp *interface
|
||||
return e.Impl.DeregisterServices()
|
||||
}
|
||||
|
||||
func (e *ExecutorRPCServer) Version(args interface{}, version *string) error {
|
||||
*version = e.Impl.Version()
|
||||
return nil
|
||||
func (e *ExecutorRPCServer) Version(args interface{}, version *executor.ExecutorVersion) error {
|
||||
ver, err := e.Impl.Version()
|
||||
if ver != nil {
|
||||
*version = *ver
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
type ExecutorPlugin struct {
|
||||
@@ -155,7 +156,7 @@ type ExecutorPlugin struct {
|
||||
|
||||
func (p *ExecutorPlugin) Server(*plugin.MuxBroker) (interface{}, error) {
|
||||
if p.Impl == nil {
|
||||
p.Impl = &ExecutorRPCServer{Impl: executor.NewExecutor(p.logger)}
|
||||
p.Impl = &ExecutorRPCServer{Impl: executor.NewExecutor(p.logger), logger: p.logger}
|
||||
}
|
||||
return p.Impl, nil
|
||||
}
|
||||
|
||||
@@ -254,7 +254,8 @@ func (d *JavaDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, erro
|
||||
return nil, fmt.Errorf("error connecting to plugin: %v", merrs.ErrorOrNil())
|
||||
}
|
||||
|
||||
d.logger.Printf("[DEBUG] driver.java: version of executor: %v", exec.Version())
|
||||
ver, _ := exec.Version()
|
||||
d.logger.Printf("[DEBUG] driver.java: version of executor: %v", ver.Version)
|
||||
|
||||
// Return a driver handle
|
||||
h := &javaHandle{
|
||||
|
||||
@@ -258,7 +258,8 @@ func (d *QemuDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, erro
|
||||
return nil, fmt.Errorf("error connecting to plugin: %v", err)
|
||||
}
|
||||
|
||||
d.logger.Printf("[DEBUG] driver.qemu: version of executor: %v", exec.Version())
|
||||
ver, _ := exec.Version()
|
||||
d.logger.Printf("[DEBUG] driver.qemu: version of executor: %v", ver.Version)
|
||||
// Return a driver handle
|
||||
h := &qemuHandle{
|
||||
pluginClient: pluginClient,
|
||||
|
||||
@@ -167,7 +167,8 @@ func (d *RawExecDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, e
|
||||
return nil, fmt.Errorf("error connecting to plugin: %v", err)
|
||||
}
|
||||
|
||||
d.logger.Printf("[DEBUG] driver.raw_exec: version of executor: %v", exec.Version())
|
||||
ver, _ := exec.Version()
|
||||
d.logger.Printf("[DEBUG] driver.raw_exec: version of executor: %v", ver.Version)
|
||||
|
||||
// Return a driver handle
|
||||
h := &rawExecHandle{
|
||||
|
||||
@@ -295,7 +295,8 @@ func (d *RktDriver) Open(ctx *ExecContext, handleID string) (DriverHandle, error
|
||||
return nil, fmt.Errorf("error connecting to plugin: %v", err)
|
||||
}
|
||||
|
||||
d.logger.Printf("[DEBUG] driver.rkt: version of executor: %v", exec.Version())
|
||||
ver, _ := exec.Version()
|
||||
d.logger.Printf("[DEBUG] driver.rkt: version of executor: %v", ver.Version)
|
||||
// Return a driver handle
|
||||
h := &rktHandle{
|
||||
pluginClient: pluginClient,
|
||||
|
||||
Reference in New Issue
Block a user