func()

in shardingsphere-operator/pkg/controllers/chaos_controller.go [313:343]


func (r *ChaosReconciler) reconcilePodChaos(ctx context.Context, chaos *v1alpha1.Chaos, namespacedName types.NamespacedName) error {
	switch chaos.Spec.EmbedChaos.PodChaos.Action {
	case v1alpha1.PodFailure:
		fallthrough
	case v1alpha1.ContainerKill:
		fallthrough
	case v1alpha1.PodKill:
		pc, err := r.getPodChaosByNamespacedName(ctx, namespacedName)
		if err != nil {
			return err
		}
		if pc != nil {
			return r.updatePodChaos(ctx, chaos, pc)
		}

		return r.createPodChaos(ctx, chaos)
	case v1alpha1.CPUStress:
		fallthrough
	case v1alpha1.MemoryStress:
		sc, err := r.getStressChaosByNamespacedName(ctx, namespacedName)
		if err != nil {
			return err
		}
		if sc != nil {
			return r.updateStressChaos(ctx, chaos, sc)
		}

		return r.createStressChaos(ctx, chaos)
	}
	return nil
}