X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=zabbix%2Fzabbixsync.py;h=340b4d82f3df9a558ffd5a095d05606f3f553516;hb=60ecfa840f2cf65ef910975d8e9443ac9c1b02db;hp=ffef361bd2363f8c8390a78cdb867a6f96cc5116;hpb=6ab1e756a6267bee392984e1ce26332b4ef66b79;p=monitor.git diff --git a/zabbix/zabbixsync.py b/zabbix/zabbixsync.py index ffef361..340b4d8 100755 --- a/zabbix/zabbixsync.py +++ b/zabbix/zabbixsync.py @@ -3,6 +3,9 @@ import sys import os import site +from monitor.config import config +config.zabbix_enabled = True + from monitor.wrapper import plc, plccache from monitor import database @@ -12,7 +15,7 @@ from monitor.database.zabbixapi.model import confirm_ids, HostGroup plcdb = plccache.l_sites # database.dbLoad("l_plcsites") -netid2ip = plccache.plcdb_netid2ip # database.dbLoad("plcdb_netid2ip") +#netid2ip = plccache.plcdb_netid2ip # database.dbLoad("plcdb_netid2ip") lb2hn = plccache.plcdb_lb2hn # database.dbLoad("plcdb_lb2hn") def get_site_iplist(loginbase): @@ -22,8 +25,11 @@ def get_site_iplist(loginbase): # TODO: if it is, then we need to break up the discovery rule. ip_list = "" for node in node_list: - if len(node['nodenetwork_ids']) > 0: - ip = netid2ip[node['nodenetwork_ids'][0]] + if len(node['interface_ids']) > 0: + ifs = plc.api.GetInterfaces({'interface_id' : node['interface_ids'], 'is_primary' : True}) + print ifs + #ip = netid2ip[node['interface_ids'][0]] + ip = ifs[0]['ip'] if len(ip_list) > 0: ip_list += "," ip_list += ip @@ -44,7 +50,7 @@ if __name__=="__main__": from monitor import parser as parsermodule parser = parsermodule.getParser(['cacheset']) - parser.set_defaults( setupglobal=False, syncsite=True, site=None, setupids=False) + parser.set_defaults( setupglobal=False, syncsite=True, site=None, sitelist=None, setupids=False) parser.add_option("", "--setupids", action="store_true", dest="setupids", help="Setup global IDs.") parser.add_option("", "--setupglobal", action="store_true", dest="setupglobal", @@ -53,6 +59,8 @@ if __name__=="__main__": help="Do not sync sites.") parser.add_option("", "--site", dest="site", help="Sync only given site name.") + parser.add_option("", "--sitelist", dest="sitelist", + help="Sync only given site names in the list.") opts = parsermodule.parse_args(parser) os.system("""echo '' > /usr/share/monitor/nodelist.txt""") @@ -74,11 +82,14 @@ if __name__=="__main__": query = {'peer_id' : None} if opts.site: query.update({'login_base' : opts.site}) + elif opts.sitelist: + l = opts.sitelist.split(",") + query.update({'login_base' : l}) # ADD SITES sites = api.GetSites(query, ['login_base']) site_api_list = [ site['login_base'] for site in sites ] - for site in sites[:20]: + for site in sites: # [:20]: add_loginbase(site['login_base']) session.flush() @@ -89,6 +100,7 @@ if __name__=="__main__": in_db_not_plc = set(site_db_list) - set(site_api_list) for login_base in in_db_not_plc: print "Deleting %s" % login_base - zabbixsite.delete_site(site['login_base']) + zabbixsite.delete_site(login_base) + session.flush()