@@ -291,12 +291,17 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
291
291
292
292
var versionedDeleteOptions runtime.Object
293
293
var versionedDeleterObject interface {}
294
+ deleteReturnsDeletedObject := false
294
295
if isGracefulDeleter {
295
296
versionedDeleteOptions , err = a .group .Creater .New (optionsExternalVersion .WithKind ("DeleteOptions" ))
296
297
if err != nil {
297
298
return nil , err
298
299
}
299
300
versionedDeleterObject = indirectArbitraryPointer (versionedDeleteOptions )
301
+
302
+ if mayReturnFullObjectDeleter , ok := storage .(rest.MayReturnFullObjectDeleter ); ok {
303
+ deleteReturnsDeletedObject = mayReturnFullObjectDeleter .DeleteReturnsDeletedObject ()
304
+ }
300
305
}
301
306
302
307
versionedStatusPtr , err := a .group .Creater .New (optionsExternalVersion .WithKind ("Status" ))
@@ -769,15 +774,19 @@ func (a *APIInstaller) registerResourceHandlers(path string, storage rest.Storag
769
774
if isSubresource {
770
775
doc = "delete " + subresource + " of" + article + kind
771
776
}
777
+ deleteReturnType := versionedStatus
778
+ if deleteReturnsDeletedObject {
779
+ deleteReturnType = producedObject
780
+ }
772
781
handler := metrics .InstrumentRouteFunc (action .Verb , group , version , resource , subresource , requestScope , metrics .APIServerComponent , restfulDeleteResource (gracefulDeleter , isGracefulDeleter , reqScope , admit ))
773
782
route := ws .DELETE (action .Path ).To (handler ).
774
783
Doc (doc ).
775
784
Param (ws .QueryParameter ("pretty" , "If 'true', then the output is pretty printed." )).
776
785
Operation ("delete" + namespaced + kind + strings .Title (subresource )+ operationSuffix ).
777
786
Produces (append (storageMeta .ProducesMIMETypes (action .Verb ), mediaTypes ... )... ).
778
- Writes (versionedStatus ).
779
- Returns (http .StatusOK , "OK" , versionedStatus ).
780
- Returns (http .StatusAccepted , "Accepted" , versionedStatus )
787
+ Writes (deleteReturnType ).
788
+ Returns (http .StatusOK , "OK" , deleteReturnType ).
789
+ Returns (http .StatusAccepted , "Accepted" , deleteReturnType )
781
790
if isGracefulDeleter {
782
791
route .Reads (versionedDeleterObject )
783
792
route .ParameterNamed ("body" ).Required (false )
0 commit comments