Rename team DB methods to encourage lighter-weight usage (#35572)

For #35357.

# Checklist for submitter

If some of the following don't apply, delete the relevant line.

No changes file as this is a zero-functionality-change refactor.
Performance improvements are in their own PR, which includes a changes
file.

- [x] Input data is properly validated, `SELECT *` is avoided, SQL
injection is prevented (using placeholders for values in statements)

## Testing

- [x] Added/updated automated tests

- [ ] QA'd all new/changed functionality manually
This commit is contained in:
Ian Littman
2025-11-12 08:09:49 -06:00
committed by GitHub
parent 4e97263881
commit 545bc6c692
41 changed files with 91 additions and 91 deletions
+1 -1
View File
@@ -180,7 +180,7 @@ func (svc *Service) processCalendarEvent(ctx context.Context, eventDetails *flee
// This function is called when a new event is being created.
var team *fleet.Team
team, err = svc.ds.TeamWithoutExtras(ctx, *eventDetails.TeamID)
team, err = svc.ds.TeamLite(ctx, *eventDetails.TeamID)
if err != nil {
return "", false, err
}
+1 -1
View File
@@ -192,7 +192,7 @@ func (svc *Service) AddFleetMaintainedApp(
// Create activity
var teamName *string
if payload.TeamID != nil && *payload.TeamID != 0 {
t, err := svc.ds.Team(ctx, *payload.TeamID)
t, err := svc.ds.TeamWithExtras(ctx, *payload.TeamID)
if err != nil {
return 0, ctxerr.Wrap(ctx, err, "getting team")
}
+6 -6
View File
@@ -474,7 +474,7 @@ func (svc *Service) GetMDMAppleBootstrapPackageSummary(ctx context.Context, team
}
if teamID != nil {
_, err := svc.ds.Team(ctx, tmID)
_, err := svc.ds.TeamWithExtras(ctx, tmID)
if err != nil {
return &fleet.MDMAppleBootstrapPackageSummary{}, err
}
@@ -586,7 +586,7 @@ func (svc *Service) SetOrUpdateMDMAppleSetupAssistant(ctx context.Context, asst
var tm *fleet.Team
if asst.TeamID != nil {
var err error
tm, err = svc.ds.Team(ctx, *asst.TeamID)
tm, err = svc.ds.TeamWithExtras(ctx, *asst.TeamID)
if err != nil {
return nil, ctxerr.Wrap(ctx, err, "get team")
}
@@ -691,7 +691,7 @@ func (svc *Service) DeleteMDMAppleSetupAssistant(ctx context.Context, teamID *ui
var teamName *string
if teamID != nil {
tm, err := svc.ds.Team(ctx, *teamID)
tm, err := svc.ds.TeamWithExtras(ctx, *teamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "get team")
}
@@ -1493,7 +1493,7 @@ func (svc *Service) UpdateABMTokenTeams(ctx context.Context, tokenID uint, macOS
token.IPadOSDefaultTeamID = nil
if macOSTeamID != nil && *macOSTeamID != 0 {
macOSTeam, err := svc.ds.Team(ctx, *macOSTeamID)
macOSTeam, err := svc.ds.TeamWithExtras(ctx, *macOSTeamID)
if err != nil {
return nil, &fleet.BadRequestError{
Message: fmt.Sprintf("team with ID %d not found", *macOSTeamID),
@@ -1507,7 +1507,7 @@ func (svc *Service) UpdateABMTokenTeams(ctx context.Context, tokenID uint, macOS
}
if iOSTeamID != nil && *iOSTeamID != 0 {
iOSTeam, err := svc.ds.Team(ctx, *iOSTeamID)
iOSTeam, err := svc.ds.TeamWithExtras(ctx, *iOSTeamID)
if err != nil {
return nil, &fleet.BadRequestError{
Message: fmt.Sprintf("team with ID %d not found", *iOSTeamID),
@@ -1520,7 +1520,7 @@ func (svc *Service) UpdateABMTokenTeams(ctx context.Context, tokenID uint, macOS
}
if iPadOSTeamID != nil && *iPadOSTeamID != 0 {
iPadOSTeam, err := svc.ds.Team(ctx, *iPadOSTeamID)
iPadOSTeam, err := svc.ds.TeamWithExtras(ctx, *iPadOSTeamID)
if err != nil {
return nil, &fleet.BadRequestError{
Message: fmt.Sprintf("team with ID %d not found", *iPadOSTeamID),
+1 -1
View File
@@ -307,7 +307,7 @@ func isDeviceReleasedManually(ctx context.Context, ds fleet.Datastore, host *fle
}
manualRelease = ac.MDM.MacOSSetup.EnableReleaseDeviceManually.Value
} else {
tm, err := ds.Team(ctx, *host.TeamID)
tm, err := ds.TeamWithExtras(ctx, *host.TeamID)
if err != nil {
return false, ctxerr.Wrap(ctx, err, "get Team to read enable_release_device_manually")
}
+2 -2
View File
@@ -30,7 +30,7 @@ func (svc *Service) SetSetupExperienceSoftware(ctx context.Context, platform str
return fleet.NewUserMessageError(errors.New("Couldnt add setup experience software. To add software, first disable manual_agent_install."), http.StatusUnprocessableEntity)
}
} else {
team, err := svc.ds.Team(ctx, teamID)
team, err := svc.ds.TeamWithExtras(ctx, teamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "load team")
}
@@ -109,7 +109,7 @@ func (svc *Service) SetSetupExperienceScript(ctx context.Context, teamID *uint,
return fleet.NewUserMessageError(errors.New("Couldnt add setup experience script. To add script, first disable manual_agent_install."), http.StatusUnprocessableEntity)
}
} else {
team, err := svc.ds.Team(ctx, *teamID)
team, err := svc.ds.TeamWithExtras(ctx, *teamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "load team")
}
+4 -4
View File
@@ -139,7 +139,7 @@ func (svc *Service) UploadSoftwareInstaller(ctx context.Context, payload *fleet.
var teamName *string
if payload.TeamID != nil && *payload.TeamID != 0 {
t, err := svc.ds.Team(ctx, *payload.TeamID)
t, err := svc.ds.TeamWithExtras(ctx, *payload.TeamID)
if err != nil {
return nil, ctxerr.Wrap(ctx, err, "getting team name on upload software installer")
}
@@ -283,7 +283,7 @@ func (svc *Service) UpdateSoftwareInstaller(ctx context.Context, payload *fleet.
var teamName *string
if *payload.TeamID != 0 {
t, err := svc.ds.TeamWithoutExtras(ctx, *payload.TeamID)
t, err := svc.ds.TeamLite(ctx, *payload.TeamID)
if err != nil {
return nil, err
}
@@ -793,7 +793,7 @@ func (svc *Service) deleteVPPApp(ctx context.Context, teamID *uint, meta *fleet.
var teamName *string
if teamID != nil && *teamID != 0 {
t, err := svc.ds.Team(ctx, *teamID)
t, err := svc.ds.TeamWithExtras(ctx, *teamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "getting team name for deleted VPP app")
}
@@ -843,7 +843,7 @@ func (svc *Service) deleteSoftwareInstaller(ctx context.Context, meta *fleet.Sof
var teamName *string
if meta.TeamID != nil {
t, err := svc.ds.Team(ctx, *meta.TeamID)
t, err := svc.ds.TeamWithExtras(ctx, *meta.TeamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "getting team name for deleted software")
}
+8 -8
View File
@@ -135,7 +135,7 @@ func (svc *Service) ModifyTeam(ctx context.Context, teamID uint, payload fleet.T
return nil, err
}
team, err := svc.ds.Team(ctx, teamID)
team, err := svc.ds.TeamWithExtras(ctx, teamID)
if err != nil {
return nil, err
}
@@ -462,7 +462,7 @@ func (svc *Service) ModifyTeamAgentOptions(ctx context.Context, teamID uint, tea
return nil, err
}
team, err := svc.ds.Team(ctx, teamID)
team, err := svc.ds.TeamWithExtras(ctx, teamID)
if err != nil {
return nil, err
}
@@ -531,7 +531,7 @@ func (svc *Service) AddTeamUsers(ctx context.Context, teamID uint, users []fleet
}
}
team, err := svc.ds.Team(ctx, teamID)
team, err := svc.ds.TeamWithExtras(ctx, teamID)
if err != nil {
return nil, err
}
@@ -564,7 +564,7 @@ func (svc *Service) DeleteTeamUsers(ctx context.Context, teamID uint, users []fl
idMap[user.ID] = true
}
team, err := svc.ds.Team(ctx, teamID)
team, err := svc.ds.TeamWithExtras(ctx, teamID)
if err != nil {
return nil, err
}
@@ -589,7 +589,7 @@ func (svc *Service) ListTeamUsers(ctx context.Context, teamID uint, opt fleet.Li
return nil, err
}
team, err := svc.ds.Team(ctx, teamID)
team, err := svc.ds.TeamWithExtras(ctx, teamID)
if err != nil {
return nil, err
}
@@ -647,7 +647,7 @@ func (svc *Service) DeleteTeam(ctx context.Context, teamID uint) error {
return err
}
team, err := svc.ds.Team(ctx, teamID)
team, err := svc.ds.TeamWithExtras(ctx, teamID)
if err != nil {
return err
}
@@ -775,7 +775,7 @@ func (svc *Service) GetTeam(ctx context.Context, teamID uint) (*fleet.Team, erro
user = vc.User
}
team, err := svc.ds.Team(ctx, teamID)
team, err := svc.ds.TeamWithExtras(ctx, teamID)
if err != nil {
return nil, err
}
@@ -856,7 +856,7 @@ func (svc *Service) teamByIDOrName(ctx context.Context, id *uint, name *string)
err error
)
if id != nil {
tm, err = svc.ds.Team(ctx, *id)
tm, err = svc.ds.TeamWithExtras(ctx, *id)
if err != nil {
return nil, err
}
+1 -1
View File
@@ -156,7 +156,7 @@ func rolesChanged(oldGlobal *string, oldTeams []fleet.UserTeam, newGlobal *strin
// to a `fleet.User` struct fields `GlobalRole` and `Teams` respectively.
func (svc *Service) userRolesFromSSOAttributes(ctx context.Context, ssoRolesInfo fleet.SSORolesInfo) (globalRole *string, teamsRoles []fleet.UserTeam, err error) {
for _, teamRole := range ssoRolesInfo.Teams {
team, err := svc.ds.Team(ctx, teamRole.ID)
team, err := svc.ds.TeamWithExtras(ctx, teamRole.ID)
if err != nil {
return nil, nil, ctxerr.Wrap(ctx, err, "invalid team")
}
+2 -2
View File
@@ -362,7 +362,7 @@ func (svc *Service) AddAppStoreApp(ctx context.Context, teamID *uint, appID flee
var teamName string
if teamID != nil && *teamID != 0 {
tm, err := svc.ds.Team(ctx, *teamID)
tm, err := svc.ds.TeamWithExtras(ctx, *teamID)
if fleet.IsNotFound(err) {
return 0, fleet.NewInvalidArgumentError("team_id", fmt.Sprintf("team %d does not exist", *teamID)).
WithStatus(http.StatusNotFound)
@@ -560,7 +560,7 @@ func (svc *Service) UpdateAppStoreApp(ctx context.Context, titleID uint, teamID
var teamName string
if teamID != nil && *teamID != 0 {
tm, err := svc.ds.Team(ctx, *teamID)
tm, err := svc.ds.TeamWithExtras(ctx, *teamID)
if fleet.IsNotFound(err) {
return nil, fleet.NewInvalidArgumentError("team_id", fmt.Sprintf("team %d does not exist", *teamID)).
WithStatus(http.StatusNotFound)
+1 -1
View File
@@ -30,7 +30,7 @@ func RequiresEnrollOTAAuthentication(ctx context.Context, ds fleet.AndroidDatast
return noTeamIdPEnabled, nil
}
tm, err := ds.Team(ctx, *secret.TeamID)
tm, err := ds.TeamWithExtras(ctx, *secret.TeamID)
if err != nil {
return false, ctxerr.Wrap(ctx, err, "get team for settings")
}
+1 -1
View File
@@ -469,7 +469,7 @@ func testGetConfigEnableDiskEncryption(t *testing.T, ds *Datastore) {
team1, err := ds.NewTeam(ctx, &fleet.Team{Name: "team1"})
require.NoError(t, err)
tm, err := ds.Team(ctx, team1.ID)
tm, err := ds.TeamWithExtras(ctx, team1.ID)
require.NoError(t, err)
require.NotNil(t, tm)
require.False(t, tm.Config.MDM.EnableDiskEncryption)
+1 -1
View File
@@ -6802,7 +6802,7 @@ LIMIT 1`
}
} else {
// use the team settings
tm, err := ds.TeamWithoutExtras(ctx, *dest.TeamID)
tm, err := ds.TeamLite(ctx, *dest.TeamID)
if err != nil {
return nil, ctxerr.Wrap(ctx, err, "getting team os update settings")
}
+3 -3
View File
@@ -4643,7 +4643,7 @@ func TestCopyDefaultMDMAppleBootstrapPackage(t *testing.T) {
}
checkTeamConfig := func(teamID uint, wantURL string) {
tm, err := ds.Team(ctx, teamID)
tm, err := ds.TeamWithExtras(ctx, teamID)
require.NoError(t, err)
require.Equal(t, wantURL, tm.Config.MDM.MacOSSetup.BootstrapPackage.Value)
}
@@ -4745,7 +4745,7 @@ func TestCopyDefaultMDMAppleBootstrapPackage(t *testing.T) {
checkTeamConfig(teamID, "https://example.com/bootstrap.pkg")
// set other team config values so we can confirm they are not affected by bootstrap package changes
tc, err := ds.Team(ctx, teamID)
tc, err := ds.TeamWithExtras(ctx, teamID)
require.NoError(t, err)
tc.Config.MDM.MacOSSetup.MacOSSetupAssistant = optjson.SetString("/path/to/setupassistant")
tc.Config.MDM.MacOSUpdates.Deadline = optjson.SetString("2024-01-01")
@@ -4775,7 +4775,7 @@ func TestCopyDefaultMDMAppleBootstrapPackage(t *testing.T) {
checkTeamConfig(teamID, "https://example.com/bs.pkg")
// confirm other team config values are unchanged
tc, err = ds.Team(ctx, teamID)
tc, err = ds.TeamWithExtras(ctx, teamID)
require.NoError(t, err)
require.Equal(t, tc.Config.MDM.MacOSSetup.MacOSSetupAssistant.Value, "/path/to/setupassistant")
require.Equal(t, tc.Config.MDM.MacOSUpdates.Deadline.Value, "2024-01-01")
+1 -1
View File
@@ -814,7 +814,7 @@ LIMIT
})
}
if host.TeamID != nil && len(hostTeamQueriesStats) > 0 {
team, err := ds.Team(ctx, *host.TeamID)
team, err := ds.TeamWithExtras(ctx, *host.TeamID)
if err != nil {
return nil, err
}
+1 -1
View File
@@ -539,7 +539,7 @@ func testMDMWindowsDiskEncryption(t *testing.T, ds *Datastore) {
team, err := ds.NewTeam(ctx, &fleet.Team{Name: "team"})
require.NoError(t, err)
tm, err := ds.Team(ctx, team.ID)
tm, err := ds.TeamWithExtras(ctx, team.ID)
require.NoError(t, err)
require.NotNil(t, tm)
require.False(t, tm.Config.MDM.EnableDiskEncryption) // disk encryption is not enabled for team
@@ -233,7 +233,7 @@ func (ds *Datastore) MatchOrCreateSoftwareInstaller(ctx context.Context, payload
if exists {
teamName := fleet.TeamNameNoTeam
if payload.TeamID != nil && *payload.TeamID > 0 {
tm, err := ds.Team(ctx, *payload.TeamID)
tm, err := ds.TeamWithExtras(ctx, *payload.TeamID)
if err != nil {
return 0, 0, ctxerr.Wrap(ctx, err, "get team for VPP app conflict error")
}
@@ -2191,7 +2191,7 @@ VALUES
teamName := fleet.TeamNameNoTeam
if tmID != nil {
globalOrTeamID = *tmID
tm, err := ds.Team(ctx, *tmID)
tm, err := ds.TeamWithExtras(ctx, *tmID)
if err != nil {
return ctxerr.Wrap(ctx, err, "fetch team for batch set software installers")
}
+2 -2
View File
@@ -55,11 +55,11 @@ func (ds *Datastore) NewTeam(ctx context.Context, team *fleet.Team) (*fleet.Team
return team, nil
}
func (ds *Datastore) Team(ctx context.Context, tid uint) (*fleet.Team, error) {
func (ds *Datastore) TeamWithExtras(ctx context.Context, tid uint) (*fleet.Team, error) {
return teamDB(ctx, ds.reader(ctx), tid, true)
}
func (ds *Datastore) TeamWithoutExtras(ctx context.Context, tid uint) (*fleet.Team, error) {
func (ds *Datastore) TeamLite(ctx context.Context, tid uint) (*fleet.Team, error) {
return teamDB(ctx, ds.reader(ctx), tid, false)
}
+13 -13
View File
@@ -67,7 +67,7 @@ func testTeamsGetSetDelete(t *testing.T, ds *Datastore) {
require.NoError(t, err)
assert.NotZero(t, team.ID)
team, err = ds.Team(context.Background(), team.ID)
team, err = ds.TeamWithExtras(context.Background(), team.ID)
require.NoError(t, err)
assert.Equal(t, tt.name, team.Name)
assert.Equal(t, tt.description, team.Description)
@@ -214,7 +214,7 @@ func testTeamsUsers(t *testing.T, ds *Datastore) {
team2, err := ds.NewTeam(context.Background(), &fleet.Team{Name: "team2"})
require.NoError(t, err)
team1, err = ds.Team(context.Background(), team1.ID)
team1, err = ds.TeamWithExtras(context.Background(), team1.ID)
require.NoError(t, err)
assert.Len(t, team1.Users, 0)
@@ -226,11 +226,11 @@ func testTeamsUsers(t *testing.T, ds *Datastore) {
team1, err = ds.SaveTeam(context.Background(), team1)
require.NoError(t, err)
team1, err = ds.Team(context.Background(), team1.ID)
team1, err = ds.TeamWithExtras(context.Background(), team1.ID)
require.NoError(t, err)
require.ElementsMatch(t, team1Users, team1.Users)
// Ensure team 2 not effected
team2, err = ds.Team(context.Background(), team2.ID)
team2, err = ds.TeamWithExtras(context.Background(), team2.ID)
require.NoError(t, err)
assert.Len(t, team2.Users, 0)
@@ -240,7 +240,7 @@ func testTeamsUsers(t *testing.T, ds *Datastore) {
team1.Users = team1Users
team1, err = ds.SaveTeam(context.Background(), team1)
require.NoError(t, err)
team1, err = ds.Team(context.Background(), team1.ID)
team1, err = ds.TeamWithExtras(context.Background(), team1.ID)
require.NoError(t, err)
assert.ElementsMatch(t, team1Users, team1.Users)
@@ -250,12 +250,12 @@ func testTeamsUsers(t *testing.T, ds *Datastore) {
team2.Users = team2Users
team1, err = ds.SaveTeam(context.Background(), team1)
require.NoError(t, err)
team1, err = ds.Team(context.Background(), team1.ID)
team1, err = ds.TeamWithExtras(context.Background(), team1.ID)
require.NoError(t, err)
assert.ElementsMatch(t, team1Users, team1.Users)
team2, err = ds.SaveTeam(context.Background(), team2)
require.NoError(t, err)
team2, err = ds.Team(context.Background(), team2.ID)
team2, err = ds.TeamWithExtras(context.Background(), team2.ID)
require.NoError(t, err)
assert.ElementsMatch(t, team2Users, team2.Users)
}
@@ -316,7 +316,7 @@ func testTeamsList(t *testing.T, ds *Datastore) {
// Test that ds.Teams returns the same data as ds.ListTeams
// (except list of users).
for _, t1 := range teams {
t2, err := ds.Team(context.Background(), t1.ID)
t2, err := ds.TeamWithExtras(context.Background(), t1.ID)
require.NoError(t, err)
t2.Users = nil
require.Equal(t, t1, t2)
@@ -477,7 +477,7 @@ func testTeamsDeleteIntegrationsFromTeams(t *testing.T, ds *Datastore) {
// expected values
expected := [][]string{wantTm1, wantTm2, wantTm3}
for i, id := range []uint{team1.ID, team2.ID, team3.ID} {
tm, err := ds.Team(ctx, id)
tm, err := ds.TeamWithExtras(ctx, id)
require.NoError(t, err)
var urls []string
@@ -544,7 +544,7 @@ func testTeamsFeatures(t *testing.T, ds *Datastore) {
// retrieving a team also returns a team with the default
// features
team, err = ds.Team(ctx, team.ID)
team, err = ds.TeamWithExtras(ctx, team.ID)
require.NoError(t, err)
assert.Equal(t, defaultFeatures, team.Config.Features)
@@ -571,7 +571,7 @@ func testTeamsFeatures(t *testing.T, ds *Datastore) {
// retrieving a team also returns a team with the default
// features
team, err = ds.Team(ctx, team.ID)
team, err = ds.TeamWithExtras(ctx, team.ID)
require.NoError(t, err)
assert.Equal(t, defaultFeatures, team.Config.Features)
@@ -625,7 +625,7 @@ func testTeamsMDMConfig(t *testing.T, ds *Datastore) {
// retrieving a team also returns a team with the default
// settings
team, err = ds.Team(ctx, team.ID)
team, err = ds.TeamWithExtras(ctx, team.ID)
require.NoError(t, err)
assert.Equal(t, defaultMDM, team.Config.MDM)
@@ -652,7 +652,7 @@ func testTeamsMDMConfig(t *testing.T, ds *Datastore) {
// retrieving a team also returns a team with the default
// settings
team, err = ds.Team(ctx, team.ID)
team, err = ds.TeamWithExtras(ctx, team.ID)
require.NoError(t, err)
assert.Equal(t, defaultMDM, team.Config.MDM)
+1 -1
View File
@@ -447,7 +447,7 @@ func (ds *Datastore) SetTeamVPPApps(ctx context.Context, teamID *uint, appFleets
if len(toAddApps) > 0 {
teamName = fleet.TeamNameNoTeam
if teamID != nil && *teamID > 0 {
tm, err := ds.Team(ctx, *teamID)
tm, err := ds.TeamWithExtras(ctx, *teamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "get team for VPP app conflict error")
}
+5 -5
View File
@@ -553,10 +553,10 @@ type Datastore interface {
NewTeam(ctx context.Context, team *Team) (*Team, error)
// SaveTeam saves any changes to the team.
SaveTeam(ctx context.Context, team *Team) (*Team, error)
// Team retrieves the Team by ID.
Team(ctx context.Context, tid uint) (*Team, error)
// TeamWithoutExtras retrieves the Team by ID without extra fields.
TeamWithoutExtras(ctx context.Context, tid uint) (*Team, error)
// TeamWithExtras retrieves the Team by ID, including extra fields.
TeamWithExtras(ctx context.Context, tid uint) (*Team, error)
// TeamLite retrieves a Team by ID, including only id, created_at, name, filename, description, config fields.
TeamLite(ctx context.Context, tid uint) (*Team, error)
// DeleteTeam deletes the Team by ID.
DeleteTeam(ctx context.Context, tid uint) error
// TeamByName retrieves the Team by Name.
@@ -2502,7 +2502,7 @@ type AndroidDatastore interface {
GetMDMIdPAccountByUUID(ctx context.Context, uuid string) (*MDMIdPAccount, error)
AssociateHostMDMIdPAccount(ctx context.Context, hostUUID, idpAcctUUID string) error
TeamIDsWithSetupExperienceIdPEnabled(ctx context.Context) ([]uint, error)
Team(ctx context.Context, tid uint) (*Team, error)
TeamWithExtras(ctx context.Context, tid uint) (*Team, error)
// BulkUpsertMDMAndroidHostProfiles bulk-adds/updates records to track the
// status of a profile in a host.
BulkUpsertMDMAndroidHostProfiles(ctx context.Context, payload []*MDMAndroidProfilePayload) error
+1 -1
View File
@@ -908,7 +908,7 @@ func (d *DEPService) processDeviceResponse(
func (d *DEPService) getProfileUUIDForTeam(ctx context.Context, tmID *uint, abmTokenOrgName string) (string, error) {
var appleBMTeam *fleet.Team
if tmID != nil {
tm, err := d.ds.Team(ctx, *tmID)
tm, err := d.ds.TeamWithExtras(ctx, *tmID)
if err != nil && !fleet.IsNotFound(err) {
return "", ctxerr.Wrap(ctx, err, "get team")
}
+2 -2
View File
@@ -5356,14 +5356,14 @@ func (s *DataStore) SaveTeam(ctx context.Context, team *fleet.Team) (*fleet.Team
return s.SaveTeamFunc(ctx, team)
}
func (s *DataStore) Team(ctx context.Context, tid uint) (*fleet.Team, error) {
func (s *DataStore) TeamWithExtras(ctx context.Context, tid uint) (*fleet.Team, error) {
s.mu.Lock()
s.TeamFuncInvoked = true
s.mu.Unlock()
return s.TeamFunc(ctx, tid)
}
func (s *DataStore) TeamWithoutExtras(ctx context.Context, tid uint) (*fleet.Team, error) {
func (s *DataStore) TeamLite(ctx context.Context, tid uint) (*fleet.Team, error) {
s.mu.Lock()
s.TeamWithoutExtrasFuncInvoked = true
s.mu.Unlock()
+1 -1
View File
@@ -207,7 +207,7 @@ func makeTeamConfigCache(ds fleet.Datastore, globalIntgs fleet.Integrations) fun
return cfg, nil
}
team, err := ds.Team(ctx, teamID)
team, err := ds.TeamWithExtras(ctx, teamID)
if err != nil {
return cfg, ctxerr.Wrapf(ctx, err, "get team: %d", teamID)
}
+1 -1
View File
@@ -1043,7 +1043,7 @@ func (svc *Service) ListMDMAppleConfigProfiles(ctx context.Context, teamID uint)
if teamID >= 1 {
// confirm that team exists
if _, err := svc.ds.Team(ctx, teamID); err != nil {
if _, err := svc.ds.TeamWithExtras(ctx, teamID); err != nil {
return nil, ctxerr.Wrap(ctx, err)
}
}
+1 -1
View File
@@ -413,7 +413,7 @@ func (svc *Service) ResetAutomation(ctx context.Context, teamIDs, policyIDs []ui
if err := svc.authz.Authorize(ctx, &fleet.Team{ID: id}, fleet.ActionWrite); err != nil {
return err
}
t, err := svc.ds.Team(ctx, id)
t, err := svc.ds.TeamWithExtras(ctx, id)
if err != nil {
return err
}
+2 -2
View File
@@ -961,7 +961,7 @@ func (svc *Service) createTransferredHostsActivity(ctx context.Context, teamID *
var teamName *string
if teamID != nil {
tm, err := svc.ds.Team(ctx, *teamID)
tm, err := svc.ds.TeamWithExtras(ctx, *teamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "get team for activity")
}
@@ -1894,7 +1894,7 @@ func (svc *Service) AggregatedMacadminsData(ctx context.Context, teamID *uint) (
}
if teamID != nil {
_, err := svc.ds.Team(ctx, *teamID)
_, err := svc.ds.TeamWithExtras(ctx, *teamID)
if err != nil {
return nil, err
}
@@ -821,7 +821,7 @@ func (s *integrationEnterpriseTestSuite) TestTeamSpecsPermissions() {
},
}
s.Do("POST", "/api/latest/fleet/spec/teams", editTeam1Spec, http.StatusOK)
team1b, err := s.ds.Team(context.Background(), team1.ID)
team1b, err := s.ds.TeamWithExtras(context.Background(), team1.ID)
require.NoError(t, err)
require.Equal(t, *team1b.Config.AgentOptions, agentOpts)
+2 -2
View File
@@ -449,7 +449,7 @@ func (s *integrationMDMTestSuite) runDEPEnrollReleaseDeviceTest(t *testing.T, de
if opts.TeamID != nil {
payload["team_id"] = *opts.TeamID
if opts.BootstrapPackage {
team, err := s.ds.Team(ctx, *opts.TeamID)
team, err := s.ds.TeamWithExtras(ctx, *opts.TeamID)
require.NoError(t, err)
team.Config.MDM.MacOSSetup.BootstrapPackage = optjson.SetString("bootstrap.pkg")
@@ -470,7 +470,7 @@ func (s *integrationMDMTestSuite) runDEPEnrollReleaseDeviceTest(t *testing.T, de
// Get back to the default state.
if opts.BootstrapPackage {
if opts.TeamID != nil {
team, err := s.ds.Team(ctx, *opts.TeamID)
team, err := s.ds.TeamWithExtras(ctx, *opts.TeamID)
require.NoError(t, err)
team.Config.MDM.MacOSSetup.BootstrapPackage = optjson.String{}
@@ -1421,7 +1421,7 @@ func (s *integrationMDMTestSuite) TestPuppetMatchPreassignProfiles() {
h, err := s.ds.Host(ctx, mdmHost.ID)
require.NoError(t, err)
require.NotNil(t, h.TeamID)
tm1, err := s.ds.Team(ctx, *h.TeamID)
tm1, err := s.ds.TeamWithExtras(ctx, *h.TeamID)
require.NoError(t, err)
require.Equal(t, "g1", tm1.Name)
require.True(t, tm1.Config.MDM.EnableDiskEncryption)
@@ -1529,7 +1529,7 @@ func (s *integrationMDMTestSuite) TestPuppetMatchPreassignProfiles() {
require.NotNil(t, h.TeamID)
require.Equal(t, tm2.ID, *h.TeamID)
// tm2 still has disk encryption and release device manually disabled
tm2, err = s.ds.Team(ctx, *h.TeamID)
tm2, err = s.ds.TeamWithExtras(ctx, *h.TeamID)
require.NoError(t, err)
require.False(t, tm2.Config.MDM.EnableDiskEncryption)
require.False(t, tm2.Config.MDM.MacOSSetup.EnableReleaseDeviceManually.Value)
@@ -1734,7 +1734,7 @@ func (s *integrationMDMTestSuite) TestPuppetRun() {
require.NotNil(t, h1.TeamID)
// the team has the right name
tm1, err := s.ds.Team(ctx, *h1.TeamID)
tm1, err := s.ds.TeamWithExtras(ctx, *h1.TeamID)
require.NoError(t, err)
require.Equal(t, "base - workstations", tm1.Name)
// and the right profiles
@@ -1754,7 +1754,7 @@ func (s *integrationMDMTestSuite) TestPuppetRun() {
require.NotNil(t, h2.TeamID)
// the team has the right name
tm2, err := s.ds.Team(ctx, *h2.TeamID)
tm2, err := s.ds.TeamWithExtras(ctx, *h2.TeamID)
require.NoError(t, err)
require.Equal(t, "base - kiosks - workstations", tm2.Name)
// and the right profiles
@@ -1982,7 +1982,7 @@ func (s *integrationMDMTestSuite) TestPuppetRun() {
require.NotEqual(t, tm2.ID, *h3.TeamID)
// a new team is created
tm3, err := s.ds.Team(ctx, *h3.TeamID)
tm3, err := s.ds.TeamWithExtras(ctx, *h3.TeamID)
require.NoError(t, err)
require.Equal(t, "base - no-nudge - workstations", tm3.Name)
// and the right profiles
+1 -1
View File
@@ -2593,7 +2593,7 @@ func (svc *Service) ListMDMConfigProfiles(ctx context.Context, teamID *uint, opt
if teamID != nil && *teamID > 0 {
// confirm that team exists
if _, err := svc.ds.Team(ctx, *teamID); err != nil {
if _, err := svc.ds.TeamWithExtras(ctx, *teamID); err != nil {
return nil, nil, ctxerr.Wrap(ctx, err)
}
}
+2 -2
View File
@@ -180,7 +180,7 @@ func (svc *Service) EnrollOrbit(ctx context.Context, hostInfo fleet.OrbitHostInf
isEndUserAuthRequired := appConfig.MDM.MacOSSetup.EnableEndUserAuthentication
// If the secret is for a team, get the team config as well.
if secret.TeamID != nil {
team, err := svc.ds.Team(ctx, *secret.TeamID)
team, err := svc.ds.TeamWithExtras(ctx, *secret.TeamID)
if err != nil {
return "", fleet.OrbitError{Message: "failed to get team config: " + err.Error()}
}
@@ -561,7 +561,7 @@ func (svc *Service) processReleaseDeviceForOldFleetd(ctx context.Context, host *
}
manualRelease = ac.MDM.MacOSSetup.EnableReleaseDeviceManually.Value
} else {
tm, err := svc.ds.Team(ctx, *host.TeamID)
tm, err := svc.ds.TeamWithExtras(ctx, *host.TeamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "get Team to read enable_release_device_manually")
}
+3 -3
View File
@@ -1159,7 +1159,7 @@ func (svc *Service) SubmitDistributedQueryResults(
if host.TeamID != nil {
teamID = *host.TeamID
}
team, err := svc.ds.TeamWithoutExtras(ctx, teamID)
team, err := svc.ds.TeamLite(ctx, teamID)
if err != nil {
logging.WithErr(ctx, err)
} else if teamPolicyAutomationsEnabled(team.Config.WebhookSettings, team.Config.Integrations) {
@@ -1268,7 +1268,7 @@ func processCalendarPolicies(
return nil
}
team, err := ds.Team(ctx, *host.TeamID)
team, err := ds.TeamWithExtras(ctx, *host.TeamID)
if err != nil {
return ctxerr.Wrap(ctx, err, "load host team")
}
@@ -2439,7 +2439,7 @@ func (svc *Service) conditionalAccessConfiguredAndEnabledForTeam(ctx context.Con
}
// Host belongs to a team, thus we load the team configuration.
team, err := svc.ds.TeamWithoutExtras(ctx, *hostTeamID)
team, err := svc.ds.TeamLite(ctx, *hostTeamID)
if err != nil {
return false, false, ctxerr.Wrap(ctx, err, "failed to load team config")
}
+1 -1
View File
@@ -925,7 +925,7 @@ func (svc *Service) GetQuerySpecs(ctx context.Context, teamID *uint) ([]*fleet.Q
func (svc *Service) specFromQuery(ctx context.Context, query *fleet.Query) (*fleet.QuerySpec, error) {
var teamName string
if query.TeamID != nil {
team, err := svc.ds.Team(ctx, *query.TeamID)
team, err := svc.ds.TeamWithExtras(ctx, *query.TeamID)
if err != nil {
return nil, ctxerr.Wrap(ctx, err, "get team from id")
}
+1 -1
View File
@@ -244,7 +244,7 @@ func isAllSetupExperienceSoftwareRequired(ctx context.Context, ds fleet.Datastor
}
requireAllSoftware = ac.MDM.MacOSSetup.RequireAllSoftware
} else {
team, err := ds.Team(ctx, *teamID)
team, err := ds.TeamWithExtras(ctx, *teamID)
if err != nil {
return false, ctxerr.Wrap(ctx, err, "load team")
}
+3 -3
View File
@@ -255,7 +255,7 @@ func (svc *Service) ListTeamPolicies(ctx context.Context, teamID uint, opts flee
}
if teamID > 0 {
if _, err := svc.ds.Team(ctx, teamID); err != nil {
if _, err := svc.ds.TeamWithExtras(ctx, teamID); err != nil {
return nil, nil, ctxerr.Wrapf(ctx, err, "loading team %d", teamID)
}
}
@@ -326,7 +326,7 @@ func (svc *Service) CountTeamPolicies(ctx context.Context, teamID uint, matchQue
}
if teamID > 0 {
if _, err := svc.ds.Team(ctx, teamID); err != nil {
if _, err := svc.ds.TeamWithExtras(ctx, teamID); err != nil {
return 0, ctxerr.Wrapf(ctx, err, "loading team %d", teamID)
}
}
@@ -422,7 +422,7 @@ func (svc Service) DeleteTeamPolicies(ctx context.Context, teamID uint, ids []ui
}
if teamID > 0 {
if _, err := svc.ds.Team(ctx, teamID); err != nil {
if _, err := svc.ds.TeamWithExtras(ctx, teamID); err != nil {
return nil, ctxerr.Wrapf(ctx, err, "loading team %d", teamID)
}
}
+1 -1
View File
@@ -85,7 +85,7 @@ func triggerTeamHostStatusWebhook(ctx context.Context, ds fleet.Datastore, logge
multiErr := &multierror.Error{}
for _, teamSummary := range teams {
id := teamSummary.ID
team, err := ds.Team(ctx, id)
team, err := ds.TeamWithExtras(ctx, id)
if err != nil {
multiErr = multierror.Append(multiErr, ctxerr.Wrap(ctx, err, "getting team"))
continue
+1 -1
View File
@@ -240,7 +240,7 @@ func (a *AppleMDM) runPostDEPEnrollment(ctx context.Context, args appleMDMArgs)
func (a *AppleMDM) getTeamConfig(ctx context.Context, team *fleet.Team, teamID uint) (*fleet.Team, error) {
if team == nil {
var err error
team, err = a.Datastore.Team(ctx, teamID)
team, err = a.Datastore.TeamWithExtras(ctx, teamID)
if err != nil {
return nil, ctxerr.Wrap(ctx, err, "fetch team to send AccountConfiguration")
}
+2 -2
View File
@@ -171,7 +171,7 @@ func TestAppleMDM(t *testing.T) {
t.Cleanup(func() { enableAppCfg(false) })
} else {
enableTm := func(enable bool) {
tm, err := ds.Team(ctx, *teamID)
tm, err := ds.TeamWithExtras(ctx, *teamID)
require.NoError(t, err)
tm.Config.MDM.MacOSSetup.EnableReleaseDeviceManually = optjson.SetBool(enable)
_, err = ds.SaveTeam(ctx, tm)
@@ -553,7 +553,7 @@ func TestAppleMDM(t *testing.T) {
tm, err := ds.NewTeam(ctx, &fleet.Team{Name: "test"})
require.NoError(t, err)
tm, err = ds.Team(ctx, tm.ID)
tm, err = ds.TeamWithExtras(ctx, tm.ID)
require.NoError(t, err)
tm.Config.MDM.MacOSSetup.EnableEndUserAuthentication = true
_, err = ds.SaveTeam(ctx, tm)
+1 -1
View File
@@ -161,7 +161,7 @@ func (j *Jira) getClient(ctx context.Context, args jiraArgs) (JiraClient, error)
// configuration has changed since it was created.
var opts *externalsvc.JiraOptions
if useTeamCfg {
tm, err := j.Datastore.TeamWithoutExtras(ctx, teamID)
tm, err := j.Datastore.TeamLite(ctx, teamID)
if err != nil {
return nil, err
}
+1 -1
View File
@@ -348,7 +348,7 @@ func (m *MacosSetupAssistant) runUpdateProfile(ctx context.Context, args macosSe
func (m *MacosSetupAssistant) getTeamNoTeam(ctx context.Context, tmID *uint) (*fleet.Team, error) {
var team *fleet.Team
if tmID != nil {
tm, err := m.Datastore.Team(ctx, *tmID)
tm, err := m.Datastore.TeamWithExtras(ctx, *tmID)
if err != nil {
return nil, err
}
+1 -1
View File
@@ -157,7 +157,7 @@ func (z *Zendesk) getClient(ctx context.Context, args zendeskArgs) (ZendeskClien
// configuration has changed since it was created.
var opts *externalsvc.ZendeskOptions
if useTeamCfg {
tm, err := z.Datastore.TeamWithoutExtras(ctx, teamID)
tm, err := z.Datastore.TeamLite(ctx, teamID)
if err != nil {
return nil, err
}