(ctx context.Context)
| 84 | } |
| 85 | |
| 86 | func (c *Cache) refreshTemplateBuildTimes(ctx context.Context) error { |
| 87 | //nolint:gocritic // This is a system service. |
| 88 | ctx = dbauthz.AsSystemRestricted(ctx) |
| 89 | |
| 90 | templates, err := c.database.GetTemplatesWithFilter(ctx, database.GetTemplatesWithFilterParams{ |
| 91 | Deleted: false, |
| 92 | }) |
| 93 | if err != nil { |
| 94 | return err |
| 95 | } |
| 96 | |
| 97 | var ( |
| 98 | templateWorkspaceOwners = make(map[uuid.UUID]int) |
| 99 | templateAverageBuildTimes = make(map[uuid.UUID]database.GetTemplateAverageBuildTimeRow) |
| 100 | ) |
| 101 | |
| 102 | ids := make([]uuid.UUID, 0, len(templates)) |
| 103 | for _, template := range templates { |
| 104 | ids = append(ids, template.ID) |
| 105 | |
| 106 | templateAvgBuildTime, err := c.database.GetTemplateAverageBuildTime(ctx, |
| 107 | uuid.NullUUID{ |
| 108 | UUID: template.ID, |
| 109 | Valid: true, |
| 110 | }, |
| 111 | ) |
| 112 | if err != nil { |
| 113 | return err |
| 114 | } |
| 115 | templateAverageBuildTimes[template.ID] = templateAvgBuildTime |
| 116 | } |
| 117 | |
| 118 | owners, err := c.database.GetWorkspaceUniqueOwnerCountByTemplateIDs(ctx, ids) |
| 119 | if err != nil { |
| 120 | return xerrors.Errorf("get workspace unique owner count by template ids: %w", err) |
| 121 | } |
| 122 | |
| 123 | for _, owner := range owners { |
| 124 | templateWorkspaceOwners[owner.TemplateID] = int(owner.UniqueOwnersSum) |
| 125 | } |
| 126 | |
| 127 | c.templateWorkspaceOwners.Store(&templateWorkspaceOwners) |
| 128 | c.templateAverageBuildTime.Store(&templateAverageBuildTimes) |
| 129 | |
| 130 | return nil |
| 131 | } |
| 132 | |
| 133 | func (c *Cache) refreshDeploymentStats(ctx context.Context) error { |
| 134 | var ( |
nothing calls this directly
no test coverage detected