add delete event publishes for organization and project, and correct event names

This commit is contained in:
Mike Mason
2023-07-14 15:04:02 +00:00
parent 2147f0374b
commit 10f45c56a0
2 changed files with 32 additions and 2 deletions

View File

@@ -3,11 +3,14 @@ package service
import ( import (
"context" "context"
"go.infratographer.com/x/events"
"go.infratographer.com/x/gidx" "go.infratographer.com/x/gidx"
"go.equinixmetal.net/infra9-metal-bridge/internal/metal/models" "go.equinixmetal.net/infra9-metal-bridge/internal/metal/models"
) )
const organizationEvent = "metalorganization"
func (s *service) buildOrganizationRelationships(org *models.OrganizationDetails) (Relationships, error) { func (s *service) buildOrganizationRelationships(org *models.OrganizationDetails) (Relationships, error) {
relations := Relationships{ relations := Relationships{
Relationships: []Relationship{ Relationships: []Relationship{
@@ -88,7 +91,7 @@ func (s *service) TouchOrganization(ctx context.Context, id gidx.PrefixedID) err
return err return err
} }
s.processRelationships(ctx, "metal-relation", relationships.Relationships) s.processRelationships(ctx, organizationEvent, relationships.Relationships)
s.syncMemberships(ctx, relationships.Memberships) s.syncMemberships(ctx, relationships.Memberships)
s.logger.Infow("organization sync complete", "relationships", len(relationships.Relationships), "memberships", len(relationships.Memberships)) s.logger.Infow("organization sync complete", "relationships", len(relationships.Relationships), "memberships", len(relationships.Memberships))
@@ -97,5 +100,17 @@ func (s *service) TouchOrganization(ctx context.Context, id gidx.PrefixedID) err
} }
func (s *service) DeleteOrganization(ctx context.Context, id gidx.PrefixedID) error { func (s *service) DeleteOrganization(ctx context.Context, id gidx.PrefixedID) error {
err := s.publisher.PublishChange(ctx, organizationEvent, events.ChangeMessage{
SubjectID: id,
EventType: string(events.DeleteChangeType),
})
if err != nil {
s.logger.Errorw("error publishing organization delete",
"subject_type", organizationEvent,
"resource.id", id,
"error", err,
)
}
return nil return nil
} }

View File

@@ -3,11 +3,14 @@ package service
import ( import (
"context" "context"
"go.infratographer.com/x/events"
"go.infratographer.com/x/gidx" "go.infratographer.com/x/gidx"
"go.equinixmetal.net/infra9-metal-bridge/internal/metal/models" "go.equinixmetal.net/infra9-metal-bridge/internal/metal/models"
) )
const projectEvent = "metalproject"
func (s *service) buildProjectRelationships(project *models.ProjectDetails) (Relationships, error) { func (s *service) buildProjectRelationships(project *models.ProjectDetails) (Relationships, error) {
relations := Relationships{ relations := Relationships{
Relationships: []Relationship{ Relationships: []Relationship{
@@ -64,7 +67,7 @@ func (s *service) TouchProject(ctx context.Context, id gidx.PrefixedID) error {
return err return err
} }
s.processRelationships(ctx, "metal-relation", relationships.Relationships) s.processRelationships(ctx, projectEvent, relationships.Relationships)
s.syncMemberships(ctx, relationships.Memberships) s.syncMemberships(ctx, relationships.Memberships)
s.logger.Infow("project sync complete", "relationships", len(relationships.Relationships), "memberships", len(relationships.Memberships)) s.logger.Infow("project sync complete", "relationships", len(relationships.Relationships), "memberships", len(relationships.Memberships))
@@ -73,5 +76,17 @@ func (s *service) TouchProject(ctx context.Context, id gidx.PrefixedID) error {
} }
func (s *service) DeleteProject(ctx context.Context, id gidx.PrefixedID) error { func (s *service) DeleteProject(ctx context.Context, id gidx.PrefixedID) error {
err := s.publisher.PublishChange(ctx, projectEvent, events.ChangeMessage{
SubjectID: id,
EventType: string(events.DeleteChangeType),
})
if err != nil {
s.logger.Errorw("error publishing project delete",
"subject_type", projectEvent,
"resource.id", id,
"error", err,
)
}
return nil return nil
} }