Compare commits
No commits in common. "a9039ef33648fd49ad89abeea538a1543bae3f19" and "7d8185384e64714ffecdbe63acba5157e64b96ce" have entirely different histories.
a9039ef336
...
7d8185384e
@ -1 +1 @@
|
|||||||
v20260106-03-veeam-full-job-name-merge
|
v20260106-02-inbox-bulk-delete
|
||||||
|
|||||||
@ -711,20 +711,6 @@ def _strip_m365_combined_suffix(job_name: Optional[str]) -> Optional[str]:
|
|||||||
return cleaned or None
|
return cleaned or None
|
||||||
|
|
||||||
|
|
||||||
def _strip_full_suffix(job_name: Optional[str]) -> Optional[str]:
|
|
||||||
"""Remove a trailing "(Full)" suffix from a Veeam job name.
|
|
||||||
|
|
||||||
Some Veeam installations create separate emails where the job name is
|
|
||||||
suffixed with "(Full)" (e.g. "Backup VM DC01 (Full)"). Those should be
|
|
||||||
treated as the same logical job as the non-suffixed name.
|
|
||||||
"""
|
|
||||||
if not job_name:
|
|
||||||
return job_name
|
|
||||||
|
|
||||||
cleaned = re.sub(r"\s*\(\s*Full\s*\)\s*$", "", job_name, flags=re.IGNORECASE).strip()
|
|
||||||
return cleaned or None
|
|
||||||
|
|
||||||
|
|
||||||
def try_parse_veeam(msg: MailMessage) -> Tuple[bool, Dict, List[Dict]]:
|
def try_parse_veeam(msg: MailMessage) -> Tuple[bool, Dict, List[Dict]]:
|
||||||
"""Try to parse a Veeam backup report mail.
|
"""Try to parse a Veeam backup report mail.
|
||||||
|
|
||||||
@ -880,10 +866,6 @@ def try_parse_veeam(msg: MailMessage) -> Tuple[bool, Dict, List[Dict]]:
|
|||||||
# Do not let retry counters create distinct job names.
|
# Do not let retry counters create distinct job names.
|
||||||
job_name = _strip_retry_suffix(job_name)
|
job_name = _strip_retry_suffix(job_name)
|
||||||
|
|
||||||
# Veeam can append a "(Full)" suffix to the job name in some reports.
|
|
||||||
# Strip it so full/non-full mails map to the same logical job.
|
|
||||||
job_name = _strip_full_suffix(job_name)
|
|
||||||
|
|
||||||
# Veeam Backup for Microsoft 365 reports can add a "(Combined)" suffix.
|
# Veeam Backup for Microsoft 365 reports can add a "(Combined)" suffix.
|
||||||
# Strip it so combined/non-combined mails map to the same job.
|
# Strip it so combined/non-combined mails map to the same job.
|
||||||
if (backup_type or "") == "Veeam Backup for Microsoft 365":
|
if (backup_type or "") == "Veeam Backup for Microsoft 365":
|
||||||
@ -903,7 +885,7 @@ def try_parse_veeam(msg: MailMessage) -> Tuple[bool, Dict, List[Dict]]:
|
|||||||
result: Dict = {
|
result: Dict = {
|
||||||
"backup_software": "Veeam",
|
"backup_software": "Veeam",
|
||||||
"backup_type": backup_type,
|
"backup_type": backup_type,
|
||||||
"job_name": job_name,
|
"job_name": _strip_retry_suffix(job_name),
|
||||||
"overall_status": status_word,
|
"overall_status": status_word,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -12,14 +12,6 @@
|
|||||||
- Added a “Delete selected” bulk action that soft-deletes selected inbox messages (moves them to Deleted), including select-all support and a selected-count indicator.
|
- Added a “Delete selected” bulk action that soft-deletes selected inbox messages (moves them to Deleted), including select-all support and a selected-count indicator.
|
||||||
- Implemented a new POST API endpoint to bulk delete inbox messages with proper validation, skip/missing counts, and admin event logging.
|
- Implemented a new POST API endpoint to bulk delete inbox messages with proper validation, skip/missing counts, and admin event logging.
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## v20260106-03-veeam-full-job-name-merge
|
|
||||||
|
|
||||||
- Updated Veeam parser to normalize job names.
|
|
||||||
- Jobs containing "(Full)" are now treated as the same job as those without "(Full)".
|
|
||||||
- This prevents duplicate job entries and ensures correct aggregation and reporting.
|
|
||||||
|
|
||||||
|
|
||||||
================================================================================================================================================
|
================================================================================================================================================
|
||||||
## v0.1.16
|
## v0.1.16
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user