code: func (az *Cloud) listPIPWithRetry(service *v1.Service, pipResourceGroup string) ([]network.PublicIPAddress, error) {
  	var allPIPs []network.PublicIPAddress
  
  	err := wait.ExponentialBackoff(az.requestBackoff(), func() (bool, error) {
  		var retryErr error
  		ctx, cancel := getContextWithCancel()
  		defer cancel()
  
  		allPIPs, retryErr = az.PublicIPAddressesClient.List(ctx, pipResourceGroup)
  		if retryErr != nil {
  			az.Event(service, v1.EventTypeWarning, "ListPublicIPs", retryErr.Error())
  			klog.Errorf("PublicIPAddressesClient.List(%v) - backoff: failure, will retry,err=%v",
  				pipResourceGroup,
  				retryErr)
  			return false, retryErr
  		}
  		klog.V(2).Infof("PublicIPAddressesClient.List(%v) - backoff: success", pipResourceGroup)
  		return true, nil
  	})
  	if err != nil {
  		return nil, err
  	}
  
  	return allPIPs, nil
  }
docs: // listPIPWithRetry list the PIP resources in the given resource group