Reconcile persistent state after driver config

Reconciling persistent state after configuring driver. If not
the networks will not be initialized properly based on certain
driver config settings like enabling IP tables etc.

Signed-off-by: Jana Radhakrishnan <mrjana@docker.com>
This commit is contained in:
Jana Radhakrishnan 2015-10-28 19:07:10 -07:00
parent f75ced4ab9
commit 71207b575e

View file

@ -338,16 +338,11 @@ func (c *networkConfiguration) conflictsWithNetworks(id string, others []*bridge
}
func (d *driver) configure(option map[string]interface{}) error {
var config *configuration
var err error
err = d.initStore(option)
if err != nil {
return err
}
d.Lock()
defer d.Unlock()
var (
config *configuration
err error
natChain, filterChain *iptables.ChainInfo
)
genericData, ok := option[netlabel.GenericData]
if !ok || genericData == nil {
@ -375,13 +370,23 @@ func (d *driver) configure(option map[string]interface{}) error {
}
if config.EnableIPTables {
d.natChain, d.filterChain, err = setupIPChains(config)
natChain, filterChain, err = setupIPChains(config)
if err != nil {
return err
}
}
d.Lock()
d.natChain = natChain
d.filterChain = filterChain
d.config = config
d.Unlock()
err = d.initStore(option)
if err != nil {
return err
}
return nil
}