Ejemplo n.º 1
0
    def setUp(self):
        """Function:  setUp

        Description:  Initialization for unit testing.

        Arguments:

        """

        self.base_dir = "test/integration"
        self.config_dir = os.path.join(self.base_dir, "config")
        self.config_name = "slave_mysql_cfg"
        self.cfg = gen_libs.load_module(self.config_name, self.config_dir)
        self.svr = mysql_class.SlaveRep(self.cfg.name,
                                        self.cfg.sid,
                                        self.cfg.user,
                                        self.cfg.japd,
                                        os_type=getattr(
                                            machine, self.cfg.serv_os)(),
                                        host=self.cfg.host,
                                        port=self.cfg.port,
                                        defaults_file=self.cfg.cfg_file)
        self.svr2 = mysql_class.SlaveRep(self.cfg.name,
                                         self.cfg.sid,
                                         self.cfg.user,
                                         "testmenopwd",
                                         os_type=getattr(
                                             machine, self.cfg.serv_os)(),
                                         host=self.cfg.host,
                                         port=self.cfg.port,
                                         defaults_file=self.cfg.cfg_file)
        self.err_msg = "Couldn't connect to database.  MySQL error 1045:"
Ejemplo n.º 2
0
def create_slv_array(cfg_array, add_down=True):
    """Function:  create_slv_array

    Description:  Creates an array of instances from a configuration array.

    Arguments:
        (input) cfg_array -> List of configurations.
        (input) add_down -> True|False - Add any down slaves to the array.
        (output) slaves -> List of slave replication instances.

    """

    cfg_array = list(cfg_array)
    slaves = []

    for slv in cfg_array:
        slv_inst = mysql_class.SlaveRep(slv["name"],
                                        slv["sid"],
                                        slv["user"],
                                        slv["japd"],
                                        os_type=getattr(
                                            machine, slv["serv_os"])(),
                                        host=slv["host"],
                                        port=int(slv["port"]),
                                        defaults_file=slv["cfg_file"],
                                        rep_user=slv.get("rep_user", None),
                                        rep_japd=slv.get("rep_japd", None))
        slv_inst.connect()

        if add_down or slv_inst.conn:
            slaves.append(slv_inst)

    return slaves
Ejemplo n.º 3
0
    def test_int_skipcounter(self, mock_stat, mock_global, mock_var):
        """Function:  test_int_skipcounter

        Description:  Test integer for Skip_Counter.

        Arguments:

        """

        self.show_stat[0]["Skip_Counter"] = 1

        mock_var.return_value = {"read_only": "ON"}
        mock_global.side_effect = self.fetch_vars
        mock_stat.return_value = self.show_stat

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)
        mysqlrep.version = self.version
        mysqlrep.upd_slv_status()

        self.assertEqual(mysqlrep.skip_ctr, 1)
Ejemplo n.º 4
0
    def test_none_secsbehind(self, mock_stat, mock_global, mock_var):
        """Function:  test_none_secsbehind

        Description:  Test None for Seconds_Behind_Master.

        Arguments:

        """

        self.show_stat[0]["Seconds_Behind_Master"] = None

        mock_var.return_value = {"read_only": "ON"}
        mock_global.side_effect = self.fetch_vars
        mock_stat.return_value = self.show_stat

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)
        mysqlrep.version = self.version
        mysqlrep.upd_slv_status()

        self.assertEqual(mysqlrep.secs_behind, None)
Ejemplo n.º 5
0
    def test_string_masterserverid(self, mock_stat, mock_global, mock_var):
        """Function:  test_string_masterserverid

        Description:  Test string for Master_Server_Id.

        Arguments:

        """

        self.show_stat[0]["Master_Server_Id"] = "11"

        mock_var.return_value = {"read_only": "ON"}
        mock_global.side_effect = self.fetch_vars
        mock_stat.return_value = self.show_stat

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)
        mysqlrep.version = self.version
        mysqlrep.upd_slv_status()

        self.assertEqual(mysqlrep.mst_id, 11)
Ejemplo n.º 6
0
    def test_string_lastioerror(self, mock_stat, mock_global, mock_var):
        """Function:  test_string_lastioerror

        Description:  Test string for Last_IO_Errno.

        Arguments:

        """

        self.show_stat[0]["Last_IO_Errno"] = "1"

        mock_var.return_value = {"read_only": "ON"}
        mock_global.side_effect = self.fetch_vars
        mock_stat.return_value = self.show_stat

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)
        mysqlrep.version = self.version
        mysqlrep.upd_slv_status()

        self.assertEqual(mysqlrep.io_err, 1)
Ejemplo n.º 7
0
    def setUp(self):
        """Function:  setUp

        Description:  Initialization for unit testing.

        Arguments:

        """

        self.name = "Mysql_Server"
        self.server_id = 10
        self.sql_user = "******"
        self.sql_pass = "******"
        self.machine = getattr(machine, "Linux")()
        self.host = "host_server"
        self.port = 3307
        self.defaults_file = "def_cfg_file"
        self.extra_def_file = "extra_cfg_file"

        self.mysqlrep = mysql_class.SlaveRep(self.name,
                                             self.server_id,
                                             self.sql_user,
                                             self.sql_pass,
                                             os_type=self.machine,
                                             defaults_file=self.defaults_file)
Ejemplo n.º 8
0
    def test_value(self, mock_stat, mock_global, mock_var):
        """Function:  test_value

        Description:  Test with values returned.

        Arguments:

        """

        mock_var.return_value = {"read_only": "ON"}
        mock_global.side_effect = self.fetch_vars
        mock_stat.return_value = self.show_stat

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)
        mysqlrep.version = self.version
        mysqlrep.upd_slv_status()

        self.assertEqual((mysqlrep.io_state, mysqlrep.slv_io, mysqlrep.slv_sql,
                          mysqlrep.auto_pos),
                         ("up", "running", "sqlcode", "autopos"))
Ejemplo n.º 9
0
    def test_ssl_verify_id(self):
        """Function:  test_ssl_verify_id

        Description:  Test with ssl_verify_id attribute.

        Arguments:

        """

        mysqldb = mysql_class.SlaveRep(self.cfg.name,
                                       self.cfg.sid,
                                       self.cfg.user,
                                       self.cfg.japd,
                                       os_type=self.machine)

        self.assertEqual(mysqldb.ssl_verify_id, False)
Ejemplo n.º 10
0
    def test_indb_buf_write(self):
        """Function:  test_indb_buf_write

        Description:  Test with indb_buf_write attribute.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine)

        self.assertEqual(mysqlrep.indb_buf_write, None)
Ejemplo n.º 11
0
    def test_no_host(self):
        """Function:  test_no_host

        Description:  Test with no host arg.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine)

        self.assertEqual(mysqlrep.host, "localhost")
Ejemplo n.º 12
0
    def test_ssl_disabled(self):
        """Function:  test_ssl_disabled

        Description:  Test with ssl_disabled attribute.

        Arguments:

        """

        mysqldb = mysql_class.SlaveRep(self.name,
                                       self.server_id,
                                       self.sql_user,
                                       self.sql_pass,
                                       os_type=self.machine)

        self.assertEqual(mysqldb.ssl_disabled, False)
Ejemplo n.º 13
0
    def test_default(self):

        """Function:  test_default

        Description:  Test fetch_ign_tbl method with no data.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name, self.server_id,
                                        self.sql_user, self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)

        self.assertEqual(mysqlrep.fetch_ign_tbl(), [])
Ejemplo n.º 14
0
    def test_no_port(self):
        """Function:  test_no_port

        Description:  Test with no port arg.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine)

        self.assertEqual(mysqlrep.port, 3306)
Ejemplo n.º 15
0
    def test_version(self):
        """Function:  test_version

        Description:  Test with version attribute.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine)

        self.assertEqual(mysqlrep.version, None)
Ejemplo n.º 16
0
    def test_ssl_client_ca(self):
        """Function:  test_ssl_client_ca

        Description:  Test with ssl_client_ca attribute.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine)

        self.assertEqual(mysqlrep.ssl_client_ca, None)
Ejemplo n.º 17
0
    def test_default(self):

        """Function:  test_default

        Description:  Test get_others method.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name, self.server_id,
                                        self.sql_user, self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)

        self.assertEqual(mysqlrep.get_others(), (None, None, None))
Ejemplo n.º 18
0
    def test_no_default(self):
        """Function:  test_no_default

        Description:  Test with no default file.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine)

        self.assertEqual(mysqlrep.defaults_file, self.results)
Ejemplo n.º 19
0
    def test_ssl_config(self):
        """Function:  test_ssl_config

        Description:  Test config with ssl attributes set.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine,
                                        ssl_client_ca="CAFile")

        self.assertEqual(mysqlrep.config, self.config2)
Ejemplo n.º 20
0
    def test_no_rep_user(self):
        """Function:  test_no_rep_user

        Description:  Test with no replication user information passed.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine,
                                        defaults_file=self.defaults_file)

        self.assertEqual((mysqlrep.rep_user, mysqlrep.rep_japd), (None, None))
Ejemplo n.º 21
0
    def test_ssl_client_key2(self):
        """Function:  test_ssl_client_key2

        Description:  Test with ssl_client_key attribute.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine,
                                        ssl_client_key="KeyFile")

        self.assertEqual(mysqlrep.ssl_client_key, "KeyFile")
Ejemplo n.º 22
0
    def test_ssl_client_flag(self):
        """Function:  test_ssl_client_flag

        Description:  Test with ssl_client_flag attribute.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name,
                                        self.server_id,
                                        self.sql_user,
                                        self.sql_pass,
                                        os_type=self.machine)

        self.assertEqual(mysqlrep.ssl_client_flag,
                         mysql.connector.ClientFlag.SSL)
Ejemplo n.º 23
0
    def test_ssl_verify_id2(self):
        """Function:  test_ssl_verify_id2

        Description:  Test with ssl_verify_id attribute.

        Arguments:

        """

        mysqldb = mysql_class.SlaveRep(self.name,
                                       self.server_id,
                                       self.sql_user,
                                       self.sql_pass,
                                       os_type=self.machine,
                                       ssl_verify_id=True)

        self.assertEqual(mysqldb.ssl_verify_id, True)
Ejemplo n.º 24
0
    def test_ssl_disabled2(self):
        """Function:  test_ssl_disabled2

        Description:  Test with ssl_disabled attribute.

        Arguments:

        """

        mysqldb = mysql_class.SlaveRep(self.cfg.name,
                                       self.cfg.sid,
                                       self.cfg.user,
                                       self.cfg.japd,
                                       os_type=self.machine,
                                       ssl_disabled=True)

        self.assertEqual(mysqldb.ssl_disabled, True)
Ejemplo n.º 25
0
    def test_list(self):

        """Function:  test_list

        Description:  Test fetch_ign_tbl method with data.

        Arguments:

        """

        mysqlrep = mysql_class.SlaveRep(self.name, self.server_id,
                                        self.sql_user, self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)
        mysqlrep.ign_tbl = "db1.tbl1,db2.tbl2,db3.tbl3"

        self.assertEqual(mysqlrep.fetch_ign_tbl(),
                         {'db1': ['tbl1'], 'db3': ['tbl3'], 'db2': ['tbl2']})
Ejemplo n.º 26
0
    def test_conn(self):
        """Function:  test_conn

        Description:  Test with conn attribute.

        Arguments:

        """

        mysqldb = mysql_class.SlaveRep(self.cfg.name,
                                       self.cfg.sid,
                                       self.cfg.user,
                                       self.cfg.japd,
                                       os_type=getattr(machine,
                                                       self.cfg.serv_os)(),
                                       host=self.cfg.host)

        self.assertEqual(mysqldb.conn, None)
Ejemplo n.º 27
0
    def test_no_port(self):
        """Function:  test_no_port

        Description:  Test with no port arg.

        Arguments:

        """

        mysqldb = mysql_class.SlaveRep(self.cfg.name,
                                       self.cfg.sid,
                                       self.cfg.user,
                                       self.cfg.japd,
                                       os_type=getattr(machine,
                                                       self.cfg.serv_os)(),
                                       host=self.cfg.host)

        self.assertEqual(mysqldb.port, 3306)
Ejemplo n.º 28
0
    def test_no_host(self):
        """Function:  test_no_host

        Description:  Test with no host arg.

        Arguments:

        """

        mysqldb = mysql_class.SlaveRep(self.cfg.name,
                                       self.cfg.sid,
                                       self.cfg.user,
                                       self.cfg.japd,
                                       os_type=getattr(machine,
                                                       self.cfg.serv_os)(),
                                       port=self.cfg.port)

        self.assertEqual(mysqldb.host, "localhost")
Ejemplo n.º 29
0
    def test_except_secsbehind(self, mock_stat):

        """Function:  test_except_secsbehind

        Description:  Test raising exception for Seconds_Behind_Master.

        Arguments:

        """

        mock_stat.return_value = self.show_stat
        mysqlrep = mysql_class.SlaveRep(self.name, self.server_id,
                                        self.sql_user, self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)

        mysqlrep.upd_slv_time()
        self.assertEqual(mysqlrep.secs_behind, 10)
Ejemplo n.º 30
0
    def test_value(self, mock_stat):

        """Function:  test_value

        Description:  Test with values returned.

        Arguments:

        """

        mock_stat.return_value = self.show_stat
        mysqlrep = mysql_class.SlaveRep(self.name, self.server_id,
                                        self.sql_user, self.sql_pass,
                                        self.machine,
                                        defaults_file=self.defaults_file)

        mysqlrep.upd_slv_time()
        self.assertEqual(mysqlrep.secs_behind, 10)