From 01139290614194c954815586e93420ba3e1b1cd2 Mon Sep 17 00:00:00 2001 From: Maya Rashish Date: Tue, 7 Jul 2020 15:19:29 +0300 Subject: [PATCH] Simplify ensureKubeVirtStorageConfig. This function only has upgrade logic because it's called by reconcile. By calling it from ensureCDI we can drop the upgrade logic. Catch up with this signature in tests. Signed-off-by: Maya Rashish --- .../hyperconverged_controller.go | 20 +++++++++++-------- ...perconverged_controller_components_test.go | 6 ++---- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/pkg/controller/hyperconverged/hyperconverged_controller.go b/pkg/controller/hyperconverged/hyperconverged_controller.go index 7a010d126..1d739430d 100644 --- a/pkg/controller/hyperconverged/hyperconverged_controller.go +++ b/pkg/controller/hyperconverged/hyperconverged_controller.go @@ -475,7 +475,6 @@ func (r *ReconcileHyperConverged) ensureHco(req *hcoRequest) error { for _, f := range []func(*hcoRequest) (upgradeDone bool, err error){ r.ensureKubeVirtPriorityClass, r.ensureKubeVirtConfig, - r.ensureKubeVirtStorageConfig, r.ensureKubeVirt, r.ensureCDI, r.ensureNetworkAddons, @@ -958,6 +957,11 @@ func (r *ReconcileHyperConverged) ensureCDI(req *hcoRequest) (upgradeDone bool, req.logger.Info("CDI already exists", "CDI.Namespace", found.Namespace, "CDI.Name", found.Name) + err = r.ensureKubeVirtStorageConfig(req) + if err != nil { + return false, err + } + err = r.ensureKubeVirtStorageRole(req) if err != nil { return false, err @@ -1604,10 +1608,10 @@ func (r *ReconcileHyperConverged) ensureKubeVirtStorageRoleBinding(req *hcoReque return nil } -func (r *ReconcileHyperConverged) ensureKubeVirtStorageConfig(req *hcoRequest) (upgradeDone bool, err error) { +func (r *ReconcileHyperConverged) ensureKubeVirtStorageConfig(req *hcoRequest) error { kubevirtStorageConfig := newKubeVirtStorageConfigForCR(req.instance, req.Namespace) - if err = controllerutil.SetControllerReference(req.instance, kubevirtStorageConfig, r.scheme); err != nil { - return false, err + if err := controllerutil.SetControllerReference(req.instance, kubevirtStorageConfig, r.scheme); err != nil { + return err } key, err := client.ObjectKeyFromObject(kubevirtStorageConfig) @@ -1619,22 +1623,22 @@ func (r *ReconcileHyperConverged) ensureKubeVirtStorageConfig(req *hcoRequest) ( err = r.client.Get(req.ctx, key, found) if err != nil && apierrors.IsNotFound(err) { req.logger.Info("Creating kubevirt storage config") - return false, r.client.Create(req.ctx, kubevirtStorageConfig) + return r.client.Create(req.ctx, kubevirtStorageConfig) } if err != nil { - return false, err + return err } req.logger.Info("KubeVirt storage config already exists", "KubeVirtConfig.Namespace", found.Namespace, "KubeVirtConfig.Name", found.Name) // Add it to the list of RelatedObjects if found objectRef, err := reference.GetReference(r.scheme, found) if err != nil { - return false, err + return err } objectreferencesv1.SetObjectReference(&req.instance.Status.RelatedObjects, *objectRef) - return req.componentUpgradeInProgress, nil + return nil } func newKubeVirtMetricsAggregationForCR(cr *hcov1alpha1.HyperConverged, namespace string) *sspv1.KubevirtMetricsAggregation { diff --git a/pkg/controller/hyperconverged/hyperconverged_controller_components_test.go b/pkg/controller/hyperconverged/hyperconverged_controller_components_test.go index 5fb0e9144..1c23d875f 100644 --- a/pkg/controller/hyperconverged/hyperconverged_controller_components_test.go +++ b/pkg/controller/hyperconverged/hyperconverged_controller_components_test.go @@ -257,8 +257,7 @@ var _ = Describe("HyperConverged Components", func() { expectedResource := newKubeVirtStorageConfigForCR(hco, namespace) cl := initClient([]runtime.Object{}) r := initReconciler(cl) - upgradeDone, err := r.ensureKubeVirtStorageConfig(req) - Expect(upgradeDone).To(BeFalse()) + err := r.ensureKubeVirtStorageConfig(req) Expect(err).To(BeNil()) foundResource := &corev1.ConfigMap{} @@ -277,8 +276,7 @@ var _ = Describe("HyperConverged Components", func() { expectedResource.ObjectMeta.SelfLink = fmt.Sprintf("/apis/v1/namespaces/%s/dummies/%s", expectedResource.Namespace, expectedResource.Name) cl := initClient([]runtime.Object{hco, expectedResource}) r := initReconciler(cl) - upgradeDone, err := r.ensureKubeVirtStorageConfig(req) - Expect(upgradeDone).To(BeFalse()) + err := r.ensureKubeVirtStorageConfig(req) Expect(err).To(BeNil()) // Check HCO's status