From ab52e348a4a463744528d36caaac6533b35c4b68 Mon Sep 17 00:00:00 2001 From: Ce Gao Date: Fri, 31 Jul 2020 12:33:33 +0800 Subject: [PATCH] feat: Implement in v1beta1 Signed-off-by: Ce Gao --- .../experiment/experiment_controller.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/controller.v1beta1/experiment/experiment_controller.go b/pkg/controller.v1beta1/experiment/experiment_controller.go index 1fc4ec2ef3d..a10960f82d2 100644 --- a/pkg/controller.v1beta1/experiment/experiment_controller.go +++ b/pkg/controller.v1beta1/experiment/experiment_controller.go @@ -372,7 +372,7 @@ func (r *ReconcileExperiment) createTrials(instance *experimentsv1beta1.Experime func (r *ReconcileExperiment) deleteTrials(instance *experimentsv1beta1.Experiment, trials []trialsv1beta1.Trial, - deleteCount int32) error { + expectedDeletions int32) error { logger := log.WithValues("Experiment", types.NamespacedName{Name: instance.GetName(), Namespace: instance.GetNamespace()}) trialSlice := trials @@ -381,7 +381,15 @@ func (r *ReconcileExperiment) deleteTrials(instance *experimentsv1beta1.Experime After(trialSlice[j].CreationTimestamp.Time) }) - for i := 0; i < int(deleteCount); i++ { + expected := int(expectedDeletions) + actual := len(trialSlice) + // If the number of trials < expected, we delete all we have. + if actual < expected { + logger.Info("deleteTrials does not find enough trials, we will delete all trials instead", + "expectedDeletions", expected, "trials", actual) + expected = actual + } + for i := 0; i < expected; i++ { if err := r.Delete(context.TODO(), &trialSlice[i]); err != nil { logger.Error(err, "Trial Delete error") return err