Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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
Exemplo n.º 3
0
    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: