Exemple #1
0
 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
Exemple #3
0
    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