github.com/netdata/go.d.plugin@v0.58.1/modules/vsphere/discover.go (about)

     1  // SPDX-License-Identifier: GPL-3.0-or-later
     2  
     3  package vsphere
     4  
     5  func (vs *VSphere) goDiscovery() {
     6  	if vs.discoveryTask != nil {
     7  		vs.discoveryTask.stop()
     8  	}
     9  	vs.Infof("starting discovery process, will do discovery every %s", vs.DiscoveryInterval)
    10  
    11  	job := func() {
    12  		err := vs.discoverOnce()
    13  		if err != nil {
    14  			vs.Errorf("error on discovering : %v", err)
    15  		}
    16  	}
    17  	vs.discoveryTask = newTask(job, vs.DiscoveryInterval.Duration)
    18  }
    19  
    20  func (vs *VSphere) discoverOnce() error {
    21  	res, err := vs.Discover()
    22  	if err != nil {
    23  		return err
    24  	}
    25  
    26  	vs.collectionLock.Lock()
    27  	vs.resources = res
    28  	vs.collectionLock.Unlock()
    29  
    30  	return nil
    31  }