code: func Init(cb ipamapi.Callback, l, g interface{}) error {
  
  	newPluginHandler := func(name string, client *plugins.Client) {
  		a := newAllocator(name, client)
  		if cps, err := a.(*allocator).getCapabilities(); err == nil {
  			if err := cb.RegisterIpamDriverWithCapabilities(name, a, cps); err != nil {
  				logrus.Errorf("error registering remote ipam driver %s due to %v", name, err)
  			}
  		} else {
  			logrus.Infof("remote ipam driver %s does not support capabilities", name)
  			logrus.Debug(err)
  			if err := cb.RegisterIpamDriver(name, a); err != nil {
  				logrus.Errorf("error registering remote ipam driver %s due to %v", name, err)
  			}
  		}
  	}
  
  	// Unit test code is unaware of a true PluginStore. So we fall back to v1 plugins.
  	handleFunc := plugins.Handle
  	if pg := cb.GetPluginGetter(); pg != nil {
  		handleFunc = pg.Handle
  		activePlugins := pg.GetAllManagedPluginsByCap(ipamapi.PluginEndpointType)
  		for _, ap := range activePlugins {
  			client, err := getPluginClient(ap)
  			if err != nil {
  				return err
  			}
  			newPluginHandler(ap.Name(), client)
  		}
  	}
  	handleFunc(ipamapi.PluginEndpointType, newPluginHandler)
  	return nil
  }
docs: // Init registers a remote ipam when its plugin is activated