summaryrefslogtreecommitdiff
path: root/mysql-test/t/im_options_set.imtest
blob: 785c6d05fef56b7236cd48d603b7a2b189d669ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
###########################################################################
#
# This file contains test for (3) test suite.
#
# Consult WL#2789 for more information.
#
###########################################################################

#
# Check the options-management commands:
#  - SET;
#  - FLUSH INSTANCES;
#
# Let's test the commands on the option 'server_id'. It's expected that
# originally the instances have the following server ids:
#  - mysqld1: 1
#  - mysqld2: 2
#
#  1. SET <instance_id>.server_id= SERVER_ID); where SERVER_ID is 11 or 12.
#   1.1. check that the configuration file has been updated (i.e.  contains
#     server_id=SERVER_ID for the instance);
#   1.2. (for mysqld1) check that the running instance has not been affected:
#     connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
#     returns zero;
#   1.3. check that internal cache of Instance Manager has not been affected
#     (i.e.  SHOW INSTANCE OPTIONS <instance> does not contain updated value).
#
#  2. FLUSH INSTANCES;
#   2.1. check that the configuration file has not been updated;
#   2.2. (for mysqld1) check that the running instance has not been affected:
#     connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
#     returns zero value;
#   2.3. check that internal cache of Instance Manager has been updated (i.e.
#     SHOW INSTANCE OPTIONS <instance> contains 'server_id=SERVER_ID' line).
#
#  3. Restore options.
#

###########################################################################

--source include/im_check_os.inc

###########################################################################
#
# 0. Check starting conditions.
#
###########################################################################

# - check the configuration file;

--exec grep server_id $MYSQL_TEST_DIR/var/im.cnf ;

# - check the running instances.

--connect (mysql1_con,localhost,root,,mysql,$IM_MYSQLD1_PORT,$IM_MYSQLD1_SOCK)

--connection mysql1_con

SHOW VARIABLES LIKE 'server_id';

--connection default

# - check the internal cache.
#   TODO: we should check only server_id option here.

# SHOW INSTANCE OPTIONS mysqld1;
# SHOW INSTANCE OPTIONS mysqld2;

###########################################################################
#
#  1. SET <instance_id>.server_id= SERVER_ID); where SERVER_ID is 11 or 12.
#
###########################################################################

# * mysqld1

SET mysqld1.server_id = 11;

#   - check that the configuration file has been updated (i.e. contains
#     server_id=SERVER_ID for the instance);

--exec grep server_id $MYSQL_TEST_DIR/var/im.cnf ;

#   - (for mysqld1) check that the running instance has not been affected:
#     connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
#     returns zero;

--connection mysql1_con

SHOW VARIABLES LIKE 'server_id';

--connection default

#   - check that internal cache of Instance Manager has not been affected
#     (i.e.  SHOW INSTANCE OPTIONS <instance> does not contain updated value).
#     TODO: we should check only server_id option here.

# SHOW INSTANCE OPTIONS mysqld1;

# * mysqld2

SET mysqld2.server_id = 12;

#   - check that the configuration file has been updated (i.e.  contains
#     server_id=SERVER_ID for the instance);

--exec grep server_id $MYSQL_TEST_DIR/var/im.cnf ;

#   - check that internal cache of Instance Manager has not been affected
#     (i.e.  SHOW INSTANCE OPTIONS <instance> does not contain updated value).
#     TODO: we should check only server_id option here.

# SHOW INSTANCE OPTIONS mysqld2;

###########################################################################
#
# 2. FLUSH INSTANCES;
#
###########################################################################

FLUSH INSTANCES;

#   - check that the configuration file has not been updated;

--exec grep server_id $MYSQL_TEST_DIR/var/im.cnf ;

#   - (for mysqld1) check that the running instance has not been affected:
#     connect to the instance and check that 'SHOW VARIABLES LIKE 'server_id''
#     returns zero value;

--connection mysql1_con

SHOW VARIABLES LIKE 'server_id';

--connection default

#   - check that internal cache of Instance Manager has been updated (i.e.
#     SHOW INSTANCE OPTIONS <instance> contains 'server_id=' line).
#     TODO: we should check only server_id option here.

# SHOW INSTANCE OPTIONS mysqld1;
# SHOW INSTANCE OPTIONS mysqld2;