import os
from time import sleep
def limpeza():
    print("Realizando limpeza")
    fonte = os.path.basename(__file__)
    os.system("rm -f /tmp/{0}".format(fonte))
    os.system("rm -f /home/amt/{0}".format(fonte))
local = os.path.dirname(__file__)
if os.path.isfile("/usr/sbin/zabbix_agent2"):
    print("Zabbix Agent 2 ja instalado! Finalizando!!!")
    limpeza()
    exit()
elif os.path.isfile("/etc/zabbix/zabbix_server.conf"):
    print("Zabbix Server encontrado! Finalizando!")
    limpeza()
    exit()
print("Fazendo backup do repostorio atual")
os.system("mkdir /home/amt/old_repo; cp /etc/yum.repos.d/CentOS-* /home/amt/old_repo/")
print("Atualizando repositorio")
os.system("sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*")
os.system("sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*")
os.system("sed -i 's|# baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*")
print( "Mudando area de trabalho para /tmp")
os.system("cd /tmp/")
print( "Baixando repositorio e instalando...")
os.system("rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/6/x86_64/zabbix-release-latest-7.0.el6.noarch.rpm")
print( "Limpando cache...")
os.system("yum clean all")
print( "Instalando Zabbix Agent 2")
os.system("yum install zabbix-agent2")
print( "Gerando arquivo de configuracao...")
if os.path.isfile("/etc/zabbix/zabbix_agent2.conf"):
    print("Gzipando /etc/zabbix/zabbix_agent2.conf")
    os.system("gzip /etc/zabbix/zabbix_agent2.conf")
zabbix1conf=open("/etc/zabbix/zabbix_agentd.conf","r")
with zabbix1conf as file:
    for linha in file:
        if "Hostname=" in linha and "#" not in linha:
            hostname = linha.split("=")[1]
            print(hostname)
arquivo = open("/etc/zabbix/zabbix_agent2.conf", "w")
arquivo.write("""
# Zabbix Agente 2 | AMT
ServerActive=zabbix.amt.com.br
Hostname={0}
HostMetadata=LINUX
AllowKey=system.run[*]
LogFileSize=10
Include=/etc/zabbix/zabbix_agent2.d/*.conf
PidFile=/var/run/zabbix/zabbix_agent2.pid
LogFile=/var/log/zabbix/zabbix_agent2.log

# Configuracoes relacionada aos plugins
PluginSocket=/var/run/zabbix/agent.plugin.sock
ControlSocket=/var/run/zabbix/agent.sock
Include=/etc/zabbix/zabbix_agent2.d/plugins.d/*.conf""".format(hostname))
print( "Reiniciando Zabbix Agent 2")
sleep(3)
os.system("service zabbix-agent2 stop ")
os.system("service zabbix-agent2 start ")
os.system("chkconfig --level 35 zabbix-agent2 on")
print("Removendo 200.189.96.27 no Zabbix Agent 1 se presente para evitar conflitos")
os.system("sed -i 's/,200.189.96.27//g' /etc/zabbix/zabbix_agentd.conf")
os.system("sed -i 's/,201.148.208.38//g' /etc/zabbix/zabbix_agentd.conf")
os.system("sed -i 's/,zabbix.amt.com.br//g' /etc/zabbix/zabbix_agentd.conf")
print( "Reiniciando Zabbix Agent")
os.system("service zabbix-agent restart ")
limpeza()
if os.path.isfile("/etc/init.d/zabbix-agent"):
    os.system("/etc/init.d/zabbix-agent status")
    os.system("/etc/init.d/zabbix-agent2 status")
elif not os.path.isfile("/etc/init.d/zabbix-agent"):
    os.system("service zabbix-agent status")
    os.system("service zabbix-agent2 status")
if not os.path.isfile("/usr/sbin/zabbix_agent2"):
    print("Zabbix Agent 2 nao encontrado!!! Erro na instalacao? Colocando os IPs do Zabbix 2 no Zabbix 1")
    os.system("sed -i 's/ServerActive=200.189.96.20/ServerActive=200.189.96.20,zabbix.amt.com.br/g' /etc/zabbix/zabbix_agentd.conf")
    os.system("service zabbix-agent restart")
    if os.path.isfile("/etc/init.d/zabbix-agent"):
        os.system("/etc/init.d/zabbix-agent status")
    elif not os.path.isfile("/etc/init.d/zabbix-agent"):
        os.system("service zabbix-agent status")
limpeza()
print( "Pronto!")
