Skip to content

Commit 5cf0d3c

Browse files
sbhat14sbhat14
sbhat14
authored and
sbhat14
committed
fix: retry
Signed-off-by: sbhat14 <[email protected]>
1 parent a0c20e2 commit 5cf0d3c

File tree

2 files changed

+29
-11
lines changed

2 files changed

+29
-11
lines changed

pkg/kube/structured/structured.go

+19-11
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"net/http"
2121
"os"
2222
"strconv"
23+
"strings"
2324
"time"
2425

2526
log "github.com/sirupsen/logrus"
@@ -236,17 +237,24 @@ func PersistentVolExists(kubeClientset kubernetes.Interface, name, expectedPhase
236237
}
237238

238239
func PersistentVolClaimExists(kubeClientset kubernetes.Interface, name, expectedPhase string, namespace string) error {
239-
vol, err := util.RetryOnError(&util.DefaultRetry, util.IsRetriable, func() (interface{}, error) {
240-
return GetPersistentVolumeClaim(kubeClientset, name, namespace)
241-
})
242-
if err != nil {
243-
return err
244-
}
245-
phase := string(vol.(*corev1.PersistentVolumeClaim).Status.Phase)
246-
if phase != expectedPhase {
247-
return fmt.Errorf("persistentvolumeclaim had unexpected phase %v, expected phase %v", phase, expectedPhase)
248-
}
249-
return nil
240+
_, err := util.RetryOnError(
241+
&util.DefaultRetry,
242+
func(err error) bool {
243+
msg := fmt.Sprintf("persistentvolumeclaim had unexpected phase")
244+
return util.IsRetriable(err) || strings.Contains(err.Error(), msg)
245+
},
246+
func() (interface{}, error) {
247+
vol, err := GetPersistentVolumeClaim(kubeClientset, name, namespace)
248+
if err != nil {
249+
return nil, err
250+
}
251+
phase := string(vol.Status.Phase)
252+
if phase != expectedPhase {
253+
return nil, fmt.Errorf("persistentvolumeclaim had unexpected phase %v, expected phase %v", phase, expectedPhase)
254+
}
255+
return nil, nil
256+
})
257+
return err
250258
}
251259

252260
func ValidatePrometheusVolumeClaimTemplatesName(kubeClientset kubernetes.Interface, statefulsetName, namespace, volumeClaimTemplatesName string) error {

pkg/kube/structured/structured_test.go

+10
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,16 @@ func TestPersistentVolClaimExists(t *testing.T) {
505505
},
506506
wantErr: false,
507507
},
508+
{
509+
name: "pvc found with wrong phase",
510+
args: args{
511+
kubeClientset: fake.NewSimpleClientset(getResource(t, persistentVolumeClaimType, persistentvolumeClaimName)),
512+
name: persistentvolumeClaimName,
513+
namespace: "",
514+
expectedPhase: "Released",
515+
},
516+
wantErr: true,
517+
},
508518
{
509519
name: "pvc not found Test",
510520
args: args{

0 commit comments

Comments
 (0)