MCPcopy Index your code
hub / github.com/coder/coder / refreshTemplateBuildTimes

Method refreshTemplateBuildTimes

coderd/metricscache/metricscache.go:86–131  ·  view source on GitHub ↗
(ctx context.Context)

Source from the content-addressed store, hash-verified

84}
85
86func (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
133func (c *Cache) refreshDeploymentStats(ctx context.Context) error {
134 var (

Callers

nothing calls this directly

Calls 6

AsSystemRestrictedFunction · 0.92
ErrorfMethod · 0.45
StoreMethod · 0.45

Tested by

no test coverage detected