Skip to content

Commit

Permalink
Fixing dry-mode issues / regressions (#415)
Browse files Browse the repository at this point in the history
* 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

golang/mock@82ce4a7
(golang/mock#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
  • Loading branch information
omertuc committed Feb 10, 2022
1 parent c0a868f commit b3b57c6
Show file tree
Hide file tree
Showing 4 changed files with 7 additions and 8 deletions.
1 change: 1 addition & 0 deletions go.sum
Expand Up @@ -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=
Expand Down
Expand Up @@ -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 {
Expand Down
Expand Up @@ -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"
Expand Down Expand Up @@ -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)
}

Expand All @@ -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)
Expand Down Expand Up @@ -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)
Expand Down
4 changes: 2 additions & 2 deletions src/main/drymock/dry_mode_k8s_mock.go
Expand Up @@ -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
Expand Down

0 comments on commit b3b57c6

Please sign in to comment.