Added version to executor

This commit is contained in:
Diptanu Choudhury
2016-03-29 22:05:02 -07:00
parent 323975d500
commit 1471f747f3
8 changed files with 36 additions and 20 deletions

View File

@@ -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{

View File

@@ -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,

View File

@@ -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

View File

@@ -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
}

View File

@@ -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{

View File

@@ -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,

View File

@@ -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{

View File

@@ -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,