Skip to content

Commit

Permalink
Merge branch 'main' into bug-fix-lb
Browse files Browse the repository at this point in the history
  • Loading branch information
komer3 committed Mar 18, 2024
2 parents 4995b43 + 0e49a25 commit 16bcb09
Show file tree
Hide file tree
Showing 11 changed files with 141 additions and 11 deletions.
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
.idea
bin/*
kind-logs-*
cover.out
cover.out*
kubeconfig*
.devbox/*
docs/book
Expand Down
4 changes: 3 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -140,7 +140,9 @@ docs:

.PHONY: test
test: generate fmt vet envtest ## Run tests.
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(CACHE_BIN) -p path)" go test -race -timeout 60s ./... -coverprofile cover.out
KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(CACHE_BIN) -p path)" go test -race -timeout 60s `go list ./... | grep -v ./mock` -coverprofile cover.out.tmp
grep -v "zz_generated.deepcopy.go" cover.out.tmp > cover.out
rm cover.out.tmp

.PHONY: e2etest
e2etest: generate local-deploy chainsaw
Expand Down
6 changes: 5 additions & 1 deletion cloud/services/loadbalancers.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,11 @@ func CreateNodeBalancer(ctx context.Context, clusterScope *scope.ClusterScope, l
Label: NBLabel,
Tags: tags,
}
linodeNBs, err := clusterScope.LinodeClient.ListNodeBalancers(ctx, linodego.NewListOptions(1, listFilter.String()))
filter, err := listFilter.String()
if err != nil {
return nil, err
}
linodeNBs, err := clusterScope.LinodeClient.ListNodeBalancers(ctx, linodego.NewListOptions(1, filter))
if err != nil {
logger.Info("Failed to list NodeBalancers", "error", err.Error())

Expand Down
6 changes: 5 additions & 1 deletion controller/linodemachine_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,11 @@ func (r *LinodeMachineReconciler) reconcileCreate(
Label: machineScope.LinodeMachine.Name,
Tags: tags,
}
linodeInstances, err := machineScope.LinodeClient.ListInstances(ctx, linodego.NewListOptions(1, listFilter.String()))
filter, err := listFilter.String()
if err != nil {
return nil, err
}
linodeInstances, err := machineScope.LinodeClient.ListInstances(ctx, linodego.NewListOptions(1, filter))
if err != nil {
logger.Error(err, "Failed to list Linode machine instances")

Expand Down
6 changes: 5 additions & 1 deletion controller/linodevpc_controller_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,11 @@ func (r *LinodeVPCReconciler) reconcileVPC(ctx context.Context, vpcScope *scope.
Label: createConfig.Label,
Tags: nil,
}
if vpcs, err := vpcScope.LinodeClient.ListVPCs(ctx, linodego.NewListOptions(1, listFilter.String())); err != nil {
filter, err := listFilter.String()
if err != nil {
return err
}
if vpcs, err := vpcScope.LinodeClient.ListVPCs(ctx, linodego.NewListOptions(1, filter)); err != nil {
logger.Error(err, "Failed to list VPCs")

return err
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ require (
golang.org/x/tools v0.17.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
google.golang.org/protobuf v1.31.0 // indirect
google.golang.org/protobuf v1.33.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
gopkg.in/ini.v1 v1.67.0 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -254,8 +254,8 @@ google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13 h1:
google.golang.org/genproto/googleapis/rpc v0.0.0-20230920204549-e6e6cdab5c13/go.mod h1:KSqppvjFjtoCI+KGd4PELB0qLNxdJHRGqRI09mB6pQA=
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
Expand Down
6 changes: 3 additions & 3 deletions util/filter.go
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,11 @@ func (f Filter) MarshalJSON() ([]byte, error) {

// String returns the string representation of the encoded value from
// [Filter.MarshalJSON].
func (f Filter) String() string {
func (f Filter) String() (string, error) {
p, err := f.MarshalJSON()
if err != nil {
panic("this should not have failed")
return "", err
}

return string(p)
return string(p), nil
}
54 changes: 54 additions & 0 deletions util/filter_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package util

import "testing"

func TestString(t *testing.T) {
t.Parallel()
tests := []struct {
name string
filter Filter
expectErr bool
}{{
name: "success ID",
filter: Filter{
ID: Pointer(123),
Label: "",
Tags: nil,
},
expectErr: false,
}, {
name: "success label",
filter: Filter{
ID: nil,
Label: "test",
Tags: nil,
},
expectErr: false,
}, {
name: "success tags",
filter: Filter{
ID: nil,
Label: "",
Tags: []string{"testtag"},
},
expectErr: false,
}, {
name: "failure unmarshal",
filter: Filter{
ID: nil,
Label: "",
Tags: []string{},
},
expectErr: true,
}}
for _, tt := range tests {
testcase := tt
t.Run(testcase.name, func(t *testing.T) {
t.Parallel()
_, err := testcase.filter.String()
if testcase.expectErr && err != nil {
t.Error("expected err but got nil")
}
})
}
}
51 changes: 51 additions & 0 deletions util/helpers_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
package util

import (
"errors"
"testing"

"github.com/linode/linodego"
)

func TestIgnoreLinodeAPIError(t *testing.T) {
t.Parallel()
tests := []struct {
name string
err error
code int
shouldFilter bool
}{{
name: "Not Linode API error",
err: errors.New("foo"),
code: 0,
shouldFilter: false,
}, {
name: "Ignore not found Linode API error",
err: linodego.Error{
Response: nil,
Code: 400,
Message: "not found",
},
code: 400,
shouldFilter: true,
}, {
name: "Don't ignore not found Linode API error",
err: linodego.Error{
Response: nil,
Code: 400,
Message: "not found",
},
code: 500,
shouldFilter: false,
}}
for _, tt := range tests {
testcase := tt
t.Run(testcase.name, func(t *testing.T) {
t.Parallel()
err := IgnoreLinodeAPIError(testcase.err, testcase.code)
if testcase.shouldFilter && err != nil {
t.Error("expected err but got nil")
}
})
}
}
11 changes: 11 additions & 0 deletions version/version_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package version

import "testing"

func TestVersion(t *testing.T) {
t.Parallel()
vers := GetVersion()
if vers != "dev" {
t.Errorf("unset version should be dev, got %s", vers)
}
}

0 comments on commit 16bcb09

Please sign in to comment.