From b3b57c6d1ab1e3962c902dc72c2908111371840b Mon Sep 17 00:00:00 2001 From: Omer Tuchfeld Date: Thu, 10 Feb 2022 15:22:02 +0100 Subject: [PATCH] Fixing dry-mode issues / regressions (#415) * NO-ISSUE: Swarm fix - controller looks at wrong env var to cluster hosts config * NO-ISSUE: Fix go-mock 1.5.0->1.6.0 backwards compat issue https://github.com/golang/mock/commit/82ce4a77a940bbed5cb83b18dda44488e4640213 (https://github.com/golang/mock/pull/558) introduced a breaking change to how go-mock works, this broke the dry-mode mock. This commit fixes it Also replaces ginkgo with a simple logger for more clear errors when mocks go wrong --- go.sum | 1 + .../assisted_installer_controller.go | 4 ++-- .../assisted_installer_main.go | 6 ++---- src/main/drymock/dry_mode_k8s_mock.go | 4 ++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/go.sum b/go.sum index f685c7e39..9e6db5016 100644 --- a/go.sum +++ b/go.sum @@ -640,6 +640,7 @@ github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0 h1:jlYHihg//f7RRwuPfptm04yp4s7O6Kw8EZiVYIGcH0g= github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= diff --git a/src/assisted_installer_controller/assisted_installer_controller.go b/src/assisted_installer_controller/assisted_installer_controller.go index 61ff4e61d..8270bdbbc 100644 --- a/src/assisted_installer_controller/assisted_installer_controller.go +++ b/src/assisted_installer_controller/assisted_installer_controller.go @@ -87,8 +87,8 @@ type ControllerConfig struct { MustGatherImage string `envconfig:"MUST_GATHER_IMAGE" required:"false" default:""` DryRunEnabled bool `envconfig:"DRY_ENABLE" required:"false" default:"false"` DryFakeRebootMarkerPath string `envconfig:"DRY_FAKE_REBOOT_MARKER_PATH" required:"false" default:""` - DryRunClusterHosts string `envconfig:"DRY_CLUSTER_HOSTS"` - // DryRunClusterHosts gets parsed into ParsedClusterHosts by config.DryParseClusterHosts + DryRunClusterHostsPath string `envconfig:"DRY_CLUSTER_HOSTS_PATH"` + // DryRunClusterHostsPath gets read parsed into ParsedClusterHosts by DryParseClusterHosts ParsedClusterHosts config.DryClusterHosts } type Controller interface { diff --git a/src/main/assisted-installer-controller/assisted_installer_main.go b/src/main/assisted-installer-controller/assisted_installer_main.go index dd11aa6bc..1843507bd 100644 --- a/src/main/assisted-installer-controller/assisted_installer_main.go +++ b/src/main/assisted-installer-controller/assisted_installer_main.go @@ -9,7 +9,6 @@ import ( "github.com/golang/mock/gomock" "github.com/kelseyhightower/envconfig" - "github.com/onsi/ginkgo" assistedinstallercontroller "github.com/openshift/assisted-installer/src/assisted_installer_controller" "github.com/openshift/assisted-installer/src/config" "github.com/openshift/assisted-installer/src/inventory_client" @@ -55,7 +54,7 @@ func main() { } if Options.ControllerConfig.DryRunEnabled { - if err = config.DryParseClusterHosts(Options.ControllerConfig.DryRunClusterHosts, &Options.ControllerConfig.ParsedClusterHosts); err != nil { + if err = config.DryParseClusterHosts(Options.ControllerConfig.DryRunClusterHostsPath, &Options.ControllerConfig.ParsedClusterHosts); err != nil { log.Fatalf("Failed to parse dry cluster hosts: %v", err) } @@ -76,7 +75,7 @@ func main() { log.Fatalf("Failed to create k8 client %v", err) } } else { - mockController := gomock.NewController(ginkgo.GinkgoT()) + mockController := gomock.NewController(logger) kc = k8s_client.NewMockK8SClient(mockController) mock, _ := kc.(*k8s_client.MockK8SClient) drymock.PrepareControllerDryMock(mock, logger, o, Options.ControllerConfig.ParsedClusterHosts) @@ -115,7 +114,6 @@ func main() { go assistedController.HackDNSAddressConflict(&wg) wg.Add(1) } - assistedController.SetReadyState() // While adding new routine don't miss to add wg.add(1) diff --git a/src/main/drymock/dry_mode_k8s_mock.go b/src/main/drymock/dry_mode_k8s_mock.go index 6c45c87b5..fa17ce192 100644 --- a/src/main/drymock/dry_mode_k8s_mock.go +++ b/src/main/drymock/dry_mode_k8s_mock.go @@ -77,8 +77,8 @@ func PrepareControllerDryMock(mockk8sclient *k8s_client.MockK8SClient, logger *l mockk8sclient.EXPECT().SetProxyEnvVars().Return(nil).AnyTimes() // Called a lot - mockk8sclient.EXPECT().CreateEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Do(func(args ...string) { - logger.Infof("Fake creating event %+v", args) + mockk8sclient.EXPECT().CreateEvent(gomock.Any(), gomock.Any(), gomock.Any(), gomock.Any()).Do(func(namespace, name, message, component string) { + logger.Infof("Fake creating event %s %s %s %s", namespace, name, message, component) }).AnyTimes() // Called by GetReadyState to make sure we're online