code: func (p *Plugin) startResync() {
  	if len(p.regOrder) == 0 {
  		p.Log.Warnf("No registrations, skipping resync")
  		return
  	}
  
  	subs := strings.Join(p.regOrder, ", ")
  	p.Log.Infof("Resync starting for %d registrations (%v)", len(p.regOrder), subs)
  
  	resyncStart := time.Now()
  
  	for _, regName := range p.regOrder {
  		if reg, found := p.registrations[regName]; found {
  			t := time.Now()
  			p.startSingleResync(regName, reg)
  
  			took := time.Since(t).Round(time.Millisecond)
  			p.Log.Debugf("finished resync for %v took %v", regName, took)
  		}
  	}
  
  	p.Log.Infof("Resync done (took: %v)", time.Since(resyncStart).Round(time.Millisecond))
  
  	// TODO check if there ReportError (if not than report) if error occurred even during Resync
  }
docs: // Call callback on plugins to create/delete/modify objects.