diff --git a/database/sql/instances.go b/database/sql/instances.go index dab81f10..c6c2d204 100644 --- a/database/sql/instances.go +++ b/database/sql/instances.go @@ -326,7 +326,10 @@ func (s *sqlDatabase) ListPoolInstances(_ context.Context, poolID string) ([]par } var instances []Instance - query := s.conn.Model(&Instance{}).Preload("Job").Where("pool_id = ?", u) + query := s.conn. + Preload("Pool"). + Preload("Job"). + Where("pool_id = ?", u) if err := query.Find(&instances); err.Error != nil { return nil, errors.Wrap(err.Error, "fetching instances") @@ -345,7 +348,11 @@ func (s *sqlDatabase) ListPoolInstances(_ context.Context, poolID string) ([]par func (s *sqlDatabase) ListAllInstances(_ context.Context) ([]params.Instance, error) { var instances []Instance - q := s.conn.Model(&Instance{}).Preload("Job").Find(&instances) + q := s.conn. + Preload("Pool"). + Preload("ScaleSet"). + Preload("Job"). + Find(&instances) if q.Error != nil { return nil, errors.Wrap(q.Error, "fetching instances") } diff --git a/database/sql/pools.go b/database/sql/pools.go index a4b3354e..350e1dc2 100644 --- a/database/sql/pools.go +++ b/database/sql/pools.go @@ -46,6 +46,7 @@ func (s *sqlDatabase) ListAllPools(_ context.Context) ([]params.Pool, error) { Preload("Enterprise"). Preload("Enterprise.Endpoint"). Omit("extra_specs"). + Omit("status_messages"). Find(&pools) if q.Error != nil { return nil, errors.Wrap(q.Error, "fetching all pools") diff --git a/database/sql/scaleset_instances.go b/database/sql/scaleset_instances.go index bbc4f593..61271e8b 100644 --- a/database/sql/scaleset_instances.go +++ b/database/sql/scaleset_instances.go @@ -66,7 +66,10 @@ func (s *sqlDatabase) CreateScaleSetInstance(_ context.Context, scaleSetID uint, func (s *sqlDatabase) ListScaleSetInstances(_ context.Context, scalesetID uint) ([]params.Instance, error) { var instances []Instance - query := s.conn.Model(&Instance{}).Preload("Job").Where("scale_set_fk_id = ?", scalesetID) + query := s.conn. + Preload("ScaleSet"). + Preload("Job"). + Where("scale_set_fk_id = ?", scalesetID) if err := query.Find(&instances); err.Error != nil { return nil, errors.Wrap(err.Error, "fetching instances") diff --git a/database/sql/scalesets.go b/database/sql/scalesets.go index 65a51ca0..752c7948 100644 --- a/database/sql/scalesets.go +++ b/database/sql/scalesets.go @@ -33,8 +33,11 @@ func (s *sqlDatabase) ListAllScaleSets(_ context.Context) ([]params.ScaleSet, er q := s.conn.Model(&ScaleSet{}). Preload("Organization"). + Preload("Organization.Endpoint"). Preload("Repository"). + Preload("Repository.Endpoint"). Preload("Enterprise"). + Preload("Enterprise.Endpoint"). Omit("extra_specs"). Omit("status_messages"). Find(&scaleSets) diff --git a/database/sql/util.go b/database/sql/util.go index 2b2a1de8..ebb3c57c 100644 --- a/database/sql/util.go +++ b/database/sql/util.go @@ -330,6 +330,8 @@ func (s *sqlDatabase) sqlToCommonPool(pool Pool) (params.Pool, error) { func (s *sqlDatabase) sqlToCommonScaleSet(scaleSet ScaleSet) (params.ScaleSet, error) { ret := params.ScaleSet{ ID: scaleSet.ID, + CreatedAt: scaleSet.CreatedAt, + UpdatedAt: scaleSet.UpdatedAt, ScaleSetID: scaleSet.ScaleSetID, Name: scaleSet.Name, DisableUpdate: scaleSet.DisableUpdate, @@ -355,24 +357,33 @@ func (s *sqlDatabase) sqlToCommonScaleSet(scaleSet ScaleSet) (params.ScaleSet, e DesiredRunnerCount: scaleSet.DesiredRunnerCount, } + var ep GithubEndpoint if scaleSet.RepoID != nil { ret.RepoID = scaleSet.RepoID.String() if scaleSet.Repository.Owner != "" && scaleSet.Repository.Name != "" { ret.RepoName = fmt.Sprintf("%s/%s", scaleSet.Repository.Owner, scaleSet.Repository.Name) } + ep = scaleSet.Repository.Endpoint } if scaleSet.OrgID != nil { ret.OrgID = scaleSet.OrgID.String() ret.OrgName = scaleSet.Organization.Name + ep = scaleSet.Organization.Endpoint } if scaleSet.EnterpriseID != nil { ret.EnterpriseID = scaleSet.EnterpriseID.String() ret.EnterpriseName = scaleSet.Enterprise.Name + ep = scaleSet.Enterprise.Endpoint } - var err error + endpoint, err := s.sqlToCommonGithubEndpoint(ep) + if err != nil { + return params.ScaleSet{}, errors.Wrap(err, "converting endpoint") + } + ret.Endpoint = endpoint + for idx, inst := range scaleSet.Instances { ret.Instances[idx], err = s.sqlToParamsInstance(inst) if err != nil {