@@ -85,7 +85,7 @@ func (fa *faultTriggerActions) CheckAndRecoverEnv() error {
85
85
glog .Infof ("ensure all nodes are running" )
86
86
for _ , physicalNode := range fa .cfg .Nodes {
87
87
for _ , vNode := range physicalNode .Nodes {
88
- err := fa .StartNode (physicalNode .PhysicalNode , vNode )
88
+ err := fa .StartNode (physicalNode .PhysicalNode , vNode . IP )
89
89
if err != nil {
90
90
return err
91
91
}
@@ -108,15 +108,15 @@ func (fa *faultTriggerActions) CheckAndRecoverEnv() error {
108
108
glog .Infof ("ensure all static pods are running" )
109
109
for _ , physicalNode := range fa .cfg .APIServers {
110
110
for _ , vNode := range physicalNode .Nodes {
111
- err := fa .StartKubeAPIServer (vNode )
111
+ err := fa .StartKubeAPIServer (vNode . IP )
112
112
if err != nil {
113
113
return err
114
114
}
115
- err = fa .StartKubeControllerManager (vNode )
115
+ err = fa .StartKubeControllerManager (vNode . IP )
116
116
if err != nil {
117
117
return err
118
118
}
119
- err = fa .StartKubeScheduler (vNode )
119
+ err = fa .StartKubeScheduler (vNode . IP )
120
120
if err != nil {
121
121
return err
122
122
}
@@ -155,8 +155,13 @@ func (fa *faultTriggerActions) StopNode() (string, string, time.Time, error) {
155
155
Addr : fa .genFaultTriggerAddr (physicalNode ),
156
156
})
157
157
158
+ name := getNameByIP (fa .cfg , node )
159
+ if name == "" {
160
+ return "" , "" , now , fmt .Errorf ("failed to find %s's name in cfg:[%v]" , node , fa .cfg )
161
+ }
162
+
158
163
if err := faultCli .StopVM (& manager.VM {
159
- IP : node ,
164
+ Name : name ,
160
165
}); err != nil {
161
166
glog .Errorf ("failed to stop node %s on physical node: %s: %v" , node , physicalNode , err )
162
167
return "" , "" , now , err
@@ -187,14 +192,16 @@ func (fa *faultTriggerActions) StartNode(physicalNode string, node string) error
187
192
return err
188
193
}
189
194
195
+ name := getNameByIP (fa .cfg , node )
196
+
190
197
for _ , vm := range vms {
191
- if vm .IP == node && vm .Status == "running" {
198
+ if vm .Name == name && vm .Status == "running" {
192
199
return nil
193
200
}
194
201
}
195
202
196
203
if err := faultCli .StartVM (& manager.VM {
197
- IP : node ,
204
+ Name : name ,
198
205
}); err != nil {
199
206
glog .Errorf ("failed to start node %s on physical node %s: %v" , node , physicalNode , err )
200
207
return err
@@ -322,7 +329,7 @@ func (fa *faultTriggerActions) StartKubeProxyOrDie() {
322
329
func (fa * faultTriggerActions ) StopETCD (nodes ... string ) error {
323
330
if len (nodes ) == 0 {
324
331
for _ , ns := range fa .cfg .ETCDs {
325
- nodes = append (nodes , ns .Nodes ... )
332
+ nodes = append (nodes , getIps ( ns .Nodes ) ... )
326
333
}
327
334
}
328
335
@@ -346,7 +353,7 @@ func (fa *faultTriggerActions) StopETCDOrDie(nodes ...string) {
346
353
func (fa * faultTriggerActions ) StopKubelet (nodes ... string ) error {
347
354
if len (nodes ) == 0 {
348
355
for _ , ns := range fa .cfg .Nodes {
349
- nodes = append (nodes , ns .Nodes ... )
356
+ nodes = append (nodes , getIps ( ns .Nodes ) ... )
350
357
}
351
358
}
352
359
@@ -370,7 +377,7 @@ func (fa *faultTriggerActions) StopKubeletOrDie(nodes ...string) {
370
377
func (fa * faultTriggerActions ) StartKubelet (nodes ... string ) error {
371
378
if len (nodes ) == 0 {
372
379
for _ , ns := range fa .cfg .Nodes {
373
- nodes = append (nodes , ns .Nodes ... )
380
+ nodes = append (nodes , getIps ( ns .Nodes ) ... )
374
381
}
375
382
}
376
383
@@ -394,7 +401,7 @@ func (fa *faultTriggerActions) StartKubeletOrDie(nodes ...string) {
394
401
func (fa * faultTriggerActions ) StartETCD (nodes ... string ) error {
395
402
if len (nodes ) == 0 {
396
403
for _ , ns := range fa .cfg .ETCDs {
397
- nodes = append (nodes , ns .Nodes ... )
404
+ nodes = append (nodes , getIps ( ns .Nodes ) ... )
398
405
}
399
406
}
400
407
@@ -599,7 +606,7 @@ func getPhysicalNode(faultNode string, cfg *Config) string {
599
606
var physicalNode string
600
607
for _ , nodes := range cfg .Nodes {
601
608
for _ , node := range nodes .Nodes {
602
- if node == faultNode {
609
+ if node . IP == faultNode {
603
610
physicalNode = nodes .PhysicalNode
604
611
}
605
612
}
@@ -611,7 +618,26 @@ func getPhysicalNode(faultNode string, cfg *Config) string {
611
618
func getAllK8sNodes (cfg * Config ) []string {
612
619
var allNodes []string
613
620
for _ , nodes := range cfg .Nodes {
614
- allNodes = append (allNodes , nodes .Nodes ... )
621
+ allNodes = append (allNodes , getIps ( nodes .Nodes ) ... )
615
622
}
616
623
return allNodes
617
624
}
625
+
626
+ func getNameByIP (cfg * Config , ip string ) string {
627
+ for _ , nodes := range cfg .Nodes {
628
+ for _ , node := range nodes .Nodes {
629
+ if node .IP == ip {
630
+ return node .Name
631
+ }
632
+ }
633
+ }
634
+ return ""
635
+ }
636
+
637
+ func getIps (nodes []Node ) []string {
638
+ var ips []string
639
+ for _ , node := range nodes {
640
+ ips = append (ips , node .IP )
641
+ }
642
+ return ips
643
+ }
0 commit comments