diff --git a/database/sql/models.go b/database/sql/models.go index 0ff2d8f4..e7fad261 100644 --- a/database/sql/models.go +++ b/database/sql/models.go @@ -171,7 +171,7 @@ type Repository struct { EndpointName *string `gorm:"index:idx_owner_nocase,unique,collate:nocase"` Endpoint GithubEndpoint `gorm:"foreignKey:EndpointName;constraint:OnDelete:SET NULL"` - Events []RepositoryEvent `gorm:"foreignKey:RepoID;constraint:OnDelete:CASCADE,OnUpdate:CASCADE;"` + Events []*RepositoryEvent `gorm:"foreignKey:RepoID;constraint:OnDelete:CASCADE,OnUpdate:CASCADE;"` } type OrganizationEvent struct { @@ -203,7 +203,7 @@ type Organization struct { EndpointName *string `gorm:"index:idx_org_name_nocase,collate:nocase"` Endpoint GithubEndpoint `gorm:"foreignKey:EndpointName;constraint:OnDelete:SET NULL"` - Events []OrganizationEvent `gorm:"foreignKey:OrgID;constraint:OnDelete:CASCADE,OnUpdate:CASCADE;"` + Events []*OrganizationEvent `gorm:"foreignKey:OrgID;constraint:OnDelete:CASCADE,OnUpdate:CASCADE;"` } type EnterpriseEvent struct { @@ -233,7 +233,7 @@ type Enterprise struct { EndpointName *string `gorm:"index:idx_ent_name_nocase,collate:nocase"` Endpoint GithubEndpoint `gorm:"foreignKey:EndpointName;constraint:OnDelete:SET NULL"` - Events []EnterpriseEvent `gorm:"foreignKey:EnterpriseID;constraint:OnDelete:CASCADE,OnUpdate:CASCADE;"` + Events []*EnterpriseEvent `gorm:"foreignKey:EnterpriseID;constraint:OnDelete:CASCADE,OnUpdate:CASCADE;"` } type Address struct { diff --git a/workers/provider/provider.go b/workers/provider/provider.go index ffc5183d..b1ab1220 100644 --- a/workers/provider/provider.go +++ b/workers/provider/provider.go @@ -6,8 +6,6 @@ import ( "log/slog" "sync" - "golang.org/x/sync/errgroup" - commonParams "github.com/cloudbase/garm-provider-common/params" "github.com/cloudbase/garm/auth" dbCommon "github.com/cloudbase/garm/database/common" @@ -133,24 +131,12 @@ func (p *Provider) Start() error { return nil } - g, _ := errgroup.WithContext(p.ctx) + if err := p.loadAllScaleSets(); err != nil { + return fmt.Errorf("loading all scale sets: %w", err) + } - g.Go(func() error { - if err := p.loadAllScaleSets(); err != nil { - return fmt.Errorf("loading all scale sets: %w", err) - } - return nil - }) - - g.Go(func() error { - if err := p.loadAllRunners(); err != nil { - return fmt.Errorf("loading all runners: %w", err) - } - return nil - }) - - if err := p.waitForErrorGroupOrContextCancelled(g); err != nil { - return fmt.Errorf("waiting for error group: %w", err) + if err := p.loadAllRunners(); err != nil { + return fmt.Errorf("loading all runners: %w", err) } consumer, err := watcher.RegisterConsumer( diff --git a/workers/provider/util.go b/workers/provider/util.go index ca2626c0..8cd33525 100644 --- a/workers/provider/util.go +++ b/workers/provider/util.go @@ -1,8 +1,6 @@ package provider import ( - "golang.org/x/sync/errgroup" - dbCommon "github.com/cloudbase/garm/database/common" "github.com/cloudbase/garm/database/watcher" ) @@ -13,24 +11,3 @@ func composeProviderWatcher() dbCommon.PayloadFilterFunc { watcher.WithEntityTypeFilter(dbCommon.ScaleSetEntityType), ) } - -func (p *Provider) waitForErrorGroupOrContextCancelled(g *errgroup.Group) error { - if g == nil { - return nil - } - - done := make(chan error, 1) - go func() { - waitErr := g.Wait() - done <- waitErr - }() - - select { - case err := <-done: - return err - case <-p.ctx.Done(): - return p.ctx.Err() - case <-p.quit: - return nil - } -}