mirror of
https://github.com/kemko/nomad.git
synced 2026-01-06 18:35:44 +03:00
drivers: add upgrade path for rawexec, java, rkt and qemu
This commit is contained in:
@@ -2,6 +2,7 @@ package java
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
"os/exec"
|
||||
@@ -242,6 +243,21 @@ func (d *Driver) RecoverTask(handle *drivers.TaskHandle) error {
|
||||
return fmt.Errorf("handle cannot be nil")
|
||||
}
|
||||
|
||||
// pre 0.9 upgrade path check
|
||||
if handle.Version == 0 {
|
||||
var reattach shared.ReattachConfig
|
||||
d.logger.Debug("parsing pre09 driver state", "state", string(handle.DriverState))
|
||||
if err := json.Unmarshal(handle.DriverState, &reattach); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
reattachConfig, err := shared.ReattachConfigToGoPlugin(&reattach)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return d.recoverPre0_9Task(handle.Config, reattachConfig)
|
||||
}
|
||||
|
||||
// If already attached to handle there's nothing to recover.
|
||||
if _, ok := d.tasks.Get(handle.Config.ID); ok {
|
||||
d.logger.Debug("nothing to recover; task already exists",
|
||||
|
||||
Reference in New Issue
Block a user