From d4d7ed79de2e903cce686da924e95094b064a3d7 Mon Sep 17 00:00:00 2001 From: Luca Comellini Date: Wed, 28 Feb 2024 19:39:13 -0800 Subject: [PATCH] Speed up generation --- internal/framework/controller/fakes.go | 6 ++++-- internal/framework/controller/getter.go | 2 +- internal/framework/events/first_eventbatch_preparer.go | 4 ++-- internal/framework/events/handler.go | 3 ++- internal/framework/status/k8s_updater.go | 3 ++- internal/framework/status/leader_aware_group_updater.go | 2 +- internal/mode/static/handler.go | 3 ++- internal/mode/static/log_level_setters.go | 2 +- internal/mode/static/nginx/config/generator.go | 3 ++- internal/mode/static/nginx/file/folders.go | 4 ++-- internal/mode/static/nginx/file/manager.go | 6 ++++-- internal/mode/static/nginx/runtime/manager.go | 4 +++- internal/mode/static/state/change_processor.go | 4 +++- internal/mode/static/state/resolver/resolver.go | 3 ++- internal/mode/static/state/validation/validator.go | 6 ++++-- internal/mode/static/telemetry/collector.go | 4 ++-- internal/mode/static/telemetry/exporter.go | 3 ++- internal/mode/static/telemetry/job_worker.go | 2 +- internal/mode/static/usage/reporter.go | 5 +++-- 19 files changed, 43 insertions(+), 26 deletions(-) diff --git a/internal/framework/controller/fakes.go b/internal/framework/controller/fakes.go index b54f5fd24d..9babcf0e26 100644 --- a/internal/framework/controller/fakes.go +++ b/internal/framework/controller/fakes.go @@ -5,6 +5,8 @@ import ( _ "sigs.k8s.io/controller-runtime/pkg/manager" // used below to generate a fake ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 sigs.k8s.io/controller-runtime/pkg/manager.Manager +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 sigs.k8s.io/controller-runtime/pkg/client.FieldIndexer +//counterfeiter:generate sigs.k8s.io/controller-runtime/pkg/manager.Manager + +//counterfeiter:generate sigs.k8s.io/controller-runtime/pkg/client.FieldIndexer diff --git a/internal/framework/controller/getter.go b/internal/framework/controller/getter.go index 290a249708..45ca0db6d6 100644 --- a/internal/framework/controller/getter.go +++ b/internal/framework/controller/getter.go @@ -6,7 +6,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . Getter +//counterfeiter:generate . Getter // Getter gets a resource from the k8s API. // It allows us to mock the client.Reader.Get method. diff --git a/internal/framework/events/first_eventbatch_preparer.go b/internal/framework/events/first_eventbatch_preparer.go index d905239b8b..b8bd48c470 100644 --- a/internal/framework/events/first_eventbatch_preparer.go +++ b/internal/framework/events/first_eventbatch_preparer.go @@ -11,7 +11,7 @@ import ( "sigs.k8s.io/controller-runtime/pkg/client" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . FirstEventBatchPreparer +//counterfeiter:generate . FirstEventBatchPreparer // FirstEventBatchPreparer prepares the first batch of events to be processed by the EventHandler. // The first batch includes the UpsertEvents for all relevant resources in the cluster. @@ -20,7 +20,7 @@ type FirstEventBatchPreparer interface { Prepare(ctx context.Context) (EventBatch, error) } -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . Reader +//counterfeiter:generate . Reader // Reader allows getting and listing resources from a cache. // This interface is introduced for testing to mock the methods from diff --git a/internal/framework/events/handler.go b/internal/framework/events/handler.go index 2d512c7ba7..f66fa06440 100644 --- a/internal/framework/events/handler.go +++ b/internal/framework/events/handler.go @@ -6,7 +6,8 @@ import ( "github.com/go-logr/logr" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . EventHandler +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate +//counterfeiter:generate . EventHandler // EventHandler handles events. type EventHandler interface { diff --git a/internal/framework/status/k8s_updater.go b/internal/framework/status/k8s_updater.go index 88a2462d57..3840b7d744 100644 --- a/internal/framework/status/k8s_updater.go +++ b/internal/framework/status/k8s_updater.go @@ -9,7 +9,8 @@ import ( // K8sUpdater updates a resource from the k8s API. // It allows us to mock the client.Reader.Status.Update method. // -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . K8sUpdater +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate +//counterfeiter:generate . K8sUpdater type K8sUpdater interface { // Update is from client.StatusClient.SubResourceWriter. Update(ctx context.Context, obj client.Object, opts ...client.SubResourceUpdateOption) error diff --git a/internal/framework/status/leader_aware_group_updater.go b/internal/framework/status/leader_aware_group_updater.go index 1eb1f768ea..81f8d95cd8 100644 --- a/internal/framework/status/leader_aware_group_updater.go +++ b/internal/framework/status/leader_aware_group_updater.go @@ -11,7 +11,7 @@ import ( // Note: this interface is created so that it that we can create a fake from it and use it // in mode/static/handler_test.go (to avoid import cycles). // -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . GroupUpdater +//counterfeiter:generate . GroupUpdater type GroupUpdater interface { UpdateGroup(ctx context.Context, name string, reqs ...UpdateRequest) } diff --git a/internal/mode/static/handler.go b/internal/mode/static/handler.go index fe4f971b71..e96afb4054 100644 --- a/internal/mode/static/handler.go +++ b/internal/mode/static/handler.go @@ -36,7 +36,8 @@ type handlerMetricsCollector interface { ObserveLastEventBatchProcessTime(time.Duration) } -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . secretStorer +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate +//counterfeiter:generate . secretStorer // secretStorer should store the usage Secret that contains the credentials for NGINX Plus usage reporting. type secretStorer interface { diff --git a/internal/mode/static/log_level_setters.go b/internal/mode/static/log_level_setters.go index 8f44809b87..072c760e44 100644 --- a/internal/mode/static/log_level_setters.go +++ b/internal/mode/static/log_level_setters.go @@ -9,7 +9,7 @@ import ( "go.uber.org/zap/zapcore" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . logLevelSetter +//counterfeiter:generate . logLevelSetter // logLevelSetter defines an interface for setting the logging level of a logger. type logLevelSetter interface { diff --git a/internal/mode/static/nginx/config/generator.go b/internal/mode/static/nginx/config/generator.go index 4a39de2091..9d5c6e8fb5 100644 --- a/internal/mode/static/nginx/config/generator.go +++ b/internal/mode/static/nginx/config/generator.go @@ -7,7 +7,8 @@ import ( "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/state/dataplane" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . Generator +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate +//counterfeiter:generate . Generator const ( // configFolder is the folder where NGINX configuration files are stored. diff --git a/internal/mode/static/nginx/file/folders.go b/internal/mode/static/nginx/file/folders.go index 4e457a0e9a..ad0669a395 100644 --- a/internal/mode/static/nginx/file/folders.go +++ b/internal/mode/static/nginx/file/folders.go @@ -6,9 +6,9 @@ import ( "path/filepath" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 io/fs.DirEntry +//counterfeiter:generate io/fs.DirEntry -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . ClearFoldersOSFileManager +//counterfeiter:generate . ClearFoldersOSFileManager // ClearFoldersOSFileManager is an interface that exposes File I/O operations for ClearFolders. // Used for unit testing. diff --git a/internal/mode/static/nginx/file/manager.go b/internal/mode/static/nginx/file/manager.go index 4ac6a3163b..784273d110 100644 --- a/internal/mode/static/nginx/file/manager.go +++ b/internal/mode/static/nginx/file/manager.go @@ -9,6 +9,8 @@ import ( "github.com/go-logr/logr" ) +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate + const ( // regularFileMode defines the default file mode for regular files. regularFileMode = 0o644 @@ -44,7 +46,7 @@ type File struct { Type Type } -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . OSFileManager +//counterfeiter:generate . OSFileManager // OSFileManager is an interface that exposes File I/O operations for ManagerImpl. // Used for unit testing. @@ -61,7 +63,7 @@ type OSFileManager interface { Write(file *os.File, contents []byte) error } -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . Manager +//counterfeiter:generate . Manager // Manager manages NGINX configuration files. type Manager interface { diff --git a/internal/mode/static/nginx/runtime/manager.go b/internal/mode/static/nginx/runtime/manager.go index add590a443..a79c74b42c 100644 --- a/internal/mode/static/nginx/runtime/manager.go +++ b/internal/mode/static/nginx/runtime/manager.go @@ -16,6 +16,8 @@ import ( "k8s.io/apimachinery/pkg/util/wait" ) +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate + const ( pidFile = "/var/run/nginx/nginx.pid" pidFileTimeout = 10000 * time.Millisecond @@ -29,7 +31,7 @@ type ( var childProcPathFmt = "/proc/%[1]v/task/%[1]v/children" -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . Manager +//counterfeiter:generate . Manager // Manager manages the runtime of NGINX. type Manager interface { diff --git a/internal/mode/static/state/change_processor.go b/internal/mode/static/state/change_processor.go index 223c08a686..0a57d8cd92 100644 --- a/internal/mode/static/state/change_processor.go +++ b/internal/mode/static/state/change_processor.go @@ -25,6 +25,8 @@ import ( "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/state/validation" ) +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate + // ChangeType is the type of change that occurred based on a k8s object event. type ChangeType int @@ -38,7 +40,7 @@ const ( ClusterStateChange ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . ChangeProcessor +//counterfeiter:generate . ChangeProcessor type extractGVKFunc func(obj client.Object) schema.GroupVersionKind diff --git a/internal/mode/static/state/resolver/resolver.go b/internal/mode/static/state/resolver/resolver.go index 06a14f8675..303fb6d1bf 100644 --- a/internal/mode/static/state/resolver/resolver.go +++ b/internal/mode/static/state/resolver/resolver.go @@ -13,7 +13,8 @@ import ( "github.com/nginxinc/nginx-gateway-fabric/internal/framework/controller/index" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . ServiceResolver +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate +//counterfeiter:generate . ServiceResolver // ServiceResolver resolves a Service's NamespacedName and ServicePort to a list of Endpoints. // Returns an error if the Service or Service Port cannot be resolved. diff --git a/internal/mode/static/state/validation/validator.go b/internal/mode/static/state/validation/validator.go index 3bc5847004..6f6dd12b4f 100644 --- a/internal/mode/static/state/validation/validator.go +++ b/internal/mode/static/state/validation/validator.go @@ -1,5 +1,7 @@ package validation +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate + // Validators include validators for API resources from the perspective of a data-plane. // It is used for fields that propagate into the data plane configuration. For example, the path in a routing rule. // However, not all such fields are validated: NGF will not validate a field using Validators if it is confident that @@ -12,7 +14,7 @@ type Validators struct { // HTTPFieldsValidator validates the HTTP-related fields of Gateway API resources from the perspective of // a data-plane. Data-plane implementations must implement this interface. // -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . HTTPFieldsValidator +//counterfeiter:generate . HTTPFieldsValidator type HTTPFieldsValidator interface { ValidatePathInMatch(path string) error ValidateHeaderNameInMatch(name string) error @@ -32,7 +34,7 @@ type HTTPFieldsValidator interface { // GenericValidator validates any generic values from NGF API resources from the perspective of a data-plane. // These could be values that we want to re-validate in case of any CRD schema manipulation. // -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . GenericValidator +//counterfeiter:generate . GenericValidator type GenericValidator interface { ValidateEscapedStringNoVarExpansion(value string) error ValidateServiceName(name string) error diff --git a/internal/mode/static/telemetry/collector.go b/internal/mode/static/telemetry/collector.go index a3c5cee399..c73d9b6b6c 100644 --- a/internal/mode/static/telemetry/collector.go +++ b/internal/mode/static/telemetry/collector.go @@ -19,14 +19,14 @@ import ( "github.com/nginxinc/nginx-gateway-fabric/internal/mode/static/state/graph" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . GraphGetter +//counterfeiter:generate . GraphGetter // GraphGetter gets the latest Graph. type GraphGetter interface { GetLatestGraph() *graph.Graph } -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . ConfigurationGetter +//counterfeiter:generate . ConfigurationGetter // ConfigurationGetter gets the latest Configuration. type ConfigurationGetter interface { diff --git a/internal/mode/static/telemetry/exporter.go b/internal/mode/static/telemetry/exporter.go index e70b6d3f45..1c86ac61fb 100644 --- a/internal/mode/static/telemetry/exporter.go +++ b/internal/mode/static/telemetry/exporter.go @@ -9,7 +9,8 @@ import ( // Exporter exports telemetry data to some destination. // -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . Exporter +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate +//counterfeiter:generate . Exporter type Exporter interface { Export(ctx context.Context, data tel.Exportable) error } diff --git a/internal/mode/static/telemetry/job_worker.go b/internal/mode/static/telemetry/job_worker.go index 4f1b11d14e..76594f742f 100644 --- a/internal/mode/static/telemetry/job_worker.go +++ b/internal/mode/static/telemetry/job_worker.go @@ -6,7 +6,7 @@ import ( "github.com/go-logr/logr" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . DataCollector +//counterfeiter:generate . DataCollector // DataCollector collects telemetry data. type DataCollector interface { diff --git a/internal/mode/static/usage/reporter.go b/internal/mode/static/usage/reporter.go index 461b3b8404..0b4b0e66ba 100644 --- a/internal/mode/static/usage/reporter.go +++ b/internal/mode/static/usage/reporter.go @@ -12,8 +12,9 @@ import ( "net/url" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . credentialsGetter -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . Reporter +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate +//counterfeiter:generate . credentialsGetter +//counterfeiter:generate . Reporter const apiBasePath = "/api/platform/v1/k8s-usage"