Esempio n. 1
0
    def execute_status_command(self, orig_master_host, orig_master_ip,
                               ssh_user, ssh_options, ssh_port):
        config_helper = MHA_config_helper(host=orig_master_host)

        if ssh_port is None:
            ssh_port = 22

        self.debug_message("Doing sanity checks")

        mysql_user = config_helper.get_mysql_user()
        mysql_password = config_helper.get_mysql_password()

        if mysql_user == False or mysql_password == False:
            self.debug_message("Error accessing MySQL credentials from config")
            return MHA_IP_failover_helper.CODE_ERR_GENERAL

        if config_helper.get_manage_vip() == True:
            cluster_interface = config_helper.get_cluster_interface()
            writer_vip_cidr = config_helper.get_writer_vip_cidr()

            if cluster_interface == False or writer_vip_cidr == False:
                self.debug_message("Error fetching cluster_interface and "
                                   "writer_vip_cidr from config")
                return MHA_IP_failover_helper.CODE_ERR_GENERAL

        return MHA_IP_failover_helper.CODE_SUCCESS
Esempio n. 2
0
    def __init__(self, slave_host):
        self._slave_host_config_helper = MHA_config_helper(host=slave_host)

        self._slave_hostname = slave_host

        mysql_user = self._slave_host_config_helper.get_mysql_user()
        mysql_password = self._slave_host_config_helper.get_mysql_password()
        host_ip = self._slave_host_config_helper.get_host_ip()

        self._slave_host = MySQL_helper(host=host_ip, user=mysql_user,
                            password=mysql_password) 
    def __init__(self, orig_master_host, orig_master_ip, orig_master_ssh_port,
                 new_master_host, new_master_ip, new_master_ssh_port,
                 ssh_options, privileged_users):
        self._orig_master_config_helper = MHA_config_helper(
            host=orig_master_host)
        self._new_master_config_helper = MHA_config_helper(
            host=new_master_host)

        self._orig_master = MySQL_helper(
            host=orig_master_ip,
            user=self._orig_master_config_helper.get_mysql_user(),
            password=self._orig_master_config_helper.get_mysql_password())

        self._new_master = MySQL_helper(
            host=new_master_ip,
            user=self._new_master_config_helper.get_mysql_user(),
            password=self._new_master_config_helper.get_mysql_password())

        self._orig_master_ip = orig_master_ip

        if orig_master_ssh_port is None:
            self._orig_master_ssh_port = 22
        else:
            self._orig_master_ssh_port = orig_master_ssh_port

        self._new_master_ip = new_master_ip

        if new_master_ssh_port is None:
            self._new_master_ssh_port = 22
        else:
            self._new_master_ssh_port = new_master_ssh_port

        self._ssh_options = ssh_options

        self._privileged_users = privileged_users
        self._user_grants_orig_master = []
Esempio n. 4
0
    def execute_start_command(self, orig_master_host, orig_master_ip,
                              new_master_host, new_master_ip, ssh_user,
                              ssh_options, ssh_port):
        config_helper = MHA_config_helper(host=new_master_host)

        new_master = MySQL_helper(host=new_master_ip,
                                  user=config_helper.get_mysql_user(),
                                  password=config_helper.get_mysql_password())

        if ssh_port is None:
            ssh_port = 22

        # Connect to the new master
        if new_master.connect() == False:
            return MHA_IP_failover_helper.CODE_ERR_GENERAL

        # If we have to manage the VIP, then assign the VIP to the new master
        if config_helper.get_manage_vip() == True:
            return_val = MHA_VIP_helper.assign_vip(config_helper=config_helper,
                                                   host_ip=new_master_ip,
                                                   ssh_user=ssh_user,
                                                   ssh_port=ssh_port,
                                                   ssh_options=ssh_options)

        if return_val == False:
            new_master.disconnect()
            return MHA_IP_failover_helper.CODE_ERR_GENERAL

        # Remove the read_only flag
        self.debug_message("Removing the read_only flag from the new master")
        new_master.unset_read_only()

        # Disconnect from the new master
        new_master.disconnect()

        return MHA_IP_failover_helper.CODE_SUCCESS
Esempio n. 5
0
    def execute_stopssh_command(self, orig_master_host, orig_master_ip,
                                ssh_user, ssh_options, ssh_port):
        config_helper = MHA_config_helper(host=orig_master_host)

        orig_master = MySQL_helper(host=orig_master_ip,
                                   user=config_helper.get_mysql_user(),
                                   password=config_helper.get_mysql_password())

        if ssh_port is None:
            ssh_port = 22

        # If we have to manage the VIP, then remove the VIP from the original master
        if config_helper.get_manage_vip() == True:
            return_val = MHA_VIP_helper.remove_vip(config_helper=config_helper,
                                                   host_ip=orig_master_ip,
                                                   ssh_user=ssh_user,
                                                   ssh_port=ssh_port,
                                                   ssh_options=ssh_options)
        if return_val == True:
            exit_code = MHA_IP_failover_helper.CODE_SUCCESS
        else:
            exit_code = MHA_IP_failover_helper.CODE_ERR_GENERAL

        return exit_code