@@ -185,7 +185,7 @@ func (s *store) Create(ctx context.Context, key string, obj, out runtime.Object,
185
185
func (s * store ) Delete (ctx context.Context , key string , out runtime.Object , preconditions * storage.Preconditions , validateDeletion storage.ValidateObjectFunc ) error {
186
186
v , err := conversion .EnforcePtr (out )
187
187
if err != nil {
188
- panic ("unable to convert output object to pointer" )
188
+ return fmt . Errorf ("unable to convert output object to pointer: %v" , err )
189
189
}
190
190
key = path .Join (s .pathPrefix , key )
191
191
return s .conditionalDelete (ctx , key , out , v , preconditions , validateDeletion )
@@ -241,7 +241,7 @@ func (s *store) GuaranteedUpdate(
241
241
242
242
v , err := conversion .EnforcePtr (out )
243
243
if err != nil {
244
- panic ("unable to convert output object to pointer" )
244
+ return fmt . Errorf ("unable to convert output object to pointer: %v" , err )
245
245
}
246
246
key = path .Join (s .pathPrefix , key )
247
247
@@ -371,7 +371,7 @@ func (s *store) GetToList(ctx context.Context, key string, resourceVersion strin
371
371
}
372
372
v , err := conversion .EnforcePtr (listPtr )
373
373
if err != nil || v .Kind () != reflect .Slice {
374
- panic ("need ptr to slice" )
374
+ return fmt . Errorf ("need ptr to slice: %v" , err )
375
375
}
376
376
377
377
key = path .Join (s .pathPrefix , key )
@@ -476,7 +476,7 @@ func (s *store) List(ctx context.Context, key, resourceVersion string, pred stor
476
476
}
477
477
v , err := conversion .EnforcePtr (listPtr )
478
478
if err != nil || v .Kind () != reflect .Slice {
479
- panic ("need ptr to slice" )
479
+ return fmt . Errorf ("need ptr to slice: %v" , err )
480
480
}
481
481
482
482
if s .pathPrefix != "" {
@@ -742,7 +742,9 @@ func (s *store) getStateFromObject(obj runtime.Object) (*objState, error) {
742
742
if err != nil {
743
743
return nil , err
744
744
}
745
- s .versioner .UpdateObject (state .obj , uint64 (rv ))
745
+ if err := s .versioner .UpdateObject (state .obj , uint64 (rv )); err != nil {
746
+ klog .Errorf ("failed to update object version: %v" , err )
747
+ }
746
748
return state , nil
747
749
}
748
750
@@ -779,14 +781,16 @@ func (s *store) ttlOpts(ctx context.Context, ttl int64) ([]clientv3.OpOption, er
779
781
// On success, objPtr would be set to the object.
780
782
func decode (codec runtime.Codec , versioner storage.Versioner , value []byte , objPtr runtime.Object , rev int64 ) error {
781
783
if _ , err := conversion .EnforcePtr (objPtr ); err != nil {
782
- panic ("unable to convert output object to pointer" )
784
+ return fmt . Errorf ("unable to convert output object to pointer: %v" , err )
783
785
}
784
786
_ , _ , err := codec .Decode (value , nil , objPtr )
785
787
if err != nil {
786
788
return err
787
789
}
788
790
// being unable to set the version does not prevent the object from being extracted
789
- versioner .UpdateObject (objPtr , uint64 (rev ))
791
+ if err := versioner .UpdateObject (objPtr , uint64 (rev )); err != nil {
792
+ klog .Errorf ("failed to update object version: %v" , err )
793
+ }
790
794
return nil
791
795
}
792
796
@@ -797,7 +801,9 @@ func appendListItem(v reflect.Value, data []byte, rev uint64, pred storage.Selec
797
801
return err
798
802
}
799
803
// being unable to set the version does not prevent the object from being extracted
800
- versioner .UpdateObject (obj , rev )
804
+ if err := versioner .UpdateObject (obj , rev ); err != nil {
805
+ klog .Errorf ("failed to update object version: %v" , err )
806
+ }
801
807
if matched , err := pred .Matches (obj ); err == nil && matched {
802
808
v .Set (reflect .Append (v , reflect .ValueOf (obj ).Elem ()))
803
809
}
0 commit comments