Skip to content

Commit e13ffc7

Browse files
NRL-1277 Add method to verify pointers that have been fixed
1 parent aae468a commit e13ffc7

File tree

1 file changed

+53
-0
lines changed

1 file changed

+53
-0
lines changed

scripts/delete_all_invalid_pointers.py

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,10 +323,63 @@ def _fix_invalid_pointers_from_file(table_name: str, file_path: str) -> dict[str
323323
"fix-took-secs": timedelta.total_seconds(end_time - start_time),
324324
}
325325

326+
def _verify_pointers_from_file(table_name: str, file_path: str) -> dict[str, Any]:
327+
print(f"Verifying pointers from file {file_path} in table {table_name}....")
328+
329+
with open(file_path, "r") as f:
330+
pointer_ids = [line.split(":")[0] for line in f.readlines()]
331+
332+
verified_pointers = []
333+
invalid_pointers = []
334+
total_verified_count = 0
335+
336+
start_time = datetime.now(tz=timezone.utc)
337+
338+
for pointer_id in pointer_ids:
339+
try:
340+
response = dynamodb.get_item(
341+
TableName=table_name,
342+
Key={"pk": {"S": f"D#{pointer_id}"}, "sk": {"S": f"D#{pointer_id}"}}
343+
)
344+
item = response.get("Item")
345+
if not item:
346+
print(f"Pointer {pointer_id} not found.")
347+
continue
348+
349+
document = item.get("document", {}).get("S", "")
350+
_validate_document(document)
351+
verified_pointers.append(pointer_id)
352+
total_verified_count += 1
353+
354+
except Exception as exc:
355+
print(f"Failed to verify document {pointer_id}: {exc}")
356+
invalid_pointers.append(pointer_id)
357+
358+
if total_verified_count % 100 == 0:
359+
print("x", end="", flush=True)
360+
361+
end_time = datetime.now(tz=timezone.utc)
362+
363+
print(f" Done. Verified {len(verified_pointers)} pointers")
364+
365+
if len(invalid_pointers) > 0:
366+
print("Writing invalid pointers IDs to file ./invalid_pointers_from_file.txt ...")
367+
with open("invalid_pointers_from_file.txt", "w") as f:
368+
for _id in invalid_pointers:
369+
f.write(f"{_id}\n")
370+
371+
return {
372+
"verified_pointers": verified_pointers,
373+
"invalid_pointers": invalid_pointers,
374+
"total_verified_count": total_verified_count,
375+
"verify-took-secs": timedelta.total_seconds(end_time - start_time),
376+
}
377+
326378
if __name__ == "__main__":
327379
fire.Fire({
328380
"find_and_delete_invalid_pointers": _find_and_delete_invalid_pointers,
329381
"fix_invalid_pointers": _fix_invalid_pointers,
330382
"find_invalid_pointers": _find_invalid_pointers,
331383
"fix_invalid_pointers_from_file": _fix_invalid_pointers_from_file,
384+
"verify_pointers_from_file": _verify_pointers_from_file,
332385
})

0 commit comments

Comments
 (0)