Skip to Main Content
IBM Z Hardware and Operating Systems Ideas Portal


This is the public portal for all IBM Z Hardware and Operating System related offerings. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Under review
Workspace z/OS
Created by Guest
Created on Aug 26, 2024

Consistent gdkdel response across cloud providers when object not found

AWS returns HTTP 204 (No content) for an object delete when the object is not found. The 204 HTTP response is a successful HTTP response (200 series) and due to that, gdkdel returns its successful return code 0.


The gdkdel API documents the following return code:

900

GDK_OBJECT_NOT_FOUND

HTTP status 404 was returned indicating the object was not found.


There is not caveat to a difference of behavior in the documentation and tracing must be used (if the user doesn't already know) to understand AWS does not return a HTTP 404 in this situation.


CDA only returns the 900 documented when the cloud provider returns HTTP 404 for the request. Some cloud providers do that. CDA does not abstract the HTTP 204 from AWS into a common gdkdel return code so that applications can rely on a common behavior across cloud providers.

I believe CDA really has no way to distinguish between object deleted and object wasn't there in the first place.


My guess is AWS returns HTTP 204 so AWS can always return the same code and the request is idempotent. Also, this approach follows RESTful design principles that the ending resource state is as requested at the completion of the request (i.e. the object doesn't exist at the end of the delete either because the request removed it or because the object wasn't there in the first place).


A workaround is to gdklist first, then gdkdel, then gdklist again. If the first gdklist returns 900, then don't issue the gdkdel. The second gdklist would just be for positive verification the object was deleted. There are some timing windows here if the object name is used in multiple threads of execution, but those exist anyhow when multiple processes are deleting and creating the same object name in the same bucket.


The benefit to creating a common return code for gdkdel when the object does not exist is that CDA users can be generic with respect to the cloud provider without specific code when accessing AWS versus another cloud provider.

If this cannot be done for AWS then I would suggest additional documentation/explanation about the different behavior for this cloud provider.

Idea priority Low