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

[Dataprep] Fix Delete Bug #863

Merged
merged 2 commits into from
Nov 8, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
98 changes: 49 additions & 49 deletions comps/dataprep/redis/langchain/prepare_doc_redis.py
Original file line number Diff line number Diff line change
Expand Up @@ -436,63 +436,63 @@ async def delete_single_file(file_path: str = Body(..., embed=True)):
logger.info(f"[ delete ] delete_path: {delete_path}")

# partially delete files
if delete_path.exists():
doc_id = "file:" + encode_filename(file_path)
doc_id = "file:" + encode_filename(file_path)
logger.info(f"[ delete ] doc id: {doc_id}")

# determine whether this file exists in db KEY_INDEX_NAME
# determine whether this file exists in db KEY_INDEX_NAME
try:
key_ids = search_by_id(client, doc_id).key_ids
except Exception as e:
if logflag:
logger.info(f"[ delete ] {e}, File {file_path} does not exists.")
raise HTTPException(status_code=404, detail=f"File not found in db {KEY_INDEX_NAME}. Please check file_path.")
file_ids = key_ids.split("#")

# delete file keys id in db KEY_INDEX_NAME
try:
assert delete_by_id(client, doc_id)
except Exception as e:
if logflag:
logger.info(f"[ delete ] {e}. File {file_path} delete failed for db {KEY_INDEX_NAME}.")
raise HTTPException(status_code=500, detail=f"File {file_path} delete failed for key index.")

# delete file content in db INDEX_NAME
for file_id in file_ids:
# determine whether this file exists in db INDEX_NAME
try:
key_ids = search_by_id(client, doc_id).key_ids
search_by_id(client2, file_id)
except Exception as e:
if logflag:
logger.info(f"[ delete ] {e}, File {file_path} does not exists.")
raise HTTPException(
status_code=404, detail=f"File not found in db {KEY_INDEX_NAME}. Please check file_path."
)
file_ids = key_ids.split("#")
logger.info(f"[ delete ] {e}. File {file_path} does not exists.")
raise HTTPException(status_code=404, detail=f"File not found in db {INDEX_NAME}. Please check file_path.")

# delete file
if delete_path.is_file():
# delete file keys id in db KEY_INDEX_NAME
try:
assert delete_by_id(client, doc_id)
except Exception as e:
if logflag:
logger.info(f"[ delete ] {e}. File {file_path} delete failed for db {KEY_INDEX_NAME}.")
raise HTTPException(status_code=500, detail=f"File {file_path} delete failed.")

# delete file content in db INDEX_NAME
for file_id in file_ids:
# determine whether this file exists in db INDEX_NAME
try:
content = search_by_id(client2, file_id).content
except Exception as e:
if logflag:
logger.info(f"[ delete ] {e}. File {file_path} does not exists.")
raise HTTPException(
status_code=404, detail=f"File not found in db {INDEX_NAME}. Please check file_path."
)

# delete file content
try:
assert delete_by_id(client2, file_id)
except Exception as e:
if logflag:
logger.info(f"[ delete ] {e}. File {file_path} delete failed for db {INDEX_NAME}")
raise HTTPException(status_code=500, detail=f"File {file_path} delete failed.")

# delete file on local disk
delete_path.unlink()
# delete file content
try:
assert delete_by_id(client2, file_id)
except Exception as e:
if logflag:
logger.info({"status": True})
return {"status": True}
logger.info(f"[ delete ] {e}. File {file_path} delete failed for db {INDEX_NAME}")
raise HTTPException(status_code=500, detail=f"File {file_path} delete failed for index.")

# delete folder
else:
if logflag:
logger.info(f"[ delete ] Delete folder {file_path} is not supported for now.")
raise HTTPException(status_code=404, detail=f"Delete folder {file_path} is not supported for now.")
# local file does not exist (restarted docker container)
if not delete_path.exists():
if logflag:
logger.info(f"[ delete ] File {file_path} not saved locally.")
return {"status": True}

# delete local file
if delete_path.is_file():
# delete file on local disk
delete_path.unlink()
if logflag:
logger.info(f"[ delete ] File {file_path} deleted successfully.")
return {"status": True}

# delete folder
else:
raise HTTPException(status_code=404, detail=f"File {file_path} not found. Please check file_path.")
if logflag:
logger.info(f"[ delete ] Delete folder {file_path} is not supported for now.")
raise HTTPException(status_code=404, detail=f"Delete folder {file_path} is not supported for now.")


if __name__ == "__main__":
Expand Down
Loading