Skip to content

Commit a83f734

Browse files
minor fix (#9)
1 parent 45d96e4 commit a83f734

File tree

3 files changed

+34
-17
lines changed

3 files changed

+34
-17
lines changed

chaos.go

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,17 @@ const (
2121
// ScopeAll means chaos works on all host
2222
ScopeAll = "all"
2323

24-
// ModeError means return error for DNS request
25-
ModeError = "error"
26-
// ModeRandom means return random IP for DNS request
27-
ModeRandom = "random"
24+
// ActionError means return error for DNS request
25+
ActionError = "error"
26+
// ActionRandom means return random IP for DNS request
27+
ActionRandom = "random"
2828
)
2929

3030
// PodInfo saves some information for pod
3131
type PodInfo struct {
3232
Namespace string
3333
Name string
34-
Mode string
34+
Action string
3535
Scope string
3636
IP string
3737
LastUpdateTime time.Time
@@ -49,7 +49,7 @@ func (p *PodInfo) IsOverdue() bool {
4949
}
5050

5151
func (k Kubernetes) chaosDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg, state request.Request, podInfo *PodInfo) (int, error) {
52-
if podInfo.Mode == ModeError {
52+
if podInfo.Action == ActionError {
5353
return dns.RcodeServerFailure, nil
5454
}
5555

@@ -165,9 +165,11 @@ func (k Kubernetes) needChaos(podInfo *PodInfo, state request.Request) bool {
165165
return true
166166
}
167167

168+
// FIXME: this function is wrong, need to fix it
168169
qname := state.QName()
169170
zone := plugin.Zones(k.Zones).Matches(qname)
170171

172+
log.Infof("qname: %s, zone: %s, scope: %s, zones: %s", qname, zone, podInfo.Scope, k.Zones)
171173
if zone == "" {
172174
// is outer host
173175
if podInfo.Scope == ScopeOuter {
@@ -184,5 +186,10 @@ func (k Kubernetes) needChaos(podInfo *PodInfo, state request.Request) bool {
184186
}
185187

186188
func (k Kubernetes) getPodFromCluster(namespace, name string) (*api.Pod, error) {
187-
return k.Client.Pods(namespace).Get(context.Background(), name, meta.GetOptions{})
189+
pods := k.Client.Pods(namespace)
190+
if pods == nil {
191+
log.Infof("getPodFromCluster, pods is nil")
192+
return nil, nil
193+
}
194+
return pods.Get(context.Background(), name, meta.GetOptions{})
188195
}

grpc_server.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,13 @@ import (
1212

1313
// CreateGRPCServer ...
1414
func (k Kubernetes) CreateGRPCServer() error {
15-
log.Info("CreateGRPCServer")
15+
if k.grpcPort == 0 {
16+
// use default port
17+
k.grpcPort = 9288
18+
19+
}
20+
log.Infof("CreateGRPCServer on port %d", k.grpcPort)
21+
1622
grpcListener, err := net.Listen("tcp", fmt.Sprintf(":%d", k.grpcPort))
1723
if err != nil {
1824
return err
@@ -24,6 +30,7 @@ func (k Kubernetes) CreateGRPCServer() error {
2430
if err := s.Serve(grpcListener); err != nil {
2531
log.Errorf("grpc serve error %v", err)
2632
}
33+
log.Info("grpc server end")
2734
}()
2835
log.Info("CreateGRPCServer end")
2936
return nil
@@ -41,6 +48,7 @@ func (k Kubernetes) SetDNSChaos(ctx context.Context, req *pb.SetDNSChaosRequest)
4148
for _, pod := range req.Pods {
4249
v1Pod, err := k.getPodFromCluster(pod.Namespace, pod.Name)
4350
if err != nil {
51+
log.Errorf("fail to getPodFromCluster %v", err)
4452
return nil, err
4553
}
4654

@@ -57,7 +65,7 @@ func (k Kubernetes) SetDNSChaos(ctx context.Context, req *pb.SetDNSChaosRequest)
5765
podInfo := &PodInfo{
5866
Namespace: pod.Namespace,
5967
Name: pod.Name,
60-
Mode: req.Mode,
68+
Action: req.Action,
6169
Scope: req.Scope,
6270
IP: v1Pod.Status.PodIP,
6371
LastUpdateTime: time.Now(),
@@ -77,6 +85,11 @@ func (k Kubernetes) CancelDNSChaos(ctx context.Context, req *pb.CancelDNSChaosRe
7785
log.Infof("receive CancelDNSChaos request %v", req)
7886
k.Lock()
7987
defer k.Unlock()
88+
89+
if _, ok := k.chaosMap[req.Name]; !ok {
90+
return nil, nil
91+
}
92+
8093
for _, pod := range k.chaosMap[req.Name].Pods {
8194
if _, ok := k.podMap[pod.Namespace]; ok {
8295
if podInfo, ok := k.podMap[pod.Namespace][pod.Name]; ok {

setup.go

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,6 @@ func setup(c *caddy.Controller) error {
4343
return plugin.Error(pluginName, err)
4444
}
4545

46-
err = k.CreateGRPCServer()
47-
if err != nil {
48-
return plugin.Error(pluginName, err)
49-
}
50-
5146
err = k.InitKubeCache(context.Background())
5247
if err != nil {
5348
return plugin.Error(pluginName, err)
@@ -66,6 +61,11 @@ func setup(c *caddy.Controller) error {
6661
return nil
6762
})
6863

64+
err = k.CreateGRPCServer()
65+
if err != nil {
66+
return plugin.Error(pluginName, err)
67+
}
68+
6969
return nil
7070
}
7171

@@ -287,9 +287,6 @@ func ParseStanza(c *caddy.Controller) (*Kubernetes, error) {
287287
return nil, err
288288
}
289289
k8s.grpcPort = port
290-
} else {
291-
// use default port
292-
k8s.grpcPort = 9288
293290
}
294291
default:
295292
return nil, c.Errf("unknown property '%s'", c.Val())

0 commit comments

Comments
 (0)