Skip to content

Commit 7d21050

Browse files
authored
Send facts when installation occurs during Run (treeverse#1403)
1 parent f927b34 commit 7d21050

File tree

3 files changed

+36
-4
lines changed

3 files changed

+36
-4
lines changed

api/controller.go

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ func (c *Controller) SetupLakeFSHandler() setupop.SetupLakeFSHandler {
241241
c.deps.Logger.Error("failed to write metadata after setup")
242242
} else {
243243
c.deps.Collector.SetInstallationID(metadata[auth.InstallationIDKeyName])
244+
c.deps.Collector.CollectMetadata(convertMetadata(metadata))
244245
}
245246
c.deps.Collector.CollectEvent("global", "init")
246247
return setupop.NewSetupLakeFSOK().WithPayload(&models.CredentialsWithSecret{
@@ -251,6 +252,20 @@ func (c *Controller) SetupLakeFSHandler() setupop.SetupLakeFSHandler {
251252
})
252253
}
253254

255+
func convertMetadata(metadata map[string]string) *stats.Metadata {
256+
res := &stats.Metadata{
257+
InstallationID: metadata[auth.InstallationIDKeyName],
258+
}
259+
260+
for k, v := range metadata {
261+
res.Entries = append(res.Entries, stats.MetadataEntry{
262+
Name: k,
263+
Value: v,
264+
})
265+
}
266+
return res
267+
}
268+
254269
func (c *Controller) GetCurrentUserHandler() authop.GetCurrentUserHandler {
255270
return authop.GetCurrentUserHandlerFunc(func(params authop.GetCurrentUserParams, user *models.User) middleware.Responder {
256271
return authop.NewGetCurrentUserOK().WithPayload(&authop.GetCurrentUserOKBody{

api/controller_test.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1372,7 +1372,7 @@ func TestController_SetupLakeFSHandler(t *testing.T) {
13721372
}
13731373
for _, c := range cases {
13741374
t.Run(c.name, func(t *testing.T) {
1375-
clt, _ := setupClient(t, "", testutil.WithGetDBApplyDDL(false))
1375+
clt, deps := setupClient(t, "", testutil.WithGetDBApplyDDL(false))
13761376
t.Run("fresh start", func(t *testing.T) {
13771377
res, err := clt.Setup.SetupLakeFS(setup.NewSetupLakeFSParamsWithTimeout(timeout).WithUser(&c.user))
13781378
if c.errorDefaultCode != 0 {
@@ -1420,6 +1420,15 @@ func TestController_SetupLakeFSHandler(t *testing.T) {
14201420
if foundCreds.Payload.AccessKeyID != creds.AccessKeyID {
14211421
t.Fatalf("Access key ID '%s', expected '%s'", foundCreds.Payload.AccessKeyID, creds.AccessKeyID)
14221422
}
1423+
if len(deps.collector.metadata) != 1 {
1424+
t.Fatal("Failed to collect metadata")
1425+
}
1426+
if deps.collector.metadata[0].InstallationID == "" {
1427+
t.Fatal("Empty installationID")
1428+
}
1429+
if len(deps.collector.metadata[0].Entries) < 5 {
1430+
t.Fatalf("There should be at least 5 metadata entries: %s", deps.collector.metadata[0].Entries)
1431+
}
14231432
})
14241433

14251434
if c.errorDefaultCode == 0 {

api/serve_test.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,16 @@ type dependencies struct {
3535
blocks block.Adapter
3636
cataloger catalog.Cataloger
3737
authService *auth.DBAuthService
38+
collector *nullCollector
3839
}
3940

40-
type nullCollector struct{}
41+
type nullCollector struct {
42+
metadata []*stats.Metadata
43+
}
4144

42-
func (m *nullCollector) CollectMetadata(_ *stats.Metadata) {}
45+
func (m *nullCollector) CollectMetadata(metadata *stats.Metadata) {
46+
m.metadata = append(m.metadata, metadata)
47+
}
4348

4449
func (m *nullCollector) CollectEvent(_, _ string) {}
4550

@@ -87,20 +92,23 @@ func setupHandler(t testing.TB, blockstoreType string, opts ...testutil.GetDBOpt
8792
_ = cataloger.Close()
8893
})
8994

95+
collector := &nullCollector{}
96+
9097
handler := api.Serve(api.Dependencies{
9198
Cataloger: cataloger,
9299
Auth: authService,
93100
BlockAdapter: blockAdapter,
94101
MetadataManager: meta,
95102
Migrator: migrator,
96-
Collector: &nullCollector{},
103+
Collector: collector,
97104
Logger: logging.Default(),
98105
})
99106

100107
return handler, &dependencies{
101108
blocks: blockAdapter,
102109
authService: authService,
103110
cataloger: cataloger,
111+
collector: collector,
104112
}
105113
}
106114

0 commit comments

Comments
 (0)