@@ -39,23 +39,31 @@ import (
39
39
40
40
var (
41
41
MIGRATE_ETCD_STEPS = []int {
42
- playbook .STOP_SERVICE ,
43
- playbook .CLEAN_SERVICE , // only container
42
+ playbook .ADD_ETCD_MEMBER ,
44
43
playbook .PULL_IMAGE ,
45
44
playbook .CREATE_CONTAINER ,
46
45
playbook .SYNC_CONFIG ,
46
+ playbook .AMEND_ETCD_CONFIG ,
47
47
playbook .START_ETCD ,
48
+ playbook .AMEND_MDS_CONFIG , // add a etcd endpoint
49
+ playbook .RESTART_SERVICE , // restart all mds then add a etcd endpoint in mds.conf
50
+ playbook .REMOVE_ETCD_MEMBER ,
51
+ playbook .STOP_SERVICE ,
52
+ playbook .CLEAN_SERVICE , // only container
53
+ // playbook.AMEND_MDS_CONFIG, // remove a etcd endpoint
54
+ // playbook.RESTART_SERVICE, // restart all mds then remove a etcd endpoint in mds.conf
55
+ // playbook.RELOAD_METASERVER
48
56
playbook .UPDATE_TOPOLOGY ,
49
57
}
50
58
51
59
// mds
52
60
MIGRATE_MDS_STEPS = []int {
53
- playbook .STOP_SERVICE ,
54
- playbook .CLEAN_SERVICE , // only container
55
61
playbook .PULL_IMAGE ,
56
62
playbook .CREATE_CONTAINER ,
57
63
playbook .SYNC_CONFIG ,
58
64
playbook .START_MDS ,
65
+ playbook .STOP_SERVICE ,
66
+ playbook .CLEAN_SERVICE , // only container
59
67
playbook .UPDATE_TOPOLOGY ,
60
68
}
61
69
@@ -157,7 +165,7 @@ func checkMigrateTopology(curveadm *cli.CurveAdm, data string) error {
157
165
} else if len (dcs2add ) < len (dcs2del ) {
158
166
return errno .ERR_DELETE_SERVICE_WHILE_MIGRATING_IS_DENIED
159
167
}
160
- // len(dcs2add) == len(dcs2del)
168
+
161
169
if len (dcs2add ) == 0 {
162
170
return errno .ERR_NO_SERVICES_FOR_MIGRATING
163
171
}
@@ -199,6 +207,7 @@ func genMigratePlaybook(curveadm *cli.CurveAdm,
199
207
migrates := getMigrates (curveadm , data )
200
208
role := migrates [0 ].From .GetRole ()
201
209
steps := MIGRATE_ROLE_STEPS [role ]
210
+ etcdDCs := curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_ETCD )
202
211
203
212
// post clean
204
213
if options .clean {
@@ -221,10 +230,14 @@ func genMigratePlaybook(curveadm *cli.CurveAdm,
221
230
config := dcs2add
222
231
switch step {
223
232
case playbook .STOP_SERVICE ,
224
- playbook .CLEAN_SERVICE :
233
+ playbook .CLEAN_SERVICE ,
234
+ playbook .ADD_ETCD_MEMBER :
225
235
config = dcs2del
226
236
case playbook .BACKUP_ETCD_DATA :
227
237
config = curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_ETCD )
238
+ case playbook .AMEND_MDS_CONFIG ,
239
+ playbook .RESTART_SERVICE :
240
+ config = curveadm .FilterDeployConfigByRole (dcs , topology .ROLE_MDS )
228
241
case
229
242
playbook .CREATE_PHYSICAL_POOL ,
230
243
playbook .CREATE_LOGICAL_POOL ,
@@ -251,6 +264,11 @@ func genMigratePlaybook(curveadm *cli.CurveAdm,
251
264
optionsKV [comm .KEY_POOLSET ] = poolset
252
265
case playbook .UPDATE_TOPOLOGY :
253
266
optionsKV [comm .KEY_NEW_TOPOLOGY_DATA ] = data
267
+ case playbook .ADD_ETCD_MEMBER ,
268
+ playbook .AMEND_ETCD_CONFIG ,
269
+ playbook .AMEND_MDS_CONFIG :
270
+ optionsKV [comm .KEY_MIGRATE_SERVERS ] = migrates
271
+ optionsKV [comm .KEY_CLUSTER_DCS ] = etcdDCs
254
272
}
255
273
256
274
pb .AddStep (& playbook.PlaybookStep {
0 commit comments