Commit ·
41f748f
1
Parent(s): 16407bf
Add detailed MongoDB logging and verification endpoint
Browse files- Add detailed logging showing database and collection names
- Add verification step to confirm document exists after insert
- Add /mongo-status endpoint to check MongoDB connection and data
- Log database/collection names in all insert operations
- This will help diagnose why data might not be appearing in MongoDB
- api/main.py +88 -9
api/main.py
CHANGED
|
@@ -463,6 +463,37 @@ def logging_status(_: None = Depends(bearer_auth)) -> Dict[str, object]:
|
|
| 463 |
return _admin_logging_status()
|
| 464 |
|
| 465 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 466 |
@app.post("/upload-image")
|
| 467 |
def upload_image(image: UploadFile = File(...), _: None = Depends(bearer_auth)) -> Dict[str, str]:
|
| 468 |
file_id = _save_upload_to_gridfs(image, "image")
|
|
@@ -618,11 +649,23 @@ def inpaint(req: InpaintRequest, request: Request, _: None = Depends(bearer_auth
|
|
| 618 |
|
| 619 |
if mongo_logs is not None:
|
| 620 |
try:
|
| 621 |
-
log.
|
|
|
|
| 622 |
result = mongo_logs.insert_one(log_doc)
|
| 623 |
-
log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 624 |
except Exception as mongo_err:
|
| 625 |
-
log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc)
|
| 626 |
else:
|
| 627 |
log.warning("MongoDB not configured, skipping log insert")
|
| 628 |
|
|
@@ -704,10 +747,22 @@ def inpaint_url(req: InpaintRequest, request: Request, _: None = Depends(bearer_
|
|
| 704 |
log_doc["error"] = error_msg
|
| 705 |
if mongo_logs is not None:
|
| 706 |
try:
|
|
|
|
| 707 |
result = mongo_logs.insert_one(log_doc)
|
| 708 |
-
log.info("Mongo log inserted successfully: _id=%s, output_id=%s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 709 |
except Exception as mongo_err:
|
| 710 |
-
log.error("Mongo log insert failed: %s", mongo_err)
|
| 711 |
else:
|
| 712 |
log.warning("MongoDB not configured, skipping log insert")
|
| 713 |
|
|
@@ -879,10 +934,22 @@ def inpaint_multipart(
|
|
| 879 |
log_doc["error"] = error_msg
|
| 880 |
if mongo_logs is not None:
|
| 881 |
try:
|
|
|
|
| 882 |
result = mongo_logs.insert_one(log_doc)
|
| 883 |
-
log.info("Mongo log inserted successfully: _id=%s, output_id=%s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 884 |
except Exception as mongo_err:
|
| 885 |
-
log.error("Mongo log insert failed: %s", mongo_err)
|
| 886 |
else:
|
| 887 |
log.warning("MongoDB not configured, skipping log insert")
|
| 888 |
|
|
@@ -1025,10 +1092,22 @@ def remove_pink_segments(
|
|
| 1025 |
log_doc["error"] = error_msg
|
| 1026 |
if mongo_logs is not None:
|
| 1027 |
try:
|
|
|
|
| 1028 |
result = mongo_logs.insert_one(log_doc)
|
| 1029 |
-
log.info("Mongo log inserted successfully: _id=%s, output_id=%s
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1030 |
except Exception as mongo_err:
|
| 1031 |
-
log.error("Mongo log insert failed: %s", mongo_err)
|
| 1032 |
else:
|
| 1033 |
log.warning("MongoDB not configured, skipping log insert")
|
| 1034 |
|
|
|
|
| 463 |
return _admin_logging_status()
|
| 464 |
|
| 465 |
|
| 466 |
+
@app.get("/mongo-status")
|
| 467 |
+
def mongo_status(_: None = Depends(bearer_auth)) -> Dict[str, object]:
|
| 468 |
+
"""Check MongoDB connection status and verify data storage."""
|
| 469 |
+
status = {
|
| 470 |
+
"mongo_configured": MONGO_URI is not None,
|
| 471 |
+
"mongo_connected": mongo_client is not None,
|
| 472 |
+
"database": mongo_db.name if mongo_db else None,
|
| 473 |
+
"collection": mongo_logs.name if mongo_logs else None,
|
| 474 |
+
"admin_logging": _admin_logging_status(),
|
| 475 |
+
}
|
| 476 |
+
|
| 477 |
+
# Try to count documents in api_logs collection
|
| 478 |
+
if mongo_logs is not None:
|
| 479 |
+
try:
|
| 480 |
+
count = mongo_logs.count_documents({})
|
| 481 |
+
status["api_logs_count"] = count
|
| 482 |
+
# Get latest document
|
| 483 |
+
latest = mongo_logs.find_one(sort=[("timestamp", -1)])
|
| 484 |
+
if latest:
|
| 485 |
+
status["latest_log"] = {
|
| 486 |
+
"_id": str(latest.get("_id")),
|
| 487 |
+
"output_id": latest.get("output_id"),
|
| 488 |
+
"status": latest.get("status"),
|
| 489 |
+
"timestamp": latest.get("timestamp").isoformat() if isinstance(latest.get("timestamp"), datetime) else str(latest.get("timestamp")),
|
| 490 |
+
}
|
| 491 |
+
except Exception as err:
|
| 492 |
+
status["api_logs_error"] = str(err)
|
| 493 |
+
|
| 494 |
+
return status
|
| 495 |
+
|
| 496 |
+
|
| 497 |
@app.post("/upload-image")
|
| 498 |
def upload_image(image: UploadFile = File(...), _: None = Depends(bearer_auth)) -> Dict[str, str]:
|
| 499 |
file_id = _save_upload_to_gridfs(image, "image")
|
|
|
|
| 649 |
|
| 650 |
if mongo_logs is not None:
|
| 651 |
try:
|
| 652 |
+
log.info("Inserting log to MongoDB - Database: %s, Collection: %s", mongo_logs.database.name, mongo_logs.name)
|
| 653 |
+
log.debug("Log document: %s", log_doc)
|
| 654 |
result = mongo_logs.insert_one(log_doc)
|
| 655 |
+
log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s, db=%s, collection=%s",
|
| 656 |
+
result.inserted_id, output_name, status, mongo_logs.database.name, mongo_logs.name)
|
| 657 |
+
|
| 658 |
+
# Verify the insert by reading it back
|
| 659 |
+
try:
|
| 660 |
+
verify_doc = mongo_logs.find_one({"_id": result.inserted_id})
|
| 661 |
+
if verify_doc:
|
| 662 |
+
log.info("Verified: Document exists in MongoDB after insert")
|
| 663 |
+
else:
|
| 664 |
+
log.error("WARNING: Document not found after insert! _id=%s", result.inserted_id)
|
| 665 |
+
except Exception as verify_err:
|
| 666 |
+
log.warning("Could not verify insert: %s", verify_err)
|
| 667 |
except Exception as mongo_err:
|
| 668 |
+
log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc, exc_info=True)
|
| 669 |
else:
|
| 670 |
log.warning("MongoDB not configured, skipping log insert")
|
| 671 |
|
|
|
|
| 747 |
log_doc["error"] = error_msg
|
| 748 |
if mongo_logs is not None:
|
| 749 |
try:
|
| 750 |
+
log.info("Inserting log to MongoDB - Database: %s, Collection: %s", mongo_logs.database.name, mongo_logs.name)
|
| 751 |
result = mongo_logs.insert_one(log_doc)
|
| 752 |
+
log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s, db=%s, collection=%s",
|
| 753 |
+
result.inserted_id, output_name, status, mongo_logs.database.name, mongo_logs.name)
|
| 754 |
+
|
| 755 |
+
# Verify the insert by reading it back
|
| 756 |
+
try:
|
| 757 |
+
verify_doc = mongo_logs.find_one({"_id": result.inserted_id})
|
| 758 |
+
if verify_doc:
|
| 759 |
+
log.info("Verified: Document exists in MongoDB after insert")
|
| 760 |
+
else:
|
| 761 |
+
log.error("WARNING: Document not found after insert! _id=%s", result.inserted_id)
|
| 762 |
+
except Exception as verify_err:
|
| 763 |
+
log.warning("Could not verify insert: %s", verify_err)
|
| 764 |
except Exception as mongo_err:
|
| 765 |
+
log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc, exc_info=True)
|
| 766 |
else:
|
| 767 |
log.warning("MongoDB not configured, skipping log insert")
|
| 768 |
|
|
|
|
| 934 |
log_doc["error"] = error_msg
|
| 935 |
if mongo_logs is not None:
|
| 936 |
try:
|
| 937 |
+
log.info("Inserting log to MongoDB - Database: %s, Collection: %s", mongo_logs.database.name, mongo_logs.name)
|
| 938 |
result = mongo_logs.insert_one(log_doc)
|
| 939 |
+
log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s, db=%s, collection=%s",
|
| 940 |
+
result.inserted_id, output_name, status, mongo_logs.database.name, mongo_logs.name)
|
| 941 |
+
|
| 942 |
+
# Verify the insert by reading it back
|
| 943 |
+
try:
|
| 944 |
+
verify_doc = mongo_logs.find_one({"_id": result.inserted_id})
|
| 945 |
+
if verify_doc:
|
| 946 |
+
log.info("Verified: Document exists in MongoDB after insert")
|
| 947 |
+
else:
|
| 948 |
+
log.error("WARNING: Document not found after insert! _id=%s", result.inserted_id)
|
| 949 |
+
except Exception as verify_err:
|
| 950 |
+
log.warning("Could not verify insert: %s", verify_err)
|
| 951 |
except Exception as mongo_err:
|
| 952 |
+
log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc, exc_info=True)
|
| 953 |
else:
|
| 954 |
log.warning("MongoDB not configured, skipping log insert")
|
| 955 |
|
|
|
|
| 1092 |
log_doc["error"] = error_msg
|
| 1093 |
if mongo_logs is not None:
|
| 1094 |
try:
|
| 1095 |
+
log.info("Inserting log to MongoDB - Database: %s, Collection: %s", mongo_logs.database.name, mongo_logs.name)
|
| 1096 |
result = mongo_logs.insert_one(log_doc)
|
| 1097 |
+
log.info("Mongo log inserted successfully: _id=%s, output_id=%s, status=%s, db=%s, collection=%s",
|
| 1098 |
+
result.inserted_id, output_name, status, mongo_logs.database.name, mongo_logs.name)
|
| 1099 |
+
|
| 1100 |
+
# Verify the insert by reading it back
|
| 1101 |
+
try:
|
| 1102 |
+
verify_doc = mongo_logs.find_one({"_id": result.inserted_id})
|
| 1103 |
+
if verify_doc:
|
| 1104 |
+
log.info("Verified: Document exists in MongoDB after insert")
|
| 1105 |
+
else:
|
| 1106 |
+
log.error("WARNING: Document not found after insert! _id=%s", result.inserted_id)
|
| 1107 |
+
except Exception as verify_err:
|
| 1108 |
+
log.warning("Could not verify insert: %s", verify_err)
|
| 1109 |
except Exception as mongo_err:
|
| 1110 |
+
log.error("Mongo log insert failed: %s, log_doc=%s", mongo_err, log_doc, exc_info=True)
|
| 1111 |
else:
|
| 1112 |
log.warning("MongoDB not configured, skipping log insert")
|
| 1113 |
|