code: func (az *Cloud) ListVirtualMachinesWithRetry(resourceGroup string) ([]compute.VirtualMachine, error) {
  	allNodes := []compute.VirtualMachine{}
  	err := wait.ExponentialBackoff(az.requestBackoff(), func() (bool, error) {
  		var retryErr error
  		ctx, cancel := getContextWithCancel()
  		defer cancel()
  		allNodes, retryErr = az.VirtualMachinesClient.List(ctx, resourceGroup)
  		if retryErr != nil {
  			klog.Errorf("VirtualMachinesClient.List(%v) - backoff: failure, will retry,err=%v",
  				resourceGroup,
  				retryErr)
  			return false, retryErr
  		}
  		klog.V(2).Infof("VirtualMachinesClient.List(%v) - backoff: success", resourceGroup)
  		return true, nil
  	})
  	if err != nil {
  		return nil, err
  	}
  
  	return allNodes, err
  }
docs: // ListVirtualMachinesWithRetry invokes az.VirtualMachinesClient.List with exponential backoff retry