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

Method addOrgEvent

database/sql/util.go:867–911  ·  view source on GitHub ↗
(ctx context.Context, orgID string, event params.EventType, eventLevel params.EventLevel, statusMessage string, maxEvents int)

Source from the content-addressed store, hash-verified

865}
866
867func (s *sqlDatabase) addOrgEvent(ctx context.Context, orgID string, event params.EventType, eventLevel params.EventLevel, statusMessage string, maxEvents int) error {
868 org, err := s.getOrgByID(ctx, s.conn, orgID)
869 if err != nil {
870 return fmt.Errorf("error updating instance: %w", err)
871 }
872
873 msg := OrganizationEvent{
874 Message: statusMessage,
875 EventType: event,
876 EventLevel: eventLevel,
877 OrgID: org.ID,
878 }
879
880 // Use Create instead of Association.Append to avoid loading all existing events
881 if err := s.conn.Create(&msg).Error; err != nil {
882 return fmt.Errorf("error adding status message: %w", err)
883 }
884
885 if maxEvents > 0 {
886 var count int64
887 if err := s.conn.Model(&OrganizationEvent{}).Where("org_id = ?", org.ID).Count(&count).Error; err != nil {
888 return fmt.Errorf("error counting events: %w", err)
889 }
890
891 if count > int64(maxEvents) {
892 // Get the ID of the Nth most recent event
893 var cutoffEvent OrganizationEvent
894 if err := s.conn.Model(&OrganizationEvent{}).
895 Select("id").
896 Where("org_id = ?", org.ID).
897 Order("id desc").
898 Offset(maxEvents - 1).
899 Limit(1).
900 First(&cutoffEvent).Error; err != nil {
901 return fmt.Errorf("error finding cutoff event: %w", err)
902 }
903
904 // Delete all events older than the cutoff
905 if err := s.conn.Where("org_id = ? and id < ?", org.ID, cutoffEvent.ID).Unscoped().Delete(&OrganizationEvent{}).Error; err != nil {
906 return fmt.Errorf("error deleting old events: %w", err)
907 }
908 }
909 }
910 return nil
911}
912
913func (s *sqlDatabase) addEnterpriseEvent(ctx context.Context, entID string, event params.EventType, eventLevel params.EventLevel, statusMessage string, maxEvents int) error {
914 ent, err := s.getEnterpriseByID(ctx, s.conn, entID)

Callers 1

AddEntityEventMethod · 0.95

Calls 2

getOrgByIDMethod · 0.95
DeleteMethod · 0.65

Tested by

no test coverage detected