Fix entity update handler

Signed-off-by: Gabriel Adrian Samfira <gsamfira@cloudbasesolutions.com>
This commit is contained in:
Gabriel Adrian Samfira 2025-05-08 08:27:41 +00:00
parent a38d72a01c
commit 2e9535530d
2 changed files with 20 additions and 5 deletions

View file

@ -26,7 +26,7 @@ const (
)
func NewController(ctx context.Context, store dbCommon.Store, entity params.GithubEntity, providers map[string]common.Provider) (*Controller, error) {
consumerID := fmt.Sprintf("scaleset-worker-%s", entity.String())
consumerID := fmt.Sprintf("scaleset-controller-%s", entity.String())
ctx = garmUtil.WithSlogContext(
ctx,

View file

@ -31,7 +31,7 @@ func (c *Controller) handleWatcherEvent(event dbCommon.ChangePayload) {
func (c *Controller) handleScaleSet(event dbCommon.ChangePayload) {
scaleSet, ok := event.Payload.(params.ScaleSet)
if !ok {
slog.ErrorContext(c.ctx, "invalid payload for entity type", "entity_type", event.EntityType, "payload", event.Payload)
slog.ErrorContext(c.ctx, "invalid scale set payload for entity type", "entity_type", event.EntityType, "payload", event)
return
}
@ -131,7 +131,7 @@ func (c *Controller) handleScaleSetUpdateOperation(sSet params.ScaleSet) error {
func (c *Controller) handleCredentialsEvent(event dbCommon.ChangePayload) {
credentials, ok := event.Payload.(params.GithubCredentials)
if !ok {
slog.ErrorContext(c.ctx, "invalid payload for entity type", "entity_type", event.EntityType, "payload", event.Payload)
slog.ErrorContext(c.ctx, "invalid credentials payload for entity type", "entity_type", event.EntityType, "payload", event)
return
}
@ -158,9 +158,24 @@ func (c *Controller) handleCredentialsEvent(event dbCommon.ChangePayload) {
}
func (c *Controller) handleEntityEvent(event dbCommon.ChangePayload) {
entity, ok := event.Payload.(params.GithubEntity)
var entityGetter params.EntityGetter
var ok bool
switch c.Entity.EntityType {
case params.GithubEntityTypeRepository:
entityGetter, ok = event.Payload.(params.Repository)
case params.GithubEntityTypeOrganization:
entityGetter, ok = event.Payload.(params.Organization)
case params.GithubEntityTypeEnterprise:
entityGetter, ok = event.Payload.(params.Enterprise)
}
if !ok {
slog.ErrorContext(c.ctx, "invalid payload for entity type", "entity_type", event.EntityType, "payload", event.Payload)
slog.ErrorContext(c.ctx, "invalid entity payload for entity type", "entity_type", event.EntityType, "payload", event)
return
}
entity, err := entityGetter.GetEntity()
if err != nil {
slog.ErrorContext(c.ctx, "invalid GitHub entity payload for entity type", "entity_type", event.EntityType, "payload", event)
return
}