mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Added support for persisting Windows network driver specific options over reboot or service restart
Signed-off-by: Cheng-mean Liu <soccerl@microsoft.com>
This commit is contained in:
parent
edc204b1ff
commit
cef1578ac4
1 changed files with 13 additions and 1 deletions
|
@ -350,6 +350,9 @@ func (daemon *Daemon) initNetworkController(config *config.Config, activeSandbox
|
||||||
}
|
}
|
||||||
|
|
||||||
controller.WalkNetworks(s)
|
controller.WalkNetworks(s)
|
||||||
|
|
||||||
|
drvOptions := make(map[string]string)
|
||||||
|
|
||||||
if n != nil {
|
if n != nil {
|
||||||
// global networks should not be deleted by local HNS
|
// global networks should not be deleted by local HNS
|
||||||
if n.Info().Scope() == datastore.GlobalScope {
|
if n.Info().Scope() == datastore.GlobalScope {
|
||||||
|
@ -358,14 +361,23 @@ func (daemon *Daemon) initNetworkController(config *config.Config, activeSandbox
|
||||||
v.Name = n.Name()
|
v.Name = n.Name()
|
||||||
// This will not cause network delete from HNS as the network
|
// This will not cause network delete from HNS as the network
|
||||||
// is not yet populated in the libnetwork windows driver
|
// is not yet populated in the libnetwork windows driver
|
||||||
|
|
||||||
|
// restore option if it existed before
|
||||||
|
drvOptions = n.Info().DriverOptions()
|
||||||
n.Delete()
|
n.Delete()
|
||||||
}
|
}
|
||||||
|
|
||||||
netOption := map[string]string{
|
netOption := map[string]string{
|
||||||
winlibnetwork.NetworkName: v.Name,
|
winlibnetwork.NetworkName: v.Name,
|
||||||
winlibnetwork.HNSID: v.Id,
|
winlibnetwork.HNSID: v.Id,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// add persisted driver options
|
||||||
|
for k, v := range drvOptions {
|
||||||
|
if k != winlibnetwork.NetworkName && k != winlibnetwork.HNSID {
|
||||||
|
netOption[k] = v
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
v4Conf := []*libnetwork.IpamConf{}
|
v4Conf := []*libnetwork.IpamConf{}
|
||||||
for _, subnet := range v.Subnets {
|
for _, subnet := range v.Subnets {
|
||||||
ipamV4Conf := libnetwork.IpamConf{}
|
ipamV4Conf := libnetwork.IpamConf{}
|
||||||
|
|
Loading…
Add table
Reference in a new issue