Merge pull request #2373 from arkodg/ungraceful-exit-config-from-net-clean
Clean up --config-only networks after --config-from networks have ungracefully exited
This commit is contained in:
commit
631ee43f1b
1 changed files with 10 additions and 9 deletions
|
@ -705,11 +705,17 @@ const overlayDSROptionString = "dsr"
|
|||
// NewNetwork creates a new network of the specified network type. The options
|
||||
// are network specific and modeled in a generic way.
|
||||
func (c *controller) NewNetwork(networkType, name string, id string, options ...NetworkOption) (Network, error) {
|
||||
var (
|
||||
cap *driverapi.Capability
|
||||
err error
|
||||
t *network
|
||||
)
|
||||
|
||||
if id != "" {
|
||||
c.networkLocker.Lock(id)
|
||||
defer c.networkLocker.Unlock(id)
|
||||
|
||||
if _, err := c.NetworkByID(id); err == nil {
|
||||
if _, err = c.NetworkByID(id); err == nil {
|
||||
return nil, NetworkNameError(id)
|
||||
}
|
||||
}
|
||||
|
@ -738,15 +744,10 @@ func (c *controller) NewNetwork(networkType, name string, id string, options ...
|
|||
}
|
||||
|
||||
network.processOptions(options...)
|
||||
if err := network.validateConfiguration(); err != nil {
|
||||
if err = network.validateConfiguration(); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var (
|
||||
cap *driverapi.Capability
|
||||
err error
|
||||
)
|
||||
|
||||
// Reset network types, force local scope and skip allocation and
|
||||
// plumbing for configuration networks. Reset of the config-only
|
||||
// network drivers is needed so that this special network is not
|
||||
|
@ -793,11 +794,11 @@ func (c *controller) NewNetwork(networkType, name string, id string, options ...
|
|||
// From this point on, we need the network specific configuration,
|
||||
// which may come from a configuration-only network
|
||||
if network.configFrom != "" {
|
||||
t, err := c.getConfigNetwork(network.configFrom)
|
||||
t, err = c.getConfigNetwork(network.configFrom)
|
||||
if err != nil {
|
||||
return nil, types.NotFoundErrorf("configuration network %q does not exist", network.configFrom)
|
||||
}
|
||||
if err := t.applyConfigurationTo(network); err != nil {
|
||||
if err = t.applyConfigurationTo(network); err != nil {
|
||||
return nil, types.InternalErrorf("Failed to apply configuration: %v", err)
|
||||
}
|
||||
defer func() {
|
||||
|
|
Loading…
Add table
Reference in a new issue