diff --git a/.local.env b/.local.env index 3d6ce9d24..31db78f83 100644 --- a/.local.env +++ b/.local.env @@ -3,4 +3,5 @@ GITNESS_GIT_TRACE=true GITNESS_PRINCIPAL_ADMIN_EMAIL=admin@gitness.io GITNESS_PRINCIPAL_ADMIN_PASSWORD=changeit GITNESS_WEBHOOK_ALLOW_LOOPBACK=true -GITNESS_METRIC_ENABLED=false \ No newline at end of file +GITNESS_METRIC_ENABLED=false +GITNESS_GITSPACE_ENABLE=true \ No newline at end of file diff --git a/app/api/controller/gitspace/create.go b/app/api/controller/gitspace/create.go index 1397793c4..456020bf2 100644 --- a/app/api/controller/gitspace/create.go +++ b/app/api/controller/gitspace/create.go @@ -89,7 +89,6 @@ func (c *Controller) Create( if err != nil { return nil, err } - // TODO figure out how to flush the DB txn above before we proceed. err = c.tx.WithTx(ctx, func(ctx context.Context) error { infraProviderResource, err := c.infraProviderSvc.FindResourceByIdentifier( ctx, diff --git a/app/api/controller/space/list_gitspaces.go b/app/api/controller/space/list_gitspaces.go index 22b07a81c..8603927fd 100644 --- a/app/api/controller/space/list_gitspaces.go +++ b/app/api/controller/space/list_gitspaces.go @@ -51,25 +51,22 @@ func (c *Controller) ListGitspaces( if err != nil { return fmt.Errorf("failed to list gitspace configs: %w", err) } - count, err = c.gitspaceConfigStore.Count(ctx, gitspaceFilter) - if err != nil { - return fmt.Errorf("failed to count gitspaces in space: %w", err) - } - var gitspaceConfigIDs = make([]int64, 0) - for idx := 0; idx < len(gitspaceConfigs); idx++ { - if gitspaceConfigs[idx].IsDeleted { - continue + 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) } - gitspaceConfigs[idx].SpacePath = space.Path // As the API is for a space, this will remain same - gitspaceConfigIDs = append(gitspaceConfigIDs, gitspaceConfigs[idx].ID) + } else { + count = int64(len(gitspaceConfigs)) } - gitspaceInstancesMap, err := c.getLatestInstanceMap(ctx, gitspaceConfigIDs) + 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 { @@ -91,8 +88,12 @@ func (c *Controller) ListGitspaces( func (c *Controller) getLatestInstanceMap( ctx context.Context, - gitspaceConfigIDs []int64, + 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