Last active
February 19, 2023 14:08
-
-
Save ram1123/afb9f2e93514bc42a5da86feed0efe1e to your computer and use it in GitHub Desktop.
From big crab status output prepare a summary markdown table
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import sys | |
if sys.version_info[0] < 3: | |
print("This script requires Python 3. Please use Python 3 to run this script.") | |
sys.exit() | |
# Run crab status command and append in log file | |
ifRunCrabStatus = False | |
print("Start of program.") | |
if ifRunCrabStatus: | |
command = "echo crab_* | xargs -n 1 crab status >& crab_status.log " | |
print(f"Run the crab status command: {command}") | |
os.system(command) | |
print("crab command finished. Going to extract information from log file.") | |
# Define the search patterns | |
search_pattern1 = "Task name:" | |
search_pattern2 = "Jobs status:" | |
search_pattern3 = "Status on the CRAB server:" | |
# Open the file for reading | |
with open("crab_status.log", "r") as f: | |
# Read all lines from the file | |
lines = f.readlines() | |
# Keep track of the line number | |
line_number = 0 | |
# Initialize variables to store the search results | |
task_name = "" | |
jobs_status = "" | |
crab_status = "" | |
# Print the table as a Markdown table | |
print("Task name | Jobs status| Crab status") | |
print("----------|------------|------------") | |
# Loop over all lines in the file | |
for line in lines: | |
line_number += 1 | |
# Check if the line matches the search patterns | |
if search_pattern1 in line: | |
# task_name = line.strip().replace(search_pattern1, "").strip() | |
task_name = ((line.split(search_pattern1)[-1].strip()).split(":")[1]).replace("rasharma_crab_legacyRunII_","") | |
elif search_pattern3 in line: | |
crab_status = line.strip().replace(search_pattern3, "").strip() | |
# print("L29# jobs_status:",jobs_status,"crab_status:", crab_status,type(crab_status)) | |
# if crab_status == "TAPERECALL": print("TAPERECALL") | |
# if crab_status == "SUBMITTED": print("SUBMITTED") | |
# if crab_status != "SUBMITTED" : print("Ram") | |
elif crab_status == "SUBMITTED" and search_pattern2 in line: | |
# jobs_status = line.strip().replace(search_pattern2, "").strip() | |
jobs_status = line.split(search_pattern2)[-1].strip() | |
# print("L36# jobs_status:",jobs_status,"crab_status:", crab_status) | |
elif crab_status == "TAPERECALL" : | |
jobs_status = "Pending" | |
elif crab_status == "FAILED" : | |
jobs_status = "Pending" | |
# print("L40# jobs_status:",jobs_status,"crab_status:", crab_status) | |
# If both task name and crab status are found, print them as a table row | |
if task_name and crab_status and jobs_status: | |
# if jobs_status: | |
print(f"{task_name} | {jobs_status} | {crab_status} |") | |
# else: | |
# print(f"| {task_name} | N/A | {crab_status} |") | |
# Reset the variables | |
task_name = "" | |
jobs_status = "" | |
crab_status = "" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment