// New returns a new NetworkAllocator handle func New(pg plugingetter.PluginGetter) (*NetworkAllocator, error) { na := &NetworkAllocator{ networks: make(map[string]*network), services: make(map[string]struct{}), tasks: make(map[string]struct{}), nodes: make(map[string]struct{}), } // There are no driver configurations and notification // functions as of now. reg, err := drvregistry.New(nil, nil, nil, nil, pg) if err != nil { return nil, err } if err := initializeDrivers(reg); err != nil { return nil, err } if err = initIPAMDrivers(reg); err != nil { return nil, err } pa, err := newPortAllocator() if err != nil { return nil, err } na.portAllocator = pa na.drvRegistry = reg return na, nil }
// New creates a new instance of network controller. func New(cfgOptions ...config.Option) (NetworkController, error) { c := &controller{ id: stringid.GenerateRandomID(), cfg: config.ParseConfigOptions(cfgOptions...), sandboxes: sandboxTable{}, svcRecords: make(map[string]svcInfo), serviceBindings: make(map[serviceKey]*service), agentInitDone: make(chan struct{}), } if err := c.initStores(); err != nil { return nil, err } drvRegistry, err := drvregistry.New(c.getStore(datastore.LocalScope), c.getStore(datastore.GlobalScope), c.RegisterDriver, nil) if err != nil { return nil, err } for _, i := range getInitializers() { var dcfg map[string]interface{} // External plugins don't need config passed through daemon. They can // bootstrap themselves if i.ntype != "remote" { dcfg = c.makeDriverConfig(i.ntype) } if err := drvRegistry.AddDriver(i.ntype, i.fn, dcfg); err != nil { return nil, err } } c.drvRegistry = drvRegistry if c.cfg != nil && c.cfg.Cluster.Watcher != nil { if err := c.initDiscovery(c.cfg.Cluster.Watcher); err != nil { // Failing to initialize discovery is a bad situation to be in. // But it cannot fail creating the Controller log.Errorf("Failed to Initialize Discovery : %v", err) } } c.WalkNetworks(populateSpecial) // Reserve pools first before doing cleanup. Otherwise the // cleanups of endpoint/network and sandbox below will // generate many unnecessary warnings c.reservePools() // Cleanup resources c.sandboxCleanup(c.cfg.ActiveSandboxes) c.cleanupLocalEndpoints() c.networkCleanup() if err := c.startExternalKeyListener(); err != nil { return nil, err } return c, nil }
// New returns a new NetworkAllocator handle func New() (*NetworkAllocator, error) { na := &NetworkAllocator{ networks: make(map[string]*network), services: make(map[string]struct{}), } // There are no driver configurations and notification // functions as of now. reg, err := drvregistry.New(nil, nil, nil, nil) if err != nil { return nil, err } // Add the manager component of overlay driver to the registry. if err := reg.AddDriver(defaultDriver, defaultDriverInitFunc, nil); err != nil { return nil, err } pa, err := newPortAllocator() if err != nil { return nil, err } na.portAllocator = pa na.drvRegistry = reg return na, nil }
// New creates a new instance of network controller. func New(cfgOptions ...config.Option) (NetworkController, error) { c := &controller{ id: stringid.GenerateRandomID(), cfg: config.ParseConfigOptions(cfgOptions...), sandboxes: sandboxTable{}, svcRecords: make(map[string]svcInfo), serviceBindings: make(map[string]*service), } if err := c.agentInit(c.cfg.Daemon.Bind); err != nil { return nil, err } if err := c.agentJoin(c.cfg.Daemon.Neighbors); err != nil { return nil, err } if err := c.initStores(); err != nil { return nil, err } drvRegistry, err := drvregistry.New(c.getStore(datastore.LocalScope), c.getStore(datastore.GlobalScope), c.RegisterDriver, nil) if err != nil { return nil, err } for _, i := range getInitializers() { var dcfg map[string]interface{} // External plugins don't need config passed through daemon. They can // bootstrap themselves if i.ntype != "remote" { dcfg = c.makeDriverConfig(i.ntype) } if err := drvRegistry.AddDriver(i.ntype, i.fn, dcfg); err != nil { return nil, err } } c.drvRegistry = drvRegistry if c.cfg != nil && c.cfg.Cluster.Watcher != nil { if err := c.initDiscovery(c.cfg.Cluster.Watcher); err != nil { // Failing to initialize discovery is a bad situation to be in. // But it cannot fail creating the Controller log.Errorf("Failed to Initialize Discovery : %v", err) } } c.sandboxCleanup() c.cleanupLocalEndpoints() c.networkCleanup() if err := c.startExternalKeyListener(); err != nil { return nil, err } return c, nil }
// New returns a new NetworkAllocator handle func New() (*NetworkAllocator, error) { na := &NetworkAllocator{ networks: make(map[string]*network), services: make(map[string]struct{}), tasks: make(map[string]struct{}), nodes: make(map[string]struct{}), } // There are no driver configurations and notification // functions as of now. reg, err := drvregistry.New(nil, nil, nil, nil) if err != nil { return nil, err } // Add the manager component of overlay driver to the registry. if err := reg.AddDriver(DefaultDriver, defaultDriverInitFunc, nil); err != nil { return nil, err } for _, fn := range [](func(ipamapi.Callback, interface{}, interface{}) error){ builtinIpam.Init, nullIpam.Init, } { if err := fn(reg, nil, nil); err != nil { return nil, err } } pa, err := newPortAllocator() if err != nil { return nil, err } na.portAllocator = pa na.drvRegistry = reg return na, nil }