|
@@ -40,7 +40,6 @@ import (
|
|
|
"github.com/docker/docker/libcontainerd"
|
|
|
"github.com/docker/docker/migrate/v1"
|
|
|
"github.com/docker/docker/pkg/fileutils"
|
|
|
- "github.com/docker/docker/pkg/graphdb"
|
|
|
"github.com/docker/docker/pkg/idtools"
|
|
|
"github.com/docker/docker/pkg/plugingetter"
|
|
|
"github.com/docker/docker/pkg/progress"
|
|
@@ -158,7 +157,6 @@ func (daemon *Daemon) restore() error {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var migrateLegacyLinks bool
|
|
|
removeContainers := make(map[string]*container.Container)
|
|
|
restartContainers := make(map[*container.Container]chan struct{})
|
|
|
activeSandboxes := make(map[string]interface{})
|
|
@@ -190,6 +188,8 @@ func (daemon *Daemon) restore() error {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ var migrateLegacyLinks bool // Not relevant on Windows
|
|
|
var wg sync.WaitGroup
|
|
|
var mapLock sync.Mutex
|
|
|
for _, c := range containers {
|
|
@@ -265,24 +265,15 @@ func (daemon *Daemon) restore() error {
|
|
|
return fmt.Errorf("Error initializing network controller: %v", err)
|
|
|
}
|
|
|
|
|
|
- // migrate any legacy links from sqlite
|
|
|
- linkdbFile := filepath.Join(daemon.root, "linkgraph.db")
|
|
|
- var legacyLinkDB *graphdb.Database
|
|
|
+ // Perform migration of legacy sqlite links (no-op on Windows)
|
|
|
if migrateLegacyLinks {
|
|
|
- legacyLinkDB, err = graphdb.NewSqliteConn(linkdbFile)
|
|
|
- if err != nil {
|
|
|
- return fmt.Errorf("error connecting to legacy link graph DB %s, container links may be lost: %v", linkdbFile, err)
|
|
|
+ if err := daemon.sqliteMigration(containers); err != nil {
|
|
|
+ return err
|
|
|
}
|
|
|
- defer legacyLinkDB.Close()
|
|
|
}
|
|
|
|
|
|
// Now that all the containers are registered, register the links
|
|
|
for _, c := range containers {
|
|
|
- if migrateLegacyLinks {
|
|
|
- if err := daemon.migrateLegacySqliteLinks(legacyLinkDB, c); err != nil {
|
|
|
- return err
|
|
|
- }
|
|
|
- }
|
|
|
if err := daemon.registerLinks(c, c.HostConfig); err != nil {
|
|
|
logrus.Errorf("failed to register link for container %s: %v", c.ID, err)
|
|
|
}
|