templates-zabbix-itguys/fix_broken_yaml.py

56 lines
2.9 KiB
Python
Raw Permalink 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()