def suggest_candidate_proxy(self): """ ToDo """ api = ZabbixApi(self.api_url, self.username, self.password) api.user_login() proxies = api.get_proxy_list() host_count = {} for i in range(len(proxies)): host_list = api.get_attached_host_list(proxies[i]) host_count[proxies[i]] = len(host_list) print host_list print host_count[proxies[i]] print host_count candidate_proxy = min(host_count, key=(lambda x: host_count[x])) print "Proxy: %s" % candidate_proxy return candidate_proxy
def suggest_candidate_proxy(self): """ ToDo """ api = ZabbixApi(self.api_url, self.username, self.password) api.user_login() proxies = api.get_proxy_list() host_count = {} for i in range(len(proxies)): host_list = api.get_attached_host_list(proxies[i]) host_count[proxies[i]] = len(host_list) print host_list print host_count[proxies[i]] print host_count candidate_proxy = min(host_count, key=(lambda x: host_count[x])) print "Proxy: %s" % candidate_proxy return candidate_proxy
def suggest_candidate_proxy(self): """ ToDo """ api = ZabbixApi(self.api_url, self.username, self.password) api.user_login() proxies = api.get_proxy_list() ipmi_ip = api.get_interface_ipaddress(self.host_name, '3') setting = self.rule_data proxy_name = '' for j in setting: flag = '' if proxy_name != '': break for i in [0, 1, 2, 3]: ip = int(ipmi_ip.split(".")[i]) from_ip = int(setting[j]["from"].split(".")[i]) to_ip = int(setting[j]["to"].split(".")[i]) if flag == 'from' and from_ip < ip: proxy_name = j break elif flag == 'from' and from_ip == ip: if i == 3: proxy_name = j break else: flag == 'from' continue elif flag == 'from' and from_ip > ip: break elif flag == 'to' and to_ip < ip: break elif flag == 'to' and to_ip == ip: if i == 3: proxy_name = j break else: flag == 'to' continue elif flag == 'to' and to_ip > ip: proxy_name = j break elif i == 3 and ip == to_ip: proxy_name = j break elif i == 3 and ip == from_ip: proxy_name = j break elif from_ip == to_ip and to_ip == ip: continue elif from_ip < to_ip and from_ip == ip: flag = 'from' continue elif from_ip < to_ip and to_ip == ip: flag = 'to' continue elif from_ip < ip and ip < to_ip: proxy_name = j break else: break candidate_proxy = proxy_name print "Proxy: %s" % candidate_proxy return proxy_name
def suggest_candidate_proxy(self): """ ToDo """ rule_key = "agent_ip" api = ZabbixApi(self.api_url, self.username, self.password) api.user_login() proxies = api.get_proxy_list() agent_ip = api.get_interface_ipaddress(self.host_name, '1') if self.rule_data.has_key(rule_key): print "error" proxy_name = '' ip = agent_ip.split(".") for proxy_define in self.rule_data[rule_key].keys(): flag = '' if proxy_name != '': break from_ip = self.rule_data[rule_key][proxy_define]["from"].split(".") to_ip = self.rule_data[rule_key][proxy_define]["to"].split(".") for i in [0, 1, 2, 3]: if flag == 'from' and int(from_ip[i]) < int(ip[i]): proxy_name = proxy_define break elif flag == 'from' and int(from_ip[i]) == int(ip[i]): if i == 3: proxy_name = proxy_define break else: flag == 'from' continue elif flag == 'from' and int(from_ip[i]) > int(ip[i]): break elif flag == 'to' and int(to_ip[i]) < int(ip[i]): break elif flag == 'to' and int(to_ip[i]) == int(ip[i]): if i == 3: proxy_name = proxy_define break else: flag == 'to' continue elif flag == 'to' and int(to_ip[i]) > int(ip[i]): proxy_name = proxy_define break elif i == 3 and int(ip[i]) == int(to_ip[i]): proxy_name = proxy_define break elif i == 3 and int(ip[i]) == int(from_ip[i]): proxy_name = proxy_define break elif int(from_ip[i]) == int(to_ip[i]) and int(to_ip[i]) == int(ip[i]): continue elif int(from_ip[i]) < int(to_ip[i]) and int(from_ip[i]) == int(ip[i]): flag = 'from' continue elif int(from_ip[i]) < int(to_ip[i]) and int(to_ip[i]) == int(ip[i]): flag = 'to' continue elif int(from_ip[i]) < int(ip[i]) and int(ip[i]) < int(to_ip[i]): proxy_name = proxy_define break else: break print "Proxy: %s" % proxy_name return proxy_name