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 }