예제 #1
0
 def newHost(self, ip, name):
     if type(ip) is not type(()):
         ip = pdconf.splitHostPort(ip)
     self.hosts.append(ip)
     self.hostnames[ip] = name
     self.hostnames['%s:%d'%ip] = name
     self.openconns[ip] = 0
     self.totalconns[ip] = 0
예제 #2
0
 def delHost(self, ip=None, name=None, activegroup=0):
     "remove a host"
     if ip is not None:
         if type(ip) is not type(()):
             ip = pdconf.splitHostPort(ip)
     elif name is not None:
         for ip in self.hostnames.keys():
             if self.hostnames[ip] == name:
                 break
         raise ValueError, "No host named %s"%(name)
     else:
         raise ValueError, "Neither ip nor name supplied"
     if activegroup and len(self.hosts) == 1:
         return 0
     if ip in self.hosts:
         self.hosts.remove(ip)
         del self.hostnames[ip]
         del self.openconns[ip]
         del self.totalconns[ip]
     elif self.badhosts.has_key(ip):
         del self.badhosts[ip]
     else:
         raise ValueError, "Couldn't find host"
     return 1