MCPcopy Create free account
hub / github.com/cloudbase/garm / handleWatcherEvent

Method handleWatcherEvent

workers/entity/controller_watcher.go:23–90  ·  view source on GitHub ↗
(event dbCommon.ChangePayload)

Source from the content-addressed store, hash-verified

21)
22
23func (c *Controller) handleWatcherEvent(event dbCommon.ChangePayload) {
24 c.mux.Lock()
25 defer c.mux.Unlock()
26
27 if !c.running {
28 // Controller was stopped.
29 return
30 }
31
32 switch event.EntityType {
33 case dbCommon.GithubCredentialsEntityType, dbCommon.GiteaCredentialsEntityType:
34 slog.DebugContext(c.ctx, "got credentials payload event", "entity_type", event.EntityType)
35 c.handleCredentialsUpdateEvent(event)
36 return
37 }
38
39 var entityGetter params.EntityGetter
40 switch event.EntityType {
41 case dbCommon.RepositoryEntityType:
42 slog.DebugContext(c.ctx, "got repository payload event")
43 repo, ok := event.Payload.(params.Repository)
44 if !ok {
45 slog.ErrorContext(c.ctx, "invalid payload for entity type", "entity_type", event.EntityType, "payload", event.Payload)
46 return
47 }
48 entityGetter = repo
49 case dbCommon.OrganizationEntityType:
50 slog.DebugContext(c.ctx, "got organization payload event")
51 org, ok := event.Payload.(params.Organization)
52 if !ok {
53 slog.ErrorContext(c.ctx, "invalid payload for entity type", "entity_type", event.EntityType, "payload", event.Payload)
54 return
55 }
56 entityGetter = org
57 case dbCommon.EnterpriseEntityType:
58 slog.DebugContext(c.ctx, "got enterprise payload event")
59 ent, ok := event.Payload.(params.Enterprise)
60 if !ok {
61 slog.ErrorContext(c.ctx, "invalid payload for entity type", "entity_type", event.EntityType, "payload", event.Payload)
62 return
63 }
64 entityGetter = ent
65 default:
66 slog.ErrorContext(c.ctx, "invalid entity type", "entity_type", event.EntityType)
67 return
68 }
69
70 entity, err := entityGetter.GetEntity()
71 if err != nil {
72 slog.ErrorContext(c.ctx, "getting entity from repository", "entity_type", event.EntityType, "payload", event.Payload, "error", err)
73 return
74 }
75
76 switch event.Operation {
77 case dbCommon.CreateOperation:
78 slog.DebugContext(c.ctx, "got create operation")
79 c.handleWatcherCreateOperation(entity)
80 case dbCommon.DeleteOperation:

Callers

nothing calls this directly

Calls 7

GetEntityMethod · 0.95
LockMethod · 0.65
UnlockMethod · 0.65

Tested by

no test coverage detected