def _check_host_references(self): """Check to see if using all host or all IP addresses Returns bool - True = all references are consistent """ from mysql.utilities.common.options import hostname_is_ip uses_ip = hostname_is_ip(self.topology.master.host) for slave_dict in self.topology.slaves: slave = slave_dict['instance'] if slave is not None: host, port = slave.get_master_host_port() if uses_ip != hostname_is_ip(slave.host) or \ uses_ip != hostname_is_ip(host): return False return True
def is_alias(self, host_or_ip): """Determine if host_or_ip is an alias for this host host_or_ip[in] host or IP number to check Returns bool - True = host_or_ip is an alias """ from mysql.utilities.common.options import hostname_is_ip import socket if self.aliases: return host_or_ip.lower() in self.aliases # First, get the local information try: local_info = socket.gethostbyname_ex(socket.gethostname()) local_aliases = [local_info[0].lower()] # if dotted host name, take first part and use as an alias try: local_aliases.append(local_info[0].split('.')[0]) except: pass local_aliases.extend(['127.0.0.1', 'localhost']) local_aliases.extend(local_info[1]) local_aliases.extend(local_info[2]) except (socket.herror, socket.gaierror): local_aliases = [] # Check for local if self.host in local_aliases: self.aliases.extend(local_aliases) else: self.aliases.append(self.host) if hostname_is_ip(self.host): # IP address try: my_host = socket.gethostbyaddr(self.host) self.aliases.append(my_host[0]) host_ip = socket.gethostbyname_ex(my_host[0]) except Exception, e: host_ip = ([],[],[]) if self.verbose: print "WARNING: IP lookup failed", e else: