templates-zabbix-itguys/fix_broken_yaml.py

56 lines
2.9 KiB
Python
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import sys
TARGET_FILE = r"C:\Users\joao.goncalves\Desktop\zabbix-itguys\templates_gold\windows_active_agent\template_windows_gold_ptbr.yaml"
# Tuple of (Broken String, Fixed String)
# Using raw strings for safety
REPAIRS = [
(
r"""description: "⚠️ A velocidade da interface caiu (Ex: 1Gb -> 100Mb).\n\n📉 Impacto: Lentidão na transferência de dados.\n🛠 Ação: 1. Verifique a categoria do cabo (Cat5e/Cat6). 2. Verifique configurações de Duplex/Speed no switch e servidor.\"""",
r"""description: "⚠️ A velocidade da interface caiu (Ex: 1Gb -> 100Mb).\n\n📉 Impacto: Lentidão na transferência de dados.\n🛠 Ação: 1. Verifique a categoria do cabo (Cat5e/Cat6). 2. Verifique configurações de Duplex/Speed no switch e servidor.""""
),
(
r"""description: "⚠️ Uso de banda elevado.\n\n📉 Impacto: A interface atingiu o limite de tráfego. O acesso ao servidor ficará lento e pacotes podem ser descartados.\n🛠 Ação: 1. Identifique qual processo/usuário está consumindo banda. 2. Avalie necessidade de upgrade de link.\"""",
r"""description: "⚠️ Uso de banda elevado.\n\n📉 Impacto: A interface atingiu o limite de tráfego. O acesso ao servidor ficará lento e pacotes podem ser descartados.\n🛠 Ação: 1. Identifique qual processo/usuário está consumindo banda. 2. Avalie necessidade de upgrade de link.""""
),
(
r"""description: "⚠️ Erros de transmissão detectados.\n\n📉 Impacto: Perda de pacotes, retransmissões e lentidão.\n🛠 Ação: 1. Substitua o cabo de rede. 2. Teste outra porta no switch.\"""",
r"""description: "⚠️ Erros de transmissão detectados.\n\n📉 Impacto: Perda de pacotes, retransmissões e lentidão.\n🛠 Ação: 1. Substitua o cabo de rede. 2. Teste outra porta no switch.""""
)
]
def fix_file():
print(f"Reading {TARGET_FILE}...")
try:
with open(TARGET_FILE, 'r', encoding='utf-8') as f:
content = f.read()
except Exception as e:
print(f"Error reading: {e}")
return
fixed_count = 0
for broken, fixed in REPAIRS:
# Check if broken version exists
# Normalize line endings just in case? Content mostly has \n
if broken in content:
print("Found broken block. Fixing...")
content = content.replace(broken, fixed)
fixed_count += 1
else:
print("Broken block not found (maybe already fixed or whitespace mismatch).")
# print(f"Looking for:\n{broken!r}")
if fixed_count > 0:
try:
with open(TARGET_FILE, 'w', encoding='utf-8') as f:
f.write(content)
print(f"Saved fixed file. Fixed {fixed_count} blocks.")
except Exception as e:
print(f"Error writing: {e}")
else:
print("No repairs needed.")
if __name__ == "__main__":
fix_file()