diff --git a/client/qiskit_serverless/core/clients/serverless_client.py b/client/qiskit_serverless/core/clients/serverless_client.py index 17b5907be..0456008be 100644 --- a/client/qiskit_serverless/core/clients/serverless_client.py +++ b/client/qiskit_serverless/core/clients/serverless_client.py @@ -429,9 +429,15 @@ def provider_file_download( file, download_location, function, target_name ) - def file_delete(self, file: str, provider: Optional[str] = None): + def file_delete( + self, file: str, function: QiskitFunction, provider: Optional[str] = None + ): + """Deletes file uploaded or produced by the programs,""" + return self._files_client.delete(file, function, provider) + + def provider_file_delete(self, file: str, function: QiskitFunction, provider: str): """Deletes file uploaded or produced by the programs,""" - return self._files_client.delete(file, provider) + return self._files_client.provider_delete(file, function, provider) def file_upload( self, file: str, function: QiskitFunction, provider: Optional[str] = None diff --git a/client/qiskit_serverless/core/files.py b/client/qiskit_serverless/core/files.py index 8af1cc460..619c218f1 100644 --- a/client/qiskit_serverless/core/files.py +++ b/client/qiskit_serverless/core/files.py @@ -201,14 +201,43 @@ def provider_list(self, function: QiskitFunction) -> List[str]: ) return response_data.get("results", []) - def delete(self, file: str, provider: Optional[str] = None) -> Optional[str]: + def delete( + self, file: str, function: QiskitFunction, provider: Optional[str] = None + ) -> Optional[str]: """Deletes file uploaded or produced by the programs,""" tracer = trace.get_tracer("client.tracer") with tracer.start_as_current_span("files.delete"): response_data = safe_json_request_as_dict( request=lambda: requests.delete( os.path.join(self._files_url, "delete"), - data={"file": file, "provider": provider}, + params={ + "file": file, + "function": function.title, + "provider": provider, + }, + headers={ + "Authorization": f"Bearer {self._token}", + "format": "json", + }, + timeout=REQUESTS_TIMEOUT, + ) + ) + return response_data.get("message", "") + + def provider_delete( + self, file: str, function: QiskitFunction, provider: str + ) -> Optional[str]: + """Deletes file uploaded or produced by the programs,""" + tracer = trace.get_tracer("client.tracer") + with tracer.start_as_current_span("files.provider_delete"): + response_data = safe_json_request_as_dict( + request=lambda: requests.delete( + os.path.join(self._files_url, "provider", "delete"), + params={ + "file": file, + "function": function.title, + "provider": provider, + }, headers={ "Authorization": f"Bearer {self._token}", "format": "json",