11package lib
22
33import (
4+ "context"
45 "fmt"
56 "github.com/litmuschaos/litmus-go/pkg/cerrors"
67 "github.com/palantir/stacktrace"
@@ -19,7 +20,7 @@ import (
1920 v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2021)
2122
22- func experimentExecution(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
23+ func experimentExecution(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
2324
2425 // Get the target pod details for the chaos execution
2526 // if the target pod is not defined it will derive the random target pod list using pod affected percentage
@@ -54,10 +55,10 @@ func experimentExecution(experimentsDetails *experimentTypes.ExperimentDetails,
5455 }
5556 }
5657
57- return runChaos(experimentsDetails, targetPodList, clients, resultDetails, eventsDetails, chaosDetails)
58+ return runChaos(ctx, experimentsDetails, targetPodList, clients, resultDetails, eventsDetails, chaosDetails)
5859}
5960
60- func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodList corev1.PodList, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
61+ func runChaos(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, targetPodList corev1.PodList, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
6162 if experimentsDetails.EngineName != "" {
6263 msg := "Injecting " + experimentsDetails.ExperimentName + " chaos on target pod"
6364 types.SetEngineEventAttributes(eventsDetails, types.ChaosInject, msg, "Normal", chaosDetails)
@@ -66,7 +67,7 @@ func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodLi
6667
6768 // run the probes during chaos
6869 if len(resultDetails.ProbeDetails) != 0 {
69- if err := probe.RunProbes(chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
70+ if err := probe.RunProbes(ctx, chaosDetails, clients, resultDetails, "DuringChaos", eventsDetails); err != nil {
7071 return err
7172 }
7273 }
@@ -89,7 +90,7 @@ func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodLi
8990 "Target Container": experimentsDetails.TargetContainer,
9091 })
9192
92- if err := createHelperPod(experimentsDetails, clients, chaosDetails, pod.Name, pod.Spec.NodeName, runID); err != nil {
93+ if err := createHelperPod(ctx, experimentsDetails, clients, chaosDetails, pod.Name, pod.Spec.NodeName, runID); err != nil {
9394 return stacktrace.Propagate(err, "could not create helper pod")
9495 }
9596
@@ -124,15 +125,18 @@ func runChaos(experimentsDetails *experimentTypes.ExperimentDetails, targetPodLi
124125}
125126
126127//PrepareChaos contains the preparation steps before chaos injection
127- func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
128+ func PrepareChaos(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, resultDetails *types.ResultDetails, eventsDetails *types.EventDetails, chaosDetails *types.ChaosDetails) error {
129+ // @TODO: setup tracing
130+ // ctx, span := otel.Tracer(telemetry.TracerName).Start(ctx, "name-your-chaos-fault")
131+ // defer span.End()
128132
129133 //Waiting for the ramp time before chaos injection
130134 if experimentsDetails.RampTime != 0 {
131135 log.Infof("[Ramp]: Waiting for the %vs ramp time before injecting chaos", experimentsDetails.RampTime)
132136 common.WaitForDuration(experimentsDetails.RampTime)
133137 }
134138 //Starting the CPU stress experiment
135- if err := experimentExecution(experimentsDetails, clients, resultDetails, eventsDetails, chaosDetails);err != nil {
139+ if err := experimentExecution(ctx, experimentsDetails, clients, resultDetails, eventsDetails, chaosDetails);err != nil {
136140 return stacktrace.Propagate(err, "could not execute chaos")
137141 }
138142 //Waiting for the ramp time after chaos injection
@@ -144,7 +148,10 @@ func PrepareChaos(experimentsDetails *experimentTypes.ExperimentDetails, clients
144148}
145149
146150// createHelperPod derive the attributes for helper pod and create the helper pod
147- func createHelperPod(experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, chaosDetails *types.ChaosDetails, targets, nodeName, runID string) error {
151+ func createHelperPod(ctx context.Context, experimentsDetails *experimentTypes.ExperimentDetails, clients clients.ClientSets, chaosDetails *types.ChaosDetails, targets, nodeName, runID string) error {
152+ // @TODO: setup tracing
153+ // ctx, span := otel.Tracer(telemetry.TracerName).Start(ctx, "CreateHelperPod")
154+ // defer span.End()
148155
149156 helperPod := &corev1.Pod{
150157 ObjectMeta: v1.ObjectMeta{
0 commit comments