From 0bbcc98b6178520eac6783657312d01bc2b5d647 Mon Sep 17 00:00:00 2001 From: Ansuman Satapathy Date: Fri, 19 Jul 2024 11:43:43 +0000 Subject: [PATCH] feat: [CDE-142]: extract gitspace find to its own svc (#2251) * feat: [CDE-142]: extract gitspace find to its own svc * feat: [CDE-142]: extract gitspace find to its own svc * feat: [CDE-142]: extract gitspace find to its own svc * feat: [CDE-142]: extract gitspace find to its own svc * feat: [CDE-142]: extract gitspace find to its own svc --- app/api/controller/gitspace/controller.go | 4 +- app/api/controller/gitspace/wire.go | 2 +- .../controller/infraprovider/controller.go | 4 +- app/api/controller/infraprovider/wire.go | 2 +- app/api/controller/space/controller.go | 92 +++++++------- app/api/controller/space/list_gitspaces.go | 66 +--------- app/api/controller/space/wire.go | 5 +- app/services/gitspace/gitspace.go | 118 ++++++++++++++++++ app/services/gitspace/wire.go | 35 ++++++ app/services/infraprovider/infraprovider.go | 14 +-- app/services/infraprovider/wire.go | 4 +- app/services/wire.go | 8 ++ cmd/gitness/wire.go | 14 ++- cmd/gitness/wire_gen.go | 14 ++- 14 files changed, 241 insertions(+), 141 deletions(-) create mode 100644 app/services/gitspace/gitspace.go create mode 100644 app/services/gitspace/wire.go diff --git a/app/api/controller/gitspace/controller.go b/app/api/controller/gitspace/controller.go index 8e3ef359c..46f68f539 100644 --- a/app/api/controller/gitspace/controller.go +++ b/app/api/controller/gitspace/controller.go @@ -27,7 +27,7 @@ import ( type Controller struct { authorizer authz.Authorizer - infraProviderSvc infraprovider.ProviderService + infraProviderSvc *infraprovider.Service gitspaceConfigStore store.GitspaceConfigStore gitspaceInstanceStore store.GitspaceInstanceStore spaceStore store.SpaceStore @@ -42,7 +42,7 @@ type Controller struct { func NewController( tx dbtx.Transactor, authorizer authz.Authorizer, - infraProviderSvc infraprovider.ProviderService, + infraProviderSvc *infraprovider.Service, gitspaceConfigStore store.GitspaceConfigStore, gitspaceInstanceStore store.GitspaceInstanceStore, spaceStore store.SpaceStore, diff --git a/app/api/controller/gitspace/wire.go b/app/api/controller/gitspace/wire.go index 950f7b827..cef13e244 100644 --- a/app/api/controller/gitspace/wire.go +++ b/app/api/controller/gitspace/wire.go @@ -35,7 +35,7 @@ var WireSet = wire.NewSet( func ProvideController( tx dbtx.Transactor, authorizer authz.Authorizer, - infraProviderSvc infraprovider.ProviderService, + infraProviderSvc *infraprovider.Service, configStore store.GitspaceConfigStore, instanceStore store.GitspaceInstanceStore, spaceStore store.SpaceStore, diff --git a/app/api/controller/infraprovider/controller.go b/app/api/controller/infraprovider/controller.go index 58cf49709..a5cbd106c 100644 --- a/app/api/controller/infraprovider/controller.go +++ b/app/api/controller/infraprovider/controller.go @@ -23,13 +23,13 @@ import ( type Controller struct { authorizer authz.Authorizer spaceStore store.SpaceStore - infraproviderSvc infraprovider.ProviderService + infraproviderSvc *infraprovider.Service } func NewController( authorizer authz.Authorizer, spaceStore store.SpaceStore, - infraproviderSvc infraprovider.ProviderService, + infraproviderSvc *infraprovider.Service, ) *Controller { return &Controller{ authorizer: authorizer, diff --git a/app/api/controller/infraprovider/wire.go b/app/api/controller/infraprovider/wire.go index 8bcfa742d..71cb2e652 100644 --- a/app/api/controller/infraprovider/wire.go +++ b/app/api/controller/infraprovider/wire.go @@ -30,7 +30,7 @@ var WireSet = wire.NewSet( func ProvideController( authorizer authz.Authorizer, spaceStore store.SpaceStore, - infraproviderSvc infraprovider.ProviderService, + infraproviderSvc *infraprovider.Service, ) *Controller { return NewController(authorizer, spaceStore, infraproviderSvc) } diff --git a/app/api/controller/space/controller.go b/app/api/controller/space/controller.go index cb228eb3b..0f0534f06 100644 --- a/app/api/controller/space/controller.go +++ b/app/api/controller/space/controller.go @@ -22,6 +22,7 @@ import ( "github.com/harness/gitness/app/api/usererror" "github.com/harness/gitness/app/auth/authz" "github.com/harness/gitness/app/services/exporter" + "github.com/harness/gitness/app/services/gitspace" "github.com/harness/gitness/app/services/importer" "github.com/harness/gitness/app/services/publicaccess" "github.com/harness/gitness/app/sse" @@ -61,28 +62,27 @@ func (s SpaceOutput) MarshalJSON() ([]byte, error) { type Controller struct { nestedSpacesEnabled bool - tx dbtx.Transactor - urlProvider url.Provider - sseStreamer sse.Streamer - identifierCheck check.SpaceIdentifier - authorizer authz.Authorizer - spacePathStore store.SpacePathStore - pipelineStore store.PipelineStore - secretStore store.SecretStore - connectorStore store.ConnectorStore - templateStore store.TemplateStore - spaceStore store.SpaceStore - repoStore store.RepoStore - principalStore store.PrincipalStore - repoCtrl *repo.Controller - membershipStore store.MembershipStore - importer *importer.Repository - exporter *exporter.Repository - resourceLimiter limiter.ResourceLimiter - publicAccess publicaccess.Service - auditService audit.Service - gitspaceConfigStore store.GitspaceConfigStore - gitspaceInstanceStore store.GitspaceInstanceStore + tx dbtx.Transactor + urlProvider url.Provider + sseStreamer sse.Streamer + identifierCheck check.SpaceIdentifier + authorizer authz.Authorizer + spacePathStore store.SpacePathStore + pipelineStore store.PipelineStore + secretStore store.SecretStore + connectorStore store.ConnectorStore + templateStore store.TemplateStore + spaceStore store.SpaceStore + repoStore store.RepoStore + principalStore store.PrincipalStore + repoCtrl *repo.Controller + membershipStore store.MembershipStore + importer *importer.Repository + exporter *exporter.Repository + resourceLimiter limiter.ResourceLimiter + publicAccess publicaccess.Service + auditService audit.Service + gitspaceSvc *gitspace.Service } func NewController(config *types.Config, tx dbtx.Transactor, urlProvider url.Provider, @@ -92,32 +92,30 @@ func NewController(config *types.Config, tx dbtx.Transactor, urlProvider url.Pro repoStore store.RepoStore, principalStore store.PrincipalStore, repoCtrl *repo.Controller, membershipStore store.MembershipStore, importer *importer.Repository, exporter *exporter.Repository, limiter limiter.ResourceLimiter, publicAccess publicaccess.Service, auditService audit.Service, - gitspaceStore store.GitspaceConfigStore, - gitspaceInstanceStore store.GitspaceInstanceStore, + gitspaceSvc *gitspace.Service, ) *Controller { return &Controller{ - nestedSpacesEnabled: config.NestedSpacesEnabled, - tx: tx, - urlProvider: urlProvider, - sseStreamer: sseStreamer, - identifierCheck: identifierCheck, - authorizer: authorizer, - spacePathStore: spacePathStore, - pipelineStore: pipelineStore, - secretStore: secretStore, - connectorStore: connectorStore, - templateStore: templateStore, - spaceStore: spaceStore, - repoStore: repoStore, - principalStore: principalStore, - repoCtrl: repoCtrl, - membershipStore: membershipStore, - importer: importer, - exporter: exporter, - resourceLimiter: limiter, - publicAccess: publicAccess, - auditService: auditService, - gitspaceConfigStore: gitspaceStore, - gitspaceInstanceStore: gitspaceInstanceStore, + nestedSpacesEnabled: config.NestedSpacesEnabled, + tx: tx, + urlProvider: urlProvider, + sseStreamer: sseStreamer, + identifierCheck: identifierCheck, + authorizer: authorizer, + spacePathStore: spacePathStore, + pipelineStore: pipelineStore, + secretStore: secretStore, + connectorStore: connectorStore, + templateStore: templateStore, + spaceStore: spaceStore, + repoStore: repoStore, + principalStore: principalStore, + repoCtrl: repoCtrl, + membershipStore: membershipStore, + importer: importer, + exporter: exporter, + resourceLimiter: limiter, + publicAccess: publicAccess, + auditService: auditService, + gitspaceSvc: gitspaceSvc, } } diff --git a/app/api/controller/space/list_gitspaces.go b/app/api/controller/space/list_gitspaces.go index 8603927fd..35aadfa20 100644 --- a/app/api/controller/space/list_gitspaces.go +++ b/app/api/controller/space/list_gitspaces.go @@ -20,7 +20,6 @@ import ( apiauth "github.com/harness/gitness/app/api/auth" "github.com/harness/gitness/app/auth" - "github.com/harness/gitness/store/database/dbtx" "github.com/harness/gitness/types" "github.com/harness/gitness/types/enum" ) @@ -39,68 +38,5 @@ func (c *Controller) ListGitspaces( if err != nil { return nil, 0, fmt.Errorf("failed to authorize gitspace: %w", err) } - gitspaceFilter := &types.GitspaceFilter{ - QueryFilter: filter, - UserID: session.Principal.UID, - SpaceIDs: []int64{space.ID}, - } - var gitspaceConfigs []*types.GitspaceConfig - var count int64 - err = c.tx.WithTx(ctx, func(ctx context.Context) (err error) { - gitspaceConfigs, err = c.gitspaceConfigStore.List(ctx, gitspaceFilter) - if err != nil { - return fmt.Errorf("failed to list gitspace configs: %w", err) - } - if len(gitspaceConfigs) >= filter.Size { - count, err = c.gitspaceConfigStore.Count(ctx, gitspaceFilter) - if err != nil { - return fmt.Errorf("failed to count gitspaces in space: %w", err) - } - } else { - count = int64(len(gitspaceConfigs)) - } - gitspaceInstancesMap, err := c.getLatestInstanceMap(ctx, gitspaceConfigs) - if err != nil { - return err - } - for _, gitspaceConfig := range gitspaceConfigs { - instance := gitspaceInstancesMap[gitspaceConfig.ID] - gitspaceConfig.GitspaceInstance = instance - gitspaceConfig.SpacePath = space.Path - if instance != nil { - gitspaceStateType, err := enum.GetGitspaceStateFromInstance(instance.State) - if err != nil { - return err - } - gitspaceConfig.State = gitspaceStateType - instance.SpacePath = gitspaceConfig.SpacePath - } else { - gitspaceConfig.State = enum.GitspaceStateUninitialized - } - } - return nil - }, dbtx.TxDefaultReadOnly) - if err != nil { - return nil, 0, err - } - return gitspaceConfigs, count, nil -} - -func (c *Controller) getLatestInstanceMap( - ctx context.Context, - gitspaceConfigs []*types.GitspaceConfig, -) (map[int64]*types.GitspaceInstance, error) { - var gitspaceConfigIDs = make([]int64, 0) - for idx := 0; idx < len(gitspaceConfigs); idx++ { - gitspaceConfigIDs = append(gitspaceConfigIDs, gitspaceConfigs[idx].ID) - } - var gitspaceInstances, err = c.gitspaceInstanceStore.FindAllLatestByGitspaceConfigID(ctx, gitspaceConfigIDs) - if err != nil { - return nil, err - } - var gitspaceInstancesMap = make(map[int64]*types.GitspaceInstance) - for _, gitspaceEntry := range gitspaceInstances { - gitspaceInstancesMap[gitspaceEntry.GitSpaceConfigID] = gitspaceEntry - } - return gitspaceInstancesMap, nil + return c.gitspaceSvc.ListGitspacesForSpace(ctx, space, session.Principal.UID, filter) } diff --git a/app/api/controller/space/wire.go b/app/api/controller/space/wire.go index f8e71d6ad..e555ef269 100644 --- a/app/api/controller/space/wire.go +++ b/app/api/controller/space/wire.go @@ -19,6 +19,7 @@ import ( "github.com/harness/gitness/app/api/controller/repo" "github.com/harness/gitness/app/auth/authz" "github.com/harness/gitness/app/services/exporter" + "github.com/harness/gitness/app/services/gitspace" "github.com/harness/gitness/app/services/importer" "github.com/harness/gitness/app/services/publicaccess" "github.com/harness/gitness/app/sse" @@ -44,7 +45,7 @@ func ProvideController(config *types.Config, tx dbtx.Transactor, urlProvider url spaceStore store.SpaceStore, repoStore store.RepoStore, principalStore store.PrincipalStore, repoCtrl *repo.Controller, membershipStore store.MembershipStore, importer *importer.Repository, exporter *exporter.Repository, limiter limiter.ResourceLimiter, publicAccess publicaccess.Service, - auditService audit.Service, gitspaceConfigStore store.GitspaceConfigStore, instanceStore store.GitspaceInstanceStore, + auditService audit.Service, gitspaceService *gitspace.Service, ) *Controller { return NewController(config, tx, urlProvider, sseStreamer, identifierCheck, authorizer, spacePathStore, pipelineStore, secretStore, @@ -52,5 +53,5 @@ func ProvideController(config *types.Config, tx dbtx.Transactor, urlProvider url spaceStore, repoStore, principalStore, repoCtrl, membershipStore, importer, exporter, limiter, publicAccess, - auditService, gitspaceConfigStore, instanceStore) + auditService, gitspaceService) } diff --git a/app/services/gitspace/gitspace.go b/app/services/gitspace/gitspace.go new file mode 100644 index 000000000..02ce515b1 --- /dev/null +++ b/app/services/gitspace/gitspace.go @@ -0,0 +1,118 @@ +// Copyright 2023 Harness, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package gitspace + +import ( + "context" + "fmt" + + "github.com/harness/gitness/app/store" + "github.com/harness/gitness/store/database/dbtx" + "github.com/harness/gitness/types" + "github.com/harness/gitness/types/enum" +) + +func NewService( + tx dbtx.Transactor, + gitspaceStore store.GitspaceConfigStore, + gitspaceInstanceStore store.GitspaceInstanceStore, + spaceStore store.SpaceStore, +) *Service { + return &Service{ + tx: tx, + gitspaceConfigStore: gitspaceStore, + gitspaceInstanceStore: gitspaceInstanceStore, + spaceStore: spaceStore, + } +} + +type Service struct { + gitspaceConfigStore store.GitspaceConfigStore + gitspaceInstanceStore store.GitspaceInstanceStore + spaceStore store.SpaceStore + tx dbtx.Transactor +} + +func (c *Service) ListGitspacesForSpace( + ctx context.Context, + space *types.Space, + userIdentifier string, + filter types.ListQueryFilter, +) ([]*types.GitspaceConfig, int64, error) { + gitspaceFilter := &types.GitspaceFilter{ + QueryFilter: filter, + UserID: userIdentifier, + SpaceIDs: []int64{space.ID}, + } + var gitspaceConfigs []*types.GitspaceConfig + var count int64 + err := c.tx.WithTx(ctx, func(ctx context.Context) (err error) { + gitspaceConfigs, err = c.gitspaceConfigStore.List(ctx, gitspaceFilter) + if err != nil { + return fmt.Errorf("failed to list gitspace configs: %w", err) + } + if len(gitspaceConfigs) >= gitspaceFilter.QueryFilter.Size { + count, err = c.gitspaceConfigStore.Count(ctx, gitspaceFilter) + if err != nil { + return fmt.Errorf("failed to count gitspaces in space: %w", err) + } + } else { + count = int64(len(gitspaceConfigs)) + } + gitspaceInstancesMap, err := c.getLatestInstanceMap(ctx, gitspaceConfigs) + if err != nil { + return err + } + for _, gitspaceConfig := range gitspaceConfigs { + instance := gitspaceInstancesMap[gitspaceConfig.ID] + gitspaceConfig.GitspaceInstance = instance + gitspaceConfig.SpacePath = space.Path + if instance != nil { + gitspaceStateType, err := enum.GetGitspaceStateFromInstance(instance.State) + if err != nil { + return err + } + gitspaceConfig.State = gitspaceStateType + instance.SpacePath = gitspaceConfig.SpacePath + } else { + gitspaceConfig.State = enum.GitspaceStateUninitialized + } + } + return nil + }, dbtx.TxDefaultReadOnly) + if err != nil { + return nil, 0, err + } + return gitspaceConfigs, count, nil +} + +func (c *Service) getLatestInstanceMap( + ctx context.Context, + gitspaceConfigs []*types.GitspaceConfig, +) (map[int64]*types.GitspaceInstance, error) { + var gitspaceConfigIDs = make([]int64, 0) + for idx := 0; idx < len(gitspaceConfigs); idx++ { + gitspaceConfigIDs = append(gitspaceConfigIDs, gitspaceConfigs[idx].ID) + } + var gitspaceInstances, err = c.gitspaceInstanceStore.FindAllLatestByGitspaceConfigID(ctx, gitspaceConfigIDs) + if err != nil { + return nil, err + } + var gitspaceInstancesMap = make(map[int64]*types.GitspaceInstance) + for _, gitspaceEntry := range gitspaceInstances { + gitspaceInstancesMap[gitspaceEntry.GitSpaceConfigID] = gitspaceEntry + } + return gitspaceInstancesMap, nil +} diff --git a/app/services/gitspace/wire.go b/app/services/gitspace/wire.go new file mode 100644 index 000000000..b35555296 --- /dev/null +++ b/app/services/gitspace/wire.go @@ -0,0 +1,35 @@ +// Copyright 2023 Harness, Inc. +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package gitspace + +import ( + "github.com/harness/gitness/app/store" + "github.com/harness/gitness/store/database/dbtx" + + "github.com/google/wire" +) + +var WireSet = wire.NewSet( + ProvideGitspace, +) + +func ProvideGitspace( + tx dbtx.Transactor, + gitspaceStore store.GitspaceConfigStore, + gitspaceInstanceStore store.GitspaceInstanceStore, + spaceStore store.SpaceStore, +) *Service { + return NewService(tx, gitspaceStore, gitspaceInstanceStore, spaceStore) +} diff --git a/app/services/infraprovider/infraprovider.go b/app/services/infraprovider/infraprovider.go index d8ee2a51e..6c9635e9e 100644 --- a/app/services/infraprovider/infraprovider.go +++ b/app/services/infraprovider/infraprovider.go @@ -30,8 +30,8 @@ func NewService( infraProviderConfigStore store.InfraProviderConfigStore, factory infraprovider.Factory, spaceStore store.SpaceStore, -) ProviderService { - return ProviderService{ +) *Service { + return &Service{ tx: tx, infraProviderResourceStore: infraProviderResourceStore, infraProviderConfigStore: infraProviderConfigStore, @@ -40,7 +40,7 @@ func NewService( } } -type ProviderService struct { +type Service struct { infraProviderResourceStore store.InfraProviderResourceStore infraProviderConfigStore store.InfraProviderConfigStore infraProviderFactory infraprovider.Factory @@ -48,7 +48,7 @@ type ProviderService struct { tx dbtx.Transactor } -func (c ProviderService) Find( +func (c *Service) Find( ctx context.Context, space *types.Space, identifier string, @@ -66,18 +66,18 @@ func (c ProviderService) Find( return infraProviderConfig, nil } -func (c ProviderService) FindResourceByIdentifier( +func (c *Service) FindResourceByIdentifier( ctx context.Context, spaceID int64, identifier string) (*types.InfraProviderResource, error) { return c.infraProviderResourceStore.FindByIdentifier(ctx, spaceID, identifier) } -func (c ProviderService) FindResource(ctx context.Context, id int64) (*types.InfraProviderResource, error) { +func (c *Service) FindResource(ctx context.Context, id int64) (*types.InfraProviderResource, error) { return c.infraProviderResourceStore.Find(ctx, id) } -func (c ProviderService) CreateInfraProvider( +func (c *Service) CreateInfraProvider( ctx context.Context, infraProviderConfig *types.InfraProviderConfig, ) error { diff --git a/app/services/infraprovider/wire.go b/app/services/infraprovider/wire.go index 3aa7978a4..633217d2b 100644 --- a/app/services/infraprovider/wire.go +++ b/app/services/infraprovider/wire.go @@ -27,11 +27,11 @@ var WireSet = wire.NewSet( ) func ProvideInfraProvider( + tx dbtx.Transactor, infraProviderResourceStore store.InfraProviderResourceStore, infraProviderConfigStore store.InfraProviderConfigStore, infraProviderFactory infraprovider.Factory, spaceStore store.SpaceStore, - tx dbtx.Transactor, -) ProviderService { +) *Service { return NewService(tx, infraProviderResourceStore, infraProviderConfigStore, infraProviderFactory, spaceStore) } diff --git a/app/services/wire.go b/app/services/wire.go index 061fe2c59..b04f77386 100644 --- a/app/services/wire.go +++ b/app/services/wire.go @@ -16,7 +16,9 @@ package services import ( "github.com/harness/gitness/app/services/cleanup" + "github.com/harness/gitness/app/services/gitspace" "github.com/harness/gitness/app/services/gitspaceevent" + "github.com/harness/gitness/app/services/infraprovider" "github.com/harness/gitness/app/services/keywordsearch" "github.com/harness/gitness/app/services/metric" "github.com/harness/gitness/app/services/notification" @@ -45,6 +47,8 @@ type Services struct { Notification *notification.Service Keywordsearch *keywordsearch.Service GitspaceEvent *gitspaceevent.Service + infraProvider *infraprovider.Service + gitspace *gitspace.Service } func ProvideServices( @@ -59,6 +63,8 @@ func ProvideServices( notificationSvc *notification.Service, keywordsearchSvc *keywordsearch.Service, gitspaceEventSvc *gitspaceevent.Service, + infraProviderSvc *infraprovider.Service, + gitspaceSvc *gitspace.Service, ) Services { return Services{ Webhook: webhooksSvc, @@ -72,5 +78,7 @@ func ProvideServices( Notification: notificationSvc, Keywordsearch: keywordsearchSvc, GitspaceEvent: gitspaceEventSvc, + infraProvider: infraProviderSvc, + gitspace: gitspaceSvc, } } diff --git a/cmd/gitness/wire.go b/cmd/gitness/wire.go index ae575b32c..7f61d800a 100644 --- a/cmd/gitness/wire.go +++ b/cmd/gitness/wire.go @@ -65,9 +65,10 @@ import ( "github.com/harness/gitness/app/services/codecomments" "github.com/harness/gitness/app/services/codeowners" "github.com/harness/gitness/app/services/exporter" + gitspaceSvc "github.com/harness/gitness/app/services/gitspace" "github.com/harness/gitness/app/services/gitspaceevent" "github.com/harness/gitness/app/services/importer" - "github.com/harness/gitness/app/services/infraprovider" + infraproviderSvc "github.com/harness/gitness/app/services/infraprovider" "github.com/harness/gitness/app/services/keywordsearch" locker "github.com/harness/gitness/app/services/locker" "github.com/harness/gitness/app/services/metric" @@ -142,7 +143,13 @@ func initSystem(ctx context.Context, config *types.Config) (*cliserver.System, e system.WireSet, authn.WireSet, authz.WireSet, + infrastructure.WireSet, + infraproviderpkg.WireSet, gitspaceevents.WireSet, + infraproviderCtrl.WireSet, + gitspaceCtrl.WireSet, + infraproviderSvc.WireSet, + gitspaceSvc.WireSet, gitevents.WireSet, pullreqevents.WireSet, repoevents.WireSet, @@ -211,15 +218,10 @@ func initSystem(ctx context.Context, config *types.Config) (*cliserver.System, e audit.WireSet, ssh.WireSet, publickey.WireSet, - infraprovider.WireSet, migrate.WireSet, - gitspaceCtrl.WireSet, - infraproviderCtrl.WireSet, - infraproviderpkg.WireSet, scm.WireSet, orchestrator.WireSet, containerorchestrator.WireSet, - infrastructure.WireSet, cliserver.ProvideIDEVSCodeWebConfig, cliserver.ProvideDockerConfig, cliserver.ProvideGitspaceContainerOrchestratorConfig, diff --git a/cmd/gitness/wire_gen.go b/cmd/gitness/wire_gen.go index 83b71f531..01a5ffb47 100644 --- a/cmd/gitness/wire_gen.go +++ b/cmd/gitness/wire_gen.go @@ -13,7 +13,7 @@ import ( "github.com/harness/gitness/app/api/controller/connector" "github.com/harness/gitness/app/api/controller/execution" "github.com/harness/gitness/app/api/controller/githook" - "github.com/harness/gitness/app/api/controller/gitspace" + gitspace2 "github.com/harness/gitness/app/api/controller/gitspace" infraprovider3 "github.com/harness/gitness/app/api/controller/infraprovider" keywordsearch2 "github.com/harness/gitness/app/api/controller/keywordsearch" "github.com/harness/gitness/app/api/controller/limiter" @@ -64,6 +64,7 @@ import ( "github.com/harness/gitness/app/services/codecomments" "github.com/harness/gitness/app/services/codeowners" "github.com/harness/gitness/app/services/exporter" + "github.com/harness/gitness/app/services/gitspace" "github.com/harness/gitness/app/services/gitspaceevent" "github.com/harness/gitness/app/services/importer" infraprovider2 "github.com/harness/gitness/app/services/infraprovider" @@ -245,7 +246,8 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro } gitspaceConfigStore := database.ProvideGitspaceConfigStore(db) gitspaceInstanceStore := database.ProvideGitspaceInstanceStore(db) - spaceController := space.ProvideController(config, transactor, provider, streamer, spaceIdentifier, authorizer, spacePathStore, pipelineStore, secretStore, connectorStore, templateStore, spaceStore, repoStore, principalStore, repoController, membershipStore, repository, exporterRepository, resourceLimiter, publicaccessService, auditService, gitspaceConfigStore, gitspaceInstanceStore) + gitspaceService := gitspace.ProvideGitspace(transactor, gitspaceConfigStore, gitspaceInstanceStore, spaceStore) + spaceController := space.ProvideController(config, transactor, provider, streamer, spaceIdentifier, authorizer, spacePathStore, pipelineStore, secretStore, connectorStore, templateStore, spaceStore, repoStore, principalStore, repoController, membershipStore, repository, exporterRepository, resourceLimiter, publicaccessService, auditService, gitspaceService) pipelineController := pipeline.ProvideController(repoStore, triggerStore, authorizer, pipelineStore) secretController := secret.ProvideController(encrypter, secretStore, authorizer, spaceStore) triggerController := trigger.ProvideController(authorizer, triggerStore, pipelineStore, repoStore) @@ -329,8 +331,8 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro dockerClientFactory := infraprovider.ProvideDockerClientFactory(dockerConfig) dockerProvider := infraprovider.ProvideDockerProvider(dockerConfig, dockerClientFactory) factory := infraprovider.ProvideFactory(dockerProvider) - providerService := infraprovider2.ProvideInfraProvider(infraProviderResourceStore, infraProviderConfigStore, factory, spaceStore, transactor) - infraproviderController := infraprovider3.ProvideController(authorizer, spaceStore, providerService) + infraproviderService := infraprovider2.ProvideInfraProvider(transactor, infraProviderResourceStore, infraProviderConfigStore, factory, spaceStore) + infraproviderController := infraprovider3.ProvideController(authorizer, spaceStore, infraproviderService) reporter3, err := events5.ProvideReporter(eventsSystem) if err != nil { return nil, err @@ -345,7 +347,7 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro containerOrchestrator := container.ProvideEmbeddedDockerOrchestrator(dockerClientFactory, vsCode, vsCodeWeb, containerConfig, statefulLogger) orchestratorOrchestrator := orchestrator.ProvideOrchestrator(scmSCM, infraProviderResourceStore, infraProvisioner, containerOrchestrator, reporter3) gitspaceEventStore := database.ProvideGitspaceEventStore(db) - gitspaceController := gitspace.ProvideController(transactor, authorizer, providerService, gitspaceConfigStore, gitspaceInstanceStore, spaceStore, reporter3, orchestratorOrchestrator, gitspaceEventStore, statefulLogger, scmSCM) + gitspaceController := gitspace2.ProvideController(transactor, authorizer, infraproviderService, gitspaceConfigStore, gitspaceInstanceStore, spaceStore, reporter3, orchestratorOrchestrator, gitspaceEventStore, statefulLogger, scmSCM) migrateController := migrate.ProvideController(authorizer, principalStore) apiHandler := router.ProvideAPIHandler(ctx, config, authenticator, repoController, reposettingsController, executionController, logsController, spaceController, pipelineController, secretController, triggerController, connectorController, templateController, pluginController, pullreqController, webhookController, githookController, gitInterface, serviceaccountController, controller, principalController, checkController, systemController, uploadController, keywordsearchController, infraproviderController, gitspaceController, migrateController) gitHandler := router.ProvideGitHandler(provider, authenticator, repoController) @@ -410,7 +412,7 @@ func initSystem(ctx context.Context, config *types.Config) (*server.System, erro if err != nil { return nil, err } - servicesServices := services.ProvideServices(webhookService, pullreqService, triggerService, jobScheduler, collector, sizeCalculator, repoService, cleanupService, notificationService, keywordsearchService, gitspaceeventService) + servicesServices := services.ProvideServices(webhookService, pullreqService, triggerService, jobScheduler, collector, sizeCalculator, repoService, cleanupService, notificationService, keywordsearchService, gitspaceeventService, infraproviderService, gitspaceService) serverSystem := server.NewSystem(bootstrapBootstrap, serverServer, sshServer, poller, resolverManager, servicesServices) return serverSystem, nil }