~mysql/mysql-utilities/1.6

« back to all changes in this revision

Viewing changes to mysql-test/suite/replication/t/rpl_admin_basic_ssl_opt_gtid.py

  • Committer: chuck.bell at oracle
  • Date: 2014-12-05 15:00:19 UTC
  • mfrom: (488.1.1 mu-1.6.1-b19031182)
  • Revision ID: chuck.bell@oracle.com-20141205150019-enxhq2j2gdylzhx9
Tagged for release to SysQA

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#
 
2
# Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
 
3
#
 
4
# This program is free software; you can redistribute it and/or modify
 
5
# it under the terms of the GNU General Public License as published by
 
6
# the Free Software Foundation; version 2 of the License.
 
7
#
 
8
# This program is distributed in the hope that it will be useful,
 
9
# but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
# GNU General Public License for more details.
 
12
#
 
13
# You should have received a copy of the GNU General Public License
 
14
# along with this program; if not, write to the Free Software
 
15
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
 
16
#
 
17
 
 
18
"""
 
19
rpl_admin_basic_ssl_opt_gtid test.
 
20
"""
 
21
 
 
22
import rpl_admin_basic_ssl_gtid
 
23
 
 
24
from mutlib.ssl_certs import ssl_c_ca
 
25
 
 
26
from mysql.utilities.exception import MUTLibError
 
27
 
 
28
 
 
29
class test(rpl_admin_basic_ssl_gtid.test):
 
30
    """test replication administration commands
 
31
    This test runs the mysqlrpladmin utility on a known topology with ssl=1
 
32
    and ca certificate.
 
33
 
 
34
    Note: this test requires GTID enabled servers.
 
35
    """
 
36
 
 
37
    def run(self):
 
38
        test_num = 1
 
39
 
 
40
        master_conn = self.build_connection_string(self.server1).strip(' ')
 
41
        slave1_conn = self.build_connection_string(self.server2).strip(' ')
 
42
        slave2_conn = self.build_connection_string(self.server3).strip(' ')
 
43
        slave3_conn = self.build_connection_string(self.server4).strip(' ')
 
44
        ssl1 = "--ssl=1"
 
45
        ssl_ca = "--ssl-ca={0}".format(ssl_c_ca)
 
46
 
 
47
        comment = ("Test case {0} - SSL mysqlrplshow OLD Master "
 
48
                   "before demote".format(test_num))
 
49
        cmd_str = "mysqlrplshow.py --master={0} {1} {2}".format(master_conn,
 
50
                                                                ssl1, ssl_ca)
 
51
        cmd_opts = "--discover-slaves={0} ".format(master_conn.split('@')[0])
 
52
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
53
        res = self.run_test_case(0, cmds, comment)
 
54
        if not res:
 
55
            raise MUTLibError("{0}: failed".format(comment))
 
56
 
 
57
        test_num += 1
 
58
        comment = ("Test case {0} - SSL "
 
59
                   "switchover demote-master ".format(test_num))
 
60
        cmd_str = ("mysqlrpladmin.py --master={0} {1} {2} "
 
61
                   ).format(master_conn, ssl1, ssl_ca)
 
62
        cmd_opts = (" --new-master={0} --discover-slaves={1} "
 
63
                    "--rpl-user=rpluser:hispassword --demote-master "
 
64
                    "switchover".format(slave1_conn,
 
65
                                        master_conn.split('@')[0]))
 
66
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
67
        res = self.run_test_case(0, cmds, comment)
 
68
        if not res:
 
69
            raise MUTLibError("{0}: failed".format(comment))
 
70
        self.results.append("\n")
 
71
 
 
72
        test_num += 1
 
73
        comment = ("Test case {0} - SSL mysqlrplshow "
 
74
                   "NEW Master after demote".format(test_num))
 
75
        cmd_str = "mysqlrplshow.py --master={0} {1} {2}".format(slave1_conn,
 
76
                                                                ssl1, ssl_ca)
 
77
        cmd_opts = " --discover-slaves={0} ".format(master_conn.split('@')[0])
 
78
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
79
        res = self.run_test_case(0, cmds, comment)
 
80
        if not res:
 
81
            raise MUTLibError("{0}: failed".format(comment))
 
82
 
 
83
        test_num += 1
 
84
        comment = ("Test case {0} - SSL mysqlrplcheck "
 
85
                   "NEW Master after demote".format(test_num))
 
86
        cmd_opts = "--slave={0} --show-slave-status".format(master_conn)
 
87
        cmd_str = "mysqlrplcheck.py --master={0} {1} {2}".format(slave1_conn,
 
88
                                                                 ssl1, ssl_ca)
 
89
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
90
        res = self.run_test_case(0, cmds, comment)
 
91
        if not res:
 
92
            raise MUTLibError("{0}: failed".format(comment))
 
93
        self.results.append("\n")
 
94
 
 
95
        test_num += 1
 
96
        comment = ("Test case {0} - SSL mysqlrplcheck "
 
97
                   "NEW Master after demote".format(test_num))
 
98
        cmd_opts = "--slave={0} --show-slave-status".format(slave2_conn)
 
99
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
100
        res = self.run_test_case(0, cmds, comment)
 
101
        if not res:
 
102
            raise MUTLibError("{0}: failed".format(comment))
 
103
        self.results.append("\n")
 
104
 
 
105
        test_num += 1
 
106
        comment = ("Test case {0} - SSL mysqlrplcheck "
 
107
                   "NEW Master after demote".format(test_num))
 
108
        cmd_opts = "--slave={0} --show-slave-status".format(slave3_conn)
 
109
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
110
        res = self.run_test_case(0, cmds, comment)
 
111
        if not res:
 
112
            raise MUTLibError("{0}: failed".format(comment))
 
113
        self.results.append("\n")
 
114
 
 
115
        test_num += 1
 
116
        comment = ("Test case {0} - SSL "
 
117
                   "failover ".format(test_num))
 
118
        cmd_str = "mysqlrpladmin.py {0} {1} ".format(ssl1, ssl_ca)
 
119
        slaves = ",".join([slave2_conn, slave3_conn,
 
120
                           master_conn])
 
121
        cmd_opts = (" --slaves={0} --rpl-user=rpluser:hispassword "
 
122
                    "failover".format(slaves))
 
123
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
124
        res = self.run_test_case(0, cmds, comment)
 
125
        if not res:
 
126
            raise MUTLibError("{0}: failed".format(comment))
 
127
        self.results.append("\n")
 
128
 
 
129
        test_num += 1
 
130
        comment = ("Test case {0} - SSL mysqlrplshow "
 
131
                   "NEW Master after failover".format(test_num))
 
132
        cmd_str = "mysqlrplshow.py --master={0} {1} {2}".format(slave2_conn,
 
133
                                                                ssl1, ssl_ca)
 
134
        cmd_opts = " --discover-slaves={0} ".format(master_conn.split('@')[0])
 
135
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
136
        res = self.run_test_case(0, cmds, comment)
 
137
        if not res:
 
138
            raise MUTLibError("{0}: failed".format(comment))
 
139
 
 
140
        test_num += 1
 
141
        comment = ("Test case {0} - SSL mysqlrplcheck "
 
142
                   "NEW Master after demote".format(test_num))
 
143
        cmd_str = "mysqlrplcheck.py --master={0} {1} {2}".format(slave2_conn,
 
144
                                                                 ssl1, ssl_ca)
 
145
        cmd_opts = "--slave={0} --show-slave-status".format(master_conn)
 
146
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
147
        res = self.run_test_case(0, cmds, comment)
 
148
        if not res:
 
149
            raise MUTLibError("{0}: failed".format(comment))
 
150
        self.results.append("\n")
 
151
 
 
152
        test_num += 1
 
153
        comment = ("Test case {0} - SSL mysqlrplcheck "
 
154
                   "NEW Master after demote".format(test_num))
 
155
        cmd_opts = "--slave={0} --show-slave-status".format(slave3_conn)
 
156
        cmds = "{0} {1}".format(cmd_str, cmd_opts)
 
157
        res = self.run_test_case(0, cmds, comment)
 
158
        if not res:
 
159
            raise MUTLibError("{0}: failed".format(comment))
 
160
        self.results.append("\n")
 
161
 
 
162
        self.mask_results()
 
163
        return True