Only do set-up on bridge/datapath devices once at creation time

This is a change to the previous behaviour, but makes the code easier
to read and seems more sensible.
This commit is contained in:
Bryan Boreham committed 2017-04-24 16:48:19 +00:00
1 parent a731d47d97
commit 4f7d476907
1 file changed
+14 -15
+14 -15
View File
@@ -228,25 +228,24 @@ func (config *BridgeConfig) configuredBridgeType() Bridge {
func EnsureBridge(procPath string, config *BridgeConfig) (Bridge, error) {
bridgeType, err := ExistingBridgeType(config.WeaveBridgeName, config.DatapathName)
if err != nil {
return nil, err
if bridgeType != nil || err != nil {
return bridgeType, err
}
if bridgeType == nil {
bridgeType = config.configuredBridgeType()
for {
if err := bridgeType.init(config); err != nil {
if err == errBridgeFallback {
bridgeType = bridgeImpl{}
continue
}
return nil, err
bridgeType = config.configuredBridgeType()
for {
if err := bridgeType.init(config); err != nil {
if err == errBridgeFallback {
bridgeType = bridgeImpl{}
continue
}
break
}
if err := configureIPTables(config); err != nil {
return bridgeType, errors.Wrap(err, "configuring iptables")
return nil, err
}
break
}
if err := configureIPTables(config); err != nil {
return bridgeType, errors.Wrap(err, "configuring iptables")
}
if config.AWSVPC {