code: func (m *ManagerImpl) RegisterPlugin(pluginName string, endpoint string, versions []string) error {
  	klog.V(2).Infof("Registering Plugin %s at endpoint %s", pluginName, endpoint)
  
  	e, err := newEndpointImpl(endpoint, pluginName, m.callback)
  	if err != nil {
  		return fmt.Errorf("Failed to dial device plugin with socketPath %s: %v", endpoint, err)
  	}
  
  	options, err := e.client.GetDevicePluginOptions(context.Background(), &pluginapi.Empty{})
  	if err != nil {
  		return fmt.Errorf("Failed to get device plugin options: %v", err)
  	}
  
  	m.registerEndpoint(pluginName, options, e)
  	go m.runEndpoint(pluginName, e)
  
  	return nil
  }
docs: // RegisterPlugin starts the endpoint and registers it
  // TODO: Start the endpoint and wait for the First ListAndWatch call
  //       before registering the plugin