# -*- coding: utf-8 -*- from setuphelpers import * import json from cryptography.fernet import Fernet uninstallkey = [] variables = { 'zabbix_servers': [ '127.0.0.1' ] } # Read local variables file if available if isfile(makepath(programfiles32,'wapt','private','symetric.txt')) and isfile(makepath(programfiles32,'wapt','private','variables.txt')): print('Reading local encrypted variables file') f = Fernet(open(makepath(programfiles32,'wapt','private','symetric.txt'),'r').read()) variables.update(json.loads(f.decrypt(open(makepath(programfiles32,'wapt','private','variables.txt'),'r').read()))) props = { 'RMTCMD':0, 'SERVER':','.join(variables['zabbix_servers']) } def install(): version = control['version'].split('-',1)[0] print('Installing Zabbix Agent version ' + version) if iswin64(): install_msi_if_needed('zabbix_agent-%s_x64.msi' % version,killbefore=['zabbix_agentd.exe'],properties=props,remove_old_version=True) else: install_msi_if_needed('zabbix_agent-%s_x86.msi' % version,killbefore=['zabbix_agentd.exe'],properties=props,remove_old_version=True) print('Opening port 10050 in the firewall') # Remove the previous rule if it existed. We don't mind the return code as the rule might not exist run_notfatal('netsh advfirewall firewall del rule name="Zabbix Agent"') # And add a new one run('netsh advfirewall firewall add rule name="Zabbix Agent" dir=in action=allow protocol=TCP localport=10050 enable=yes remoteip=%s' % (','.join(variables['zabbix_servers']))) def uninstall(): print('Removing firewall rule') run_notfatal('netsh advfirewall firewall del rule name="Zabbix Agent"') def update_package(): import requests, re from waptpackage import PackageEntry print('Updating Zabbix Agent package') page = requests.get('https://www.suiviperf.com/zabbix/',headers={'User-Agent':'Mozilla/5.0 (Windows NT 6.1; Win64; x64)'}).text version = re.search('zabbix_agent-(\d+(\.\d+)*)_x64.msi', page).group(1) for arch in ['86', '64']: if not isfile('zabbix_agent-%s_x%s.msi' % (version, arch)): filename ='zabbix_agent-%s_x%s.msi' % (version, arch) url = 'http://www.suiviperf.com/zabbix/%s' % filename print('Downloading %s from %s' % (filename, url)) wget(url, filename) for old in glob.glob(r'zabbix_agent-*_x%s' % arch): if not old == filename: remove_file(old) pe = PackageEntry() control = pe.load_control_from_wapt(os.getcwd()) if Version(version) > Version(control['version'].split('-',1)[0]): pe.version = version + '-0' pe.save_control_to_wapt(os.getcwd())