Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why does deleteNamespacedServiceAccount return V1ServiceAccount while other resources delete methods return V1Status? #1400

Closed
liavyona opened this issue Nov 25, 2020 · 7 comments
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.

Comments

@liavyona
Copy link

liavyona commented Nov 25, 2020

I have a list of resources which I work generic with (using reflection). I have a list of future tasks to delete them all. All resources delete methods return V1Status while deleteNamespacedServiceAccount returns V1ServiceAccount why is that?

@liavyona
Copy link
Author

liavyona commented Nov 25, 2020

I tried to convert it myself by:

        if ("ServiceAccount".equals(kind)) {
            Call call = ((CoreV1Api) api).deleteNamespacedServiceAccountCall(name, namespace, null, null, null, null, null, null, null);
            Type returnType = (new TypeToken<V1Status>() {
            }).getType();
            ApiResponse<V1Status> response = ((CoreV1Api) api).getApiClient().execute(call, returnType);
            return (V1Status) response.getData();
        }

It returns successfully but the details and status attributes are null.

@liavyona
Copy link
Author

I found that this commit changed the return type of deleteNamespacedServiceAccount alongside other kubernetes resources which have been changed too (PersistVolume, Pod etc.). On the other hand, Service, Secret, ConfigMap and others remain the same. Why is that? What benefit do I have from getting the object I just deleted? V1Status can tell me whether the deletion completed successfully.
@brendandburns Why there is no aligned API to whole resources?

@brendandburns
Copy link
Contributor

All of this is generated from the Kubernetes OpenAPI specification here:

https://raw.githubusercontent.com/kubernetes/kubernetes/master/api/openapi-spec/swagger.json

The truth is that delete can either return a V1Status or the object itself (see #86 for more discussion) but this isn't well represented in the OpenAPI specification.

If we wanted to correct this, we need to update the OpenAPI specification. (and also update the client generator to handle multi-return), that's not a bad thing to do, but it's also not a super high priority.

Hope that helps.

@fejta-bot
Copy link

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale

@k8s-ci-robot k8s-ci-robot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Feb 23, 2021
@fejta-bot
Copy link

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten

@k8s-ci-robot k8s-ci-robot added lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed. and removed lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. labels Mar 25, 2021
@fejta-bot
Copy link

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-contributor-experience at kubernetes/community.
/close

@k8s-ci-robot
Copy link
Contributor

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-contributor-experience at kubernetes/community.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lifecycle/rotten Denotes an issue or PR that has aged beyond stale and will be auto-closed.
Projects
None yet
Development

No branches or pull requests

4 participants