...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package recover
17
18 import (
19 "context"
20
21 "github.com/pkg/errors"
22
23 ctrlclient "github.com/chaos-mesh/chaos-mesh/pkg/ctrl/client"
24 )
25
26 type stressRecoverer struct {
27 memStressCleaner Recoverer
28 stressNGCleaner Recoverer
29 }
30
31 func StressRecoverer(client *ctrlclient.CtrlClient) Recoverer {
32 return &stressRecoverer{
33 memStressCleaner: newCleanProcessRecoverer(client, "memStress"),
34 stressNGCleaner: newCleanProcessRecoverer(client, "stress-ng"),
35 }
36 }
37
38 func (r *stressRecoverer) Recover(ctx context.Context, pod *PartialPod) error {
39 err := r.stressNGCleaner.Recover(ctx, pod)
40 if err != nil {
41 return errors.Wrap(err, "clean stress-ng processes")
42 }
43 err = r.memStressCleaner.Recover(ctx, pod)
44 if err != nil {
45 return errors.Wrap(err, "clean memStress processes")
46 }
47 return nil
48 }
49