drivers: add upgrade path for rawexec, java, rkt and qemu

This commit is contained in:
Nick Ethier
2019-01-16 11:19:25 -05:00
parent 7c440aa437
commit 1d50ced70a
8 changed files with 207 additions and 0 deletions

View File

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