Check deletionTimestamp for "kn revision delete" (#860)

* Check deletionTimestamp for "kn revision delete"

Fixes: #815

* Update error message for revision delete

Co-authored-by: Navid Shaikh <nshaikh@redhat.com>
This commit is contained in:
Lv Jiawei 2020-06-01 19:02:03 +08:00 committed by GitHub
parent e1ad66a60d
commit bcf2ec3de8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 8 additions and 1 deletions

View File

@ -378,6 +378,13 @@ func getBaseRevision(cl KnServingClient, service *servingv1.Service) (*servingv1
// Delete a revision by name
func (cl *knServingClient) DeleteRevision(name string, timeout time.Duration) error {
revision, err := cl.client.Revisions(cl.namespace).Get(name, v1.GetOptions{})
if err != nil {
return clienterrors.GetError(err)
}
if revision.GetDeletionTimestamp() != nil {
return fmt.Errorf("can't delete revision '%s' because it has been already marked for deletion", name)
}
if timeout == 0 {
return cl.deleteRevision(name)
}
@ -387,7 +394,7 @@ func (cl *knServingClient) DeleteRevision(name string, timeout time.Duration) er
err, _ := waitForEvent.Wait(name, wait.Options{Timeout: &timeout}, wait.NoopMessageCallback())
waitC <- err
}()
err := cl.deleteRevision(name)
err = cl.deleteRevision(name)
if err != nil {
return clienterrors.GetError(err)
}